在 Cogntio/AWS Amplify 中支持多个用户池或组织?
Posted
技术标签:
【中文标题】在 Cogntio/AWS Amplify 中支持多个用户池或组织?【英文标题】:Support multiple user pools or organizations in Cogntio/AWS Amplify? 【发布时间】:2019-12-12 22:10:47 【问题描述】:假设我们通过 AWS Amplify CLI 使用 AppSync 和 AWS Cognito,并使用它来托管博客、博客帖子和评论等内容。
是否可以在 amplify/AppSync/Cognito 中拥有多个拥有博客的组织,每个组织都有自己的访问控制(所有者、管理员等)?这样数据是分开的,但 AppSync、GraphQl 模型等是一样的?
即这样一个博客的编辑和管理员只能查看或编辑自己的博客文章,而不能查看或编辑其他博客的文章等。
谢谢!
【问题讨论】:
【参考方案1】:是的,这是可能的。 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 对象中获得组信息)。
【讨论】:
感谢您的回答。我熟悉组,但我希望它按组织分开。因此,我想在多个组织之间复制这些组,但具有组织的数据排他性。所以 A 公司数据中的 Admins Group 在 B 公司的 Admin Group 中是互斥的。所以不知道如何将它分开? 知道了。此时,您可以将多个用户池与 AppSync 一起使用。这听起来更适合您的用例。 谢谢!放大 CLI 是否支持此功能? 正在开发中,此时可以通过 AppSync 控制台进行操作github.com/aws-amplify/amplify-cli/pull/1916以上是关于在 Cogntio/AWS Amplify 中支持多个用户池或组织?的主要内容,如果未能解决你的问题,请参考以下文章
AWS Amplify 自定义解析程序 - 不支持的操作“BatchPutItem”
使用 Amplify 库的基于 DynamoDB GSI 的查询
如何将 Amplify 配置为使用多个 AppSync 端点?