Amazon Cognito 常见场景 - Amazon Cognito
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon Cognito 常见场景

本主题介绍使用 Amazon Cognito 的六个常见场景。

Amazon Cognito 的两个主要组件是用户池和身份池。用户池是为您的 Web 和移动应用程序用户提供注册和登录选项的用户目录。身份池提供临时 Amazon 证书,以授予您的用户访问其他人的权限 Amazon Web Services。

用户池是 Amazon Cognito 中的用户目录。您的应用程序用户可以直接通过用户池登录,也可以通过第三方身份提供商 (IdP) 进行联合。用户池管理处理通过Facebook、谷歌、亚马逊和苹果进行社交登录以及从OpenID Connect(OIDC)和SAML返回的代币的开销。 IdPs无论您的用户是直接登录还是通过第三方登录,用户池的所有成员都有一个可通过开发工具包访问的目录配置文件。

借助身份池,您的用户可以获得访问 Amazon 服务(例如 Amazon S3 和 DynamoDB)的临时 Amazon 证书。身份池支持匿名访客用户,也支持通过第三方进行联合 IdPs。

使用用户池进行身份验证

您可以允许您的用户使用用户池进行身份验证。您的应用程序用户可以直接通过用户池登录,也可以通过第三方身份提供商 (IdP) 进行联合。用户池管理处理通过Facebook、谷歌、亚马逊和苹果进行社交登录以及从OpenID Connect(OIDC)和SAML返回的代币的开销。 IdPs

成功进行身份验证后,您的 Web 或移动应用程序将收到来自 Amazon Cognito 的用户池令牌。您可以使用这些令牌来检索允许您的应用程序访问其他 Amazon 服务的 Amazon 证书,也可以选择使用它们来控制对服务器端资源或 Amazon API Gateway 的访问。

有关更多信息,请参阅用户池身份验证流程将令牌与用户池结合使用

身份验证概述

使用用户池访问您的服务器端资源

成功进行用户池登录后,您的 Web 或移动应用程序将收到来自 Amazon Cognito 的用户池令牌。您可以使用这些令牌控制对您的服务器端资源的访问。您也可以创建用户池组来管理权限以及表示不同类型的用户。有关使用组控制资源访问权限的更多信息,请参阅向用户池添加组

通过用户池访问您的服务器端资源

在为用户群体配置域后,Amazon Cognito 会预调配一个托管 Web UI,您可使用此 UI 为应用程序添加注册页和登录页。使用此 OAuth 2.0 基础,您可以创建自己的资源服务器,从而使您的用户能够访问受保护的资源。有关更多信息,请参阅 使用资源服务器进行范围、M2M 和 API 授权

有关用户群体身份验证的更多信息,请参阅用户池身份验证流程将令牌与用户池结合使用

将 API Gateway 和 Lambda 与用户池结合使用来访问资源

您可以允许用户通过 API Gateway 访问您的 API。API Gateway 会验证来自成功用户池身份验证的令牌,并使用它们向您的用户授予对资源(包括 Lambda 函数)或您自己的 API 的访问权限。

您可以使用用户池中的组控制对 API Gateway 的权限,方法是将组成员资格映射到 IAM 角色。用户所属的组包含在您的应用程序用户登录时用户池提供的 ID 令牌中。有关用户池组的更多信息,请参阅向用户池添加组

您可以将您的用户池令牌随请求一起提交到 API Gateway,以便 Amazon Cognito 授权方 Lambda 函数进行验证。有关 API Gateway 的更多信息,请参阅将 API Gateway 与 Amazon Cognito 用户池结合使用

通过用户池访问 API Gateway

使用用户池和身份池访问 Amazon 服务

成功进行用户池身份验证后,您的应用程序将收到来自 Amazon Cognito 的用户池令牌。您可以将它们交换为通过身份池临时访问其他 Amazon 服务。有关更多信息,请参阅 登录后 Amazon Web Services 使用身份池进行访问开始使用 Amazon Cognito 身份池

通过带有身份池的用户池访问 Amazon 证书

借助第三方进行身份验证并使用身份池访问 Amazon 服务

您可以允许您的用户通过身份池访问 Amazon 服务。身份池需要来自由第三方身份提供商进行身份验证的用户的 IdP 令牌 (如果是匿名来访者,则不需要令牌)。作为交换,身份池会授予可用于访问其他 Amazon 服务的临时 Amazon 证书。有关更多信息,请参阅 开始使用 Amazon Cognito 身份池

通过带有身份池的第三方身份提供商访问 Amazon 证书

使用 Amazon Cognito 访问 Amazon AppSync 资源

您可以通过成功的 Amazon Cognito 用户池身份验证获得的令牌向您的用户授予访问 Amazon AppSync 资源的权限。有关更多信息,请参阅《Amazon AppSync 开发人员指南》中的 AMAZON_COGNITO_USER_POOLS 授权

您还可以使用从身份池收到的 IAM 证书签署对 Amazon AppSync GraphQL API 的请求。请参阅 AWS_IAM 授权

通过用户池或身份池访问 Amazon AppSync 资源