【发布时间】:2020-06-01 09:44:02
【问题描述】:
我正在构建一个应用程序,在前端使用 react 并在后端使用 aws dynamodb + labmda 来保存数据。我正在使用放大来处理用户身份验证,但我正在努力寻找一种处理授权的好方法。
我想使用 Cognito 用户池组,但似乎没有办法从我的应用程序管理用户,因为 amplify 不支持更新用户以将其放入组中。我真的不想将aws控制台登录暴露给应用程序管理员,所以我似乎需要在应用程序本身中找到一种方法来处理这个问题。
我可以在 dynamodb 本身中创建一个用户表来保存一个用户配置文件,该配置文件可以有一个字段来保存我希望用户能够执行的角色,然后为管理员用户添加一个 CRUD 页面以更新其配置文件非管理员用户。但是,我不是特别喜欢这个选项,因为它实际上是数据重复,而且它也不支持(轻松)禁用用户的方法。
看起来 dynamodb 表更新可以触发 lambda 函数,所以我还考虑以某种方式在 CRUD 页面上由管理员用户更新表时触发用户的 cognito userpool 角色添加,但我连接触发器上的所有点、功能和所需的权限时遇到了一点问题。
任何帮助将不胜感激。
谢谢。
【问题讨论】:
-
您可以使用 aws-sdk 的 adminAddUserToGroup 将用户添加到组。您可以在 Lambda 中执行此操作,然后根据需要调用该 lambda(使用 Cognito 授权方的 API 网关,直接调用 lambda,从 DynamoDB Stream 事件调用)。 docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/…
标签: amazon-web-services authorization amazon-cognito