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

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

Amazon Cognito 常见场景

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

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

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

借助身份池,您的用户可以获取临时Amazon凭证来访问Amazon服务,如 Amazon S3 和 DynamoDB。身份池支持匿名来访用户以及通过第三方 IdP 的联合身份验证。

使用用户池进行身份验证

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

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

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


        身份验证概述

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

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


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

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