AWS Cognito:仅允许某些用户(身份)获取凭证

时间:2018-08-14 21:11:56

标签: amazon-web-services amazon-cognito

我的生产环境使用AWS Cognito联合身份(AKA:身份池)来允许用户使用其Google / FB帐户登录。一切正常。

但是,对于我的登台环境,我想提供类似的登录功能(即:用户通过Google登录),但我想限制仅登录到特定白名单(例如@)的功能。 gmail.com帐户)。这是因为暂存环境仅应由团队成员和一堆受信任的用户访问。

我的问题是:是否可以定义仅允许白名单用户登录的Cognito身份池?如果答案是“是”,那怎么办?

我知道我可以在后端进行白名单检查(即:在分阶段环境的后端。我将拒绝不是来自这些列入白名单的用户的每个请求),但这有点不干净。特别是,我希望拒绝能够尽早发生,并且理想情况下,应该由cognito本身而不是后端执行。

说明:

  • 我提到了@ gmail.com帐户列表作为白名单。我对定义白名单的任何其他机制都持开放态度。

  • 我在某种程度上询问我是否可以使用认知身份池具有用户目录功能(特别是:确定用户是否在特定的用户组中)。

2 个答案:

答案 0 :(得分:1)

Identity pool的目的是提供对已验证身份的访问。因此,该资源无法管理用户(即:白名单用户组)。

有两种方法可以做到这一点:

  1. 链接3rd Party Identity into a User Poolwhite list by User Group。您的用户组将具有“角色和权限”,并假定该角色和权限将允许您的测试用户拥有所需的功能,而不允许其他登录用户拥有该功能。

  2. 通过3rd Party Identity管理用户-我不是Google身份验证专家。.但是有些OpenID提供程序允许您创建具有不同访问角色的用户组。这是example for Google

答案 1 :(得分:0)

当用户提交其信息以接受或拒绝登录请求时,您可以调用触发器并执行lambda函数。

enter image description here