1

我正在尝试构建一个 Web 应用程序,任何注册 facebook 的用户都可以访问该应用程序。我想使用 AWS Cognito 来加速用户管理的开发。

它必须有 3 种类型的用户:

  • 普通用户 - 任何使用 facebook 登录的用户
  • 编辑 - 具有不同访问级别(IAM 角色?)的用户,他们可以调用普通用户无法调用的特定 AWS Lambda 函数。
  • 管理员 - 可以修改普通用户状态以使其成为编辑或管理员的用户

有人可以指出我正确的方向吗?我已经设置了 AWS Cognito 身份池,但我不确定是否必须设置用户池,或者如何为用户分配不同的角色或策略以使他成为管理员或编辑(其他用户的不同访问级别AWS 资源),如果我可以在我的 Web 应用程序中获取来自 Cognito 的用户列表(仅适用于经过身份验证的管理员)以及我如何允许他修改其他用户角色。

一些教程、文档或至少对我如何做到这一点的简短描述会对我有很大帮助。

可选:让用户不仅可以使用 facebook 注册,还可以使用电子邮件/密码注册,并具有相同的功能。

4

1 回答 1

1

您应该能够使用 Cognito 联合身份的“基于角色的访问控制”功能。这是文档的相关部分:http: //docs.aws.amazon.com/cognito/latest/developerguide/role-based-access-control.html

如果您只使用 Facebook,您可以使用 Facebook sub 分配适当的角色。

如果您在用户池中使用基于用户名和密码的登录,则可以使用组支持并创建编辑组并分配适当的权限。

与其使用联合身份或用户池管理管理员,不如直接使用 IAM 用户可能是一个更好的主意。此 IAM 用户将拥有修改/添加身份池规则或用户池组的完全权限。

于 2017-03-06T08:50:05.483 回答