本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
开始使用 Amazon Cognito 身份池
借助 Amazon Cognito 身份池,您可以创建唯一身份并为用户分配权限。您的身份池可以包括:
-
Amazon Cognito 用户池中的用户
-
向 Facebook、Google、Apple 或或身份提供商等外部SAML身份提供商进行身份验证的OIDC用户。
-
通过您自己的现有身份验证流程进行身份验证的用户
使用身份池,您可以获得临时 AWS 证书,这些证书具有您定义的权限,用于直接访问其他资源 AWS 服务 或通过 Amazon API Gateway 访问资源。
在 Amazon Cognito 中创建一个身份池
你可以通过 Amazon Cognito 控制台创建身份池,也可以使用 AWS Command Line Interface (CLI) 或 Amazon Cognito。APIs
在控制台中创建新的身份池
-
登录 Amazon Cognito 控制台
并选择身份池。 -
选择创建身份池。
-
在配置身份池信任中,选择将您的身份池设置为经过身份验证的访问权限和/或访客访问权限。
-
如果您选择了经过身份验证的访问权限,请在身份池中选择一个或多个您要设置为经过身份验证的身份来源的身份类型。如果您配置了自定义开发人员提供者,则在创建身份池后无法对其进行修改或删除。
-
-
在配置权限中,为身份池中经过身份验证的用户或访客用户选择默认IAM角色。
-
如果您希望 Amazon Cognito 为您创建一个具有基本权限并与您的身份池建立信任关系的新角色,请选择创建新角色。IAM例如,输入IAM角色名称以标识您的新角色
myidentitypool_authenticatedrole
。选择 “查看策略文档”,查看 Amazon Cognito 将分配给您的新IAM角色的权限。 -
如果您的IAM AWS 账户 角色中已经有要使用的角色,则可以选择使用现有角色。必须将IAM角色信任策略配置为包括
cognito-identity.amazonaws.com
。配置您的角色信任策略,以仅允许 Amazon Cognito 在提供证据证明请求来自您的特定身份池中经过身份验证的用户时,才代入该角色。有关更多信息,请参阅 角色信任和权限。
-
-
在 Connect 身份提供商中,输入您在配置身份池信任中选择的身份提供商 (IdPs) 的详细信息。系统可能会要求您提供OAuth应用程序客户端信息、选择 Amazon Cognito 用户池、选择 I IAM dP 或输入开发者提供商的自定义标识符。
-
为每个 IdP 选择角色设置。您可以为该 IdP 中的用户分配您在配置经过身份验证的角色时设置的原定设置角色,也可以使用规则选择角色。使用 Amazon Cognito 用户群体 IdP,还可以选择令牌中包含 preferred_role 声明的角色。有关
cognito:preferred_role
声明的更多信息,请参阅将优先级值分配到组。-
如果您选择使用规则选择角色,请输入用户身份验证中的来源声明、您要用来比较声明的运算符、导致与该角色选择匹配的值,以及当角色分配匹配时要分配的角色。选择添加其他,以根据不同的条件创建其他规则。
-
选择角色解析。当用户的声明与您的规则不匹配时,您可以拒绝凭证或为经过身份验证的角色颁发凭证。
-
-
您可以为每个 IdP 配置访问控制属性。访问控制属性将用户声明映射到 Amazon Cognito 应用于其临时会话的主体标签。您可以制定IAM策略,根据应用于用户会话的标签来筛选用户访问权限。
-
如果不应用主体标签,请选择非活动。
-
要基于
sub
和aud
声明应用主体标签,请选择使用原定设置映射。 -
要为主体标签创建自己的自定义属性模式,请选择使用自定义映射。然后,对于您要在标签中表示的每个声明,输入要从该声明中获取的标签键。
-
-
-
在配置属性中,在身份池名称下输入名称。
-
在基本(经典)身份验证下,选择是否要激活基本流程。启用基本流程后,您可以绕过为自己选择的角色 IdPs ,AssumeRoleWithWebIdentity直接致电。有关更多信息,请参阅 身份池(联合身份)身份验证流程。
-
如果要将标签应用到身份池,请在标签下选择添加标签。
-
在查看并创建中,确认您为新身份池所做的选择。选择编辑以返回向导并更改任何设置。完成后,选择创建身份池。
设置一个 SDK
要使用 Amazon Cognito 身份池,请设置 AWS Amplify AWS SDK for Java、或。 AWS SDK for .NET有关更多信息,请参阅以下主题。
-
《Amplify 开发中心》中的 Amplify 文档
-
《AWS SDK for .NET 开发人员指南》中的 Amazon Cognito 凭证提供者
集成身份提供商
Amazon Cognito 身份池(联合身份)支持通过 Amazon Cognito 用户池、联合身份提供商(包括亚马逊、Facebook、谷歌、苹果和身份提供商)和未经身份验证的身份进行用户身份验证。SAML此功能还支持 经开发人员验证的身份(身份池),这让您能够通过自己的后端身份验证流程注册并对用户进行身份验证。
要了解有关使用 Amazon Cognito 用户池创建自己的用户目录的更多信息,请参阅Amazon Cognito 用户群体和登录后 AWS 服务 使用身份池进行访问。
要了解有关使用外部身份提供商的更多信息,请参阅 身份池外部身份提供商。
要了解有关集成自己的后端身份验证流程的更多信息,请参阅经开发人员验证的身份(身份池)。
获取凭证
Amazon Cognito 身份池为访客用户(未经身份验证)和已通过身份验证并收到令牌的用户提供临时 AWS 证书。有了这些 AWS 证书,您的应用程序就可以 AWS 通过 Amazon API Gateway 安全地访问内部 AWS 或外部的后端。请参阅 获取凭证。