Amazon Cognito 身份池
Amazon Cognito 身份池是联合身份的目录,您可以用它交换 Amazon 凭证。身份池会为应用程序的用户生成临时 Amazon 凭证,无论他们是已登录还是您尚未识别他们。使用 Amazon Identity and Access Management(IAM)角色和策略,您可以选择要向用户授予的权限级别。用户能够以访客身份开始,然后检索您保留在 Amazon Web Services 服务中的资产。然后,他们可以通过第三方身份提供者登录,以解锁对您提供给注册会员的资产的访问权限。第三方身份提供者可以是使用者(社交)OAuth 2.0 提供者(如 Apple 或 Google)、自定义 SAML 或 OIDC 身份提供者,也可以是您自己的设计的自定义身份验证方案,也称为开发人员提供者。
Amazon Cognito 身份池的功能
- 签署对 Amazon Web Services 服务的请求
-
签署对 Amazon Web Services 服务 [如 Amazon Simple Storage Service(Amazon S3)和 Amazon DynamoDB] 的 API 请求。使用如 Amazon Pinpoint 和 Amazon CloudWatch 等服务分析用户活动。
- 使用基于资源的策略筛选请求
-
对于用户对资源的访问权限进行精细控制。将用户声明转换为 IAM 会话标签,并构建 IAM policy 以向用户的不同子集授予资源访问权限。
- 分配访客访问权限
-
对于尚未登录的用户,请将您的身份池配置为生成具有较窄访问权限范围的 Amazon 凭证。通过单点登录提供者对用户进行身份验证以提升其访问权限。
- 根据用户特征分配 IAM 角色
-
为所有经身份验证的用户分配一个 IAM 角色,或者根据每个用户的声明选择角色。
- 接受各种身份提供者
-
将 ID 令牌或访问令牌、用户池令牌、SAML 断言或社交提供者 OAuth 令牌交换为 Amazon 凭证。
- 验证您自己的身份
-
自行进行用户验证,并使用您的开发人员 Amazon 凭证为您的用户颁发凭证。
您可能已经有一个 Amazon Cognito 用户群体,用于为您的应用程序提供身份验证和授权服务。您可以将用户群体设置为身份池的身份提供者(IdP)。当您这样做时,用户可以通过用户群体 IdP 进行身份验证,将其声明合并为通用 OIDC 身份令牌,然后将该令牌交换为 Amazon 凭证。然后,您的用户可以在签名的请求中向 Amazon Web Services 服务提供其凭证。
还可以将来自任何身份提供者的经身份验证的声明直接提供给身份池。Amazon Cognito 将来自 SAML、OAuth 和 OIDC 提供者的用户声明自定义为 AssumeRoleWithWebIdentity API 请求以获取短期凭证。
Amazon Cognito 用户群体类似于支持 SSO 的应用程序的 OIDC 身份提供者。对于具有最适合 IAM 授权的资源依赖关系的任何应用程序,身份池充当其 Amazon 身份提供者。
Amazon Cognito 身份池支持以下身份提供商:
有关 Amazon Cognito 身份池区域可用性的信息,请参阅Amazon服务区域可用性
有关 Amazon Cognito 身份池的更多信息,请参阅以下主题。