gpt4 book ai didi

amazon-web-services - 使用 AWS Amplify 和 AWS Cognito 进行数据特定授权

转载 作者:行者123 更新时间:2023-12-04 17:16:51 25 4
gpt4 key购买 nike

背景
大家好。首先,我正在学习 AWS Amplify/GraphQL,所以我不确定这是一个特定于 GraphQL 的问题,或者它是否与 AWS Cognito 更相关。也就是说,如果这个问题被认为是题外话,请引导我到一个更合适的地方来问这个问题。
问题
使用 AWS Amplify 和 AWS Cognito,我希望 GraphQL 层仅响应特定于该实体的数据。举个例子:
给定一个组织和用户数据库结构,许多用户属于一个组织,我如何确保用户只能与特定于其所属组织的数据交互?
更详细的例子
鉴于下图,我如何确保user #2 ,在查询 AWS Amplify GraphQL 层时,他们将永远无法与 organization #1 交互。的数据?
Relationship Example
我试过的
目前,在 GraphQL 层我手动添加了一个 WHERE每个查询的子句,以便客户端将无法查看跨组织数据。但是,这并不能阻止任何用户创建自己的查询来查看跨组织数据。我目前正在考虑 build 一个 custom authorization resolver ,但它似乎还不适合我的特定需求。
任何帮助是极大的赞赏。

最佳答案

如果你想保持到Amplify做事方式,可以用Authorization Rules .
团体
如果组织中的用户在同一个 Cognito组,那么你可以使用 Dynamic group authorization .例如:

type Sale @model @auth(rules: [{ allow: groups, groupsField: "org" }]) {
id: ID!
org: [String]
}
这样,只有销售人员才能访问拥有匹配自己的组/组织的销售人员。
属性
或者,您也可以使用用户的属性,使用 ownerField指令也是如此。

关于amazon-web-services - 使用 AWS Amplify 和 AWS Cognito 进行数据特定授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68520538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com