【问题标题】:AWS cognito: allowing only a certain users (identities) to get credentialsAWS cognito:只允许特定用户(身份)获取凭证
【发布时间】:2019-01-21 19:21:04
【问题描述】:

我的生产环境使用 AWS cognito 联合身份(AKA:身份池)来允许用户使用他们的 Google/FB 帐户登录。这工作正常。

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

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

我知道我可以在我的后端进行白名单检查(即:在我的暂存环境的后端。我会拒绝不是来自这些白名单用户的所有请求)但这有点不干净。特别是,我希望尽可能早地进行拒绝,理想情况下,由 cognito 本身执行,而不是由我的后端执行。

说明:

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

  • 在某种程度上,我在问我是否可以通过 cognito 身份池拥有用户目录功能(特别是:确定用户是否属于某个用户组)。

【问题讨论】:

    标签: amazon-web-services amazon-cognito


    【解决方案1】:

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

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

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

    2. 从第 3 方身份管理用户 - 我不是 Google 身份验证方面的专家。但一些 OpenID 提供商允许您创建具有不同访问角色的用户组。这是example for Google

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2020-12-17
        • 2021-01-05
        • 1970-01-01
        • 2017-01-02
        • 2020-04-12
        • 2020-11-04
        • 1970-01-01
        • 2018-03-28
        • 2022-06-19
        相关资源
        最近更新 更多