Amazon Cognito 常见场景 - Amazon Cognito

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

Amazon Cognito 常见场景

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

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

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

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

使用用户池进行身份验证

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

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

有关更多信息,请参阅用户池身份验证流程了解用户池 JSON Web 令牌 (JWTs)

身份验证概述

使用用户池令牌访问后端资源

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

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

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

有关用户群体身份验证的更多信息,请参阅用户池身份验证流程了解用户池 JSON Web 令牌 (JWTs)

使用API网关和 Lambda 通过用户池访问资源

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

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

您可以将用户池令牌连同请求提交给 Gate API way,以供亚马逊 Cognito 授权机构 Lambda 函数进行验证。有关API网关的更多信息,请参阅在 Amazon Cognito 用户池中使用API网关

通过用户池访问API网关

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

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

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

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

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

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

使用 Amazon Cognito 访问 AWS AppSync 资源

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

您还可以使用从身份池中收到的IAM凭据对 AWS AppSync GraphQL API 的请求进行签名。参见AWS_IAM授权

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