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
是否可以使用授权规则要求经过身份验证的用户属于多个组?例如“允许 '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