mon*_*mon 6 amazon-web-services aws-cognito
为什么 AWS Cognito 有两个地方可以联合身份提供商?我认为身份池应该与身份提供者联合,并想知道为什么用户池也可以。请提出有两个位置的原因。
Cognito 用户池也可以联合身份提供者。
用户池
用户池用于身份验证(身份验证)。使用用户池,您的应用程序用户可以通过用户池(本质上是 Amazon Cognito 中的用户目录)登录或通过第三方身份提供商 (IdP) 进行联合,例如 Google、Facebook、Amazon 等社交身份提供商或 Apple,并通过 SAML 身份提供商。
成功验证用户身份后,Amazon Cognito 会发布 JSON Web 令牌 (JWT),您可以使用它来保护和授权对您自己的 API 的访问,或交换 AWS 凭证(身份池在这里发挥作用)。
需要时使用用户池:
- 为您的应用设计注册和登录网页。
- 访问和管理用户数据。
- 跟踪用户设备、位置和IP地址,适应不同风险级别的登录请求。
- 为您的应用程序使用自定义身份验证流程。
身份池
身份池用于授权(访问控制)。使用身份池,您可以获得临时的、有限权限的 AWS 凭证以访问其他 AWS 服务。
需要时使用身份池:
- 授予您的用户访问 AWS 资源的权限,例如 Amazon Simple Storage Service (Amazon S3) 存储桶或 Amazon DynamoDB 表。
- 为未经身份验证的用户生成临时 AWS 凭证(用户池支持匿名访客用户)。
身份池提供 AWS 凭证以授予您的用户访问其他 AWS 服务的权限。要使您的用户池中的用户能够访问 AWS 资源,您可以配置身份池以将用户池令牌交换为 AWS 凭证。
资料来源:
https://aws.amazon.com/premiumsupport/knowledge-center/cognito-user-pools-identity-pools/
https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html
https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html
小智 2
主要区别在于用户的保存方式以及使用用户池与身份池通过 idp 登录后会授予哪些权限。
\n因此,通过用户池的联合(单独)不处理 IAM 级别的权限,这不允许针对 AWS 服务提供更精细的权限集。
\n然而,身份池从具有唯一身份(例如 IAM 角色)的身份提供商创建用户,它们本质上允许您将 AWS 资源的授权委托给 AWS 本身。
\n请参考这里的场景!
\n\n\n类似的混乱来源是由于您可以直接将 Facebook 和 Google 等外部社交提供商与用户池集成,而根本不使用联合身份。使用这种方法,用户可以使用 Facebook 登录信息注册并登录您的应用程序,但他们永远不会被分配 IAM 角色。相反,用户池服务会自动将这些用户分配到 Facebook 群组,然后将其 Facebook 个人资料的属性(例如姓名、电子邮件、位置)映射到您在用户池中定义的用户属性。同样,这里的关键区别不在于身份提供商是内部还是外部,而是身份验证后是否将 IAM 角色分配给用户。
\n
希望能帮助到你。
\n| 归档时间: |
|
| 查看次数: |
624 次 |
| 最近记录: |