【问题标题】:Different levels of access for AWS CognitoAWS Cognito 的不同访问级别
【发布时间】:2017-07-22 05:00:20
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • 嗨@Cristian,我有类似的要求。请分享您的解决方案。我也打算使用 Cognito。谢谢

标签: amazon-web-services aws-sdk amazon-cognito aws-cognito amazon-cognito-facebook


【解决方案1】:

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

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

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

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

【讨论】:

  • 那么管理员将是 IAM 用户,而编辑和普通用户将是 Cognito 用户?并且每个管理员都有权更改编辑器策略以在其中一一添加 cognito 用户 ID?这样添加到编辑器策略的 cognito 用户将拥有编辑器权限。
  • 澄清一下,如果您指的是基于 Cognito 规则的策略,则通过“更改编辑器策略”,那么是的。
  • 好的,所以最后一个问题:1)在策略中包含 id 列表(在这种情况下为编辑器)并继续在其中添加新的列表是一种好习惯吗? 2)我可以限制管理员,以便他只能允许用户成为编辑并访问该 lambda 函数(因此他们将无法授予超级用户访问普通用户的权限) 3)对于登录的 Facebook 是否可以正常工作使用用户名/密码登录的用户和认知用户?
  • 1) 如果您使用 Facebook,我看不到任何其他方式。如果您使用 Cognito 用户池进行基于用户名/密码的访问,则更容易,因为您只需将用户添加到“编辑器”组。 2) 是的,您可以使用 IAM 限制管理员 IAM 用户权限,他只能将具有权限的角色分配给属于其权限子集的另一个用户 3) 是的,您可以对两者都使用基于规则的机制,但是对于使用用户名/密码的用户来说,Cognito 组会更方便。
猜你喜欢
  • 2019-09-26
  • 1970-01-01
  • 2010-11-13
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 2021-12-21
  • 2021-03-03
  • 1970-01-01
相关资源
最近更新 更多