【问题标题】:Support multiple user pools or organizations in Cogntio/AWS Amplify?在 Cogntio/AWS Amplify 中支持多个用户池或组织?
【发布时间】:2019-12-12 22:10:47
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

    标签: amazon-cognito aws-amplify aws-appsync


    【解决方案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
    猜你喜欢
    • 2020-12-22
    • 2021-04-02
    • 2020-06-13
    • 1970-01-01
    • 2021-07-20
    • 2021-12-19
    • 2022-01-25
    • 2019-02-09
    • 2019-04-28
    相关资源
    最近更新 更多