【AWS】什么是Amazon Cognito (Web/移动应用程序用户管理)
【AWS】什么是Amazon?Cognito?
Amazon Cognito 是一项由 Amazon Web Services (AWS) 提供的身份服务,它旨在帮助您轻松地为您的 Web 和移动应用程序添加用户注册、登录和访问控制功能。
您可以将 Amazon Cognito 想象成一个**“用户身份和访问管理中心”**。它能够处理用户身份验证、授权以及用户数据的同步,从而让您能够专注于构建应用程序的核心功能,而无需从头开始管理复杂的身份系统。


Amazon Cognito 主要由两个组件组成:
- 用户池 (User Pools):作用: 用户池是您的应用程序的用户目录。它负责处理用户注册、登录、多重身份验证 (MFA)、账户恢复等功能。功能: 您可以为用户池配置各种属性(如电子邮件、电话号码),设置密码策略,启用社交身份提供商(如 Google、Facebook、Apple)和企业身份提供商(如 SAML、OpenID Connect)的联合登录。认证: 用户通过用户池进行身份验证后,会获得 JSON Web Tokens (JWTs),应用程序可以使用这些令牌来访问您的后端资源。
- 身份池 (Identity Pools) / 联合身份 (Federated Identities):作用: 身份池允许您为用户提供临时 AWS 凭证,以便他们可以直接访问其他 AWS 服务(如 Amazon S3、DynamoDB、Lambda)。它支持匿名用户和通过用户池或其他身份提供商(如 Google、Facebook)进行身份验证的用户。功能: 身份池将来自不同身份提供商的用户身份联合起来,并为他们提供临时的、受限的 AWS 凭证。这使得您的应用程序能够安全地访问 AWS 资源,而无需在客户端存储 AWS 密钥。授权: 您可以为身份池配置 IAM 角色,从而控制用户可以访问哪些 AWS 服务和资源。
Amazon Cognito 的核心功能和优势:
- 可扩展性: 能够支持数百万用户,并自动扩展以满足您的需求。
- 安全性: 提供多重身份验证 (MFA)、加密、账户保护功能(如适应性身份验证和高级安全功能)来保护用户账户。
- 易于集成: 提供 SDK 和 UI 组件,可以轻松集成到您的 Web 和移动应用程序中。
- 支持多种身份提供商: 除了 Cognito 用户池自己的目录外,还支持社交登录和企业级身份提供商。
- 与 AWS 服务集成: 与 AWS Lambda、Amazon API Gateway、Amazon S3 等其他 AWS 服务无缝集成,方便构建安全的应用程序。
- 成本效益: 按实际使用量付费,没有最低费用。
典型用例:
- 移动和 Web 应用程序的用户管理: 为您的应用程序提供完整的用户注册、登录和配置文件管理。
- 社交和企业身份联合: 允许用户使用他们已有的社交媒体账户(如 Google、Facebook)或企业目录凭证登录您的应用程序。
- 向应用程序授予 AWS 资源访问权限: 允许您的应用程序用户安全地访问 AWS 服务,例如将文件上传到 S3 或访问 DynamoDB 数据库,而无需暴露您的 AWS 凭证。
- 构建无服务器应用程序的身份验证层: 作为 API Gateway 和 Lambda 函数的身份验证和授权机制。
总而言之,Amazon Cognito 是一项强大的服务,它简化了应用程序的用户身份验证和授权管理,让您能够构建安全、可扩展且用户友好的应用程序。
过去考试题
ある会社は、AWSクラウドで実行されているモバイルアプリのフリートに対してID管理を実装する必要があります。どのAWSサービスがこの要件を満たすことができますか?
- Cognito
- IAM
- S3
- RDS
Cognito は、モバイルアプリケーション向けの AWS マネージド認証サービスです。ユーザー ID プールと ID プロバイダー (Amazon、Facebook、Google など) との連携により、アプリケーションのユーザーに一元化された ID 管理とアクセスコントロールを提供します。したがって、この要件を満たすことができます。
关注
收藏
赞
踩