0

我正在尝试构建一个可以通过任何注册了facebook的用户访问的Web应用程序。 我想使用AWS Cognito加速用户管理的开发。AWS Cognito的不同访问级别

它有3个类型的用户:

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

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

一些教程,文档或至少简短的描述,我该如何做到这一点会帮助我很多。

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

回答

1

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

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

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

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

+0

那么管理员将IAM用户和编辑以及普通用户都会成为Cognito用户吗?并且每个管理员都有权更改编辑策略,以便在其中逐一添加cognito用户ID?因此,添加到编辑策略中的cognito用户将拥有编辑权限。 –

+1

为了澄清,如果您的意思是基于Cognito规则的政策,那么通过“更改编辑者政策”是可以的。 –

+0

好的,所以最后的问题是:1)在策略中保存id(在这种情况下是编辑者)的列表并不断添加新的策略? 2)我可以限制管理员,以便他只允许用户成为编辑者并访问该lambda函数(因此他们将无法为超级用户提供对普通用户的访问权限)3)它的工作方式与facebook登录相同用户和cognito用户使用用户名/密码登录? –