AWS Amplify @auth 规则需要多个组成员资格

AWS Amplify @auth rule require multiple group membership

是否可以使用授权规则要求经过身份验证的用户属于多个组?例如“允许 'Tenant N' 和 'Editors' 的用户”。

我们的模型目前与此类似:

type MyModel
  @model
  @auth(rules: [
    { allow: owner },
    { allow: groups, groupsField: "tenantID" },
  ])
{
  id: ID!
  tenantID: String!
}

所以使用静态组身份验证对我们不起作用:

type MyModel
  @model
  @auth(rules: [
    { allow: groups, groups: ["DynamicTenantId", "Editor"] }
  ])
{
  id: ID!
  tenantID: String!
}

因为tenantID是一个动态值,我们需要改用动态组认证:

type MyModel
  @model
  @auth(rules: [
    { allow: owner },
    { allow: groups, groupsField: "tenantID" },
    { allow: groups, group: "Editor" },
  ])
{
  id: ID!
  tenantID: String!
}

但这不起作用,因为它是一个“或”,表示“允许租户中的任何人或 'Editor' 组中的任何人”。

更新我们的模型以使用单个动态组身份验证字段也不起作用:

type MyModel
  @model
  @auth(rules: [
    { allow: owner },
    { allow: groups, groupsField: "allowGroups" },
  ])
{
  id: ID!
  allowGroups: [String] # ['DynamicTenantId', 'Editor']
}

因为这也是一个“或”,表示“允许租户中的任何人或 'Editor' 组中的任何人”。

除了自定义身份验证器之外,是否还有其他选项要求多个组成员资格?

在 aws-amplify GitHub 存储库中得到了答案/解决方法: https://github.com/aws-amplify/amplify-category-api/issues/28