在 Cogntio/AWS Amplify 中支持多个用户池或组织?

Support multiple user pools or organizations in Cogntio/AWS Amplify?

假设我们通过 AWS Amplify CLI 使用 AppSync 和 AWS Cognito,并使用它来托管诸如博客、博客帖子和评论等内容。

在 amplify/AppSync/Cognito 中是否可以让多个组织拥有博客,每个组织都有自己的访问控制(所有者、管理员等)?这样数据是分开的,但 AppSync、GraphQl 模型等是相同的?

即这样一个博客的编辑和管理员只能查看或编辑自己的博客文章,而不能查看或编辑其他博客的文章等。

谢谢!

是的,这是可能的。 Cognito 具有可以将用户分配到的组的概念。因此,您可以拥有一个名为 Admins 的组,您只能将管理员用户分配给该组。您可以通过多种方式在 AppSync 中进行细粒度访问,或者通过如下模式指令:

type Query {
   posts:[Post!]!
   @aws_auth(cognito_groups: ["Bloggers", "Readers"])
}

type Mutation {
   addPost(id:ID!, title:String!):Post!
   @aws_auth(cognito_groups: ["Bloggers"])
}

或通过在解析器映射模板中过滤组(您在 context.identity 对象中获取组信息)。