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

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

Amazon Cognito 用户群体

Amazon Cognito 用户群体是用于 Web 和移动应用程序身份验证和授权的用户目录。从您的应用程序的角度来看,Amazon Cognito 用户池是 OpenID Connect () 身份提供商 (IdPOIDC)。用户群体为安全性、身份联合验证、应用程序集成和用户体验自定义添加了多层附加功能。

例如,您可以验证用户的会话是否来自可信来源。您可以将 Amazon Cognito 目录与外部身份提供者相结合。根据您的首选 Amazon SDK,您可以选择最适合您的应用程序的API授权模式。您还可以添加用于修改或彻底修改 Amazon Cognito 原定设置行为的 Amazon Lambda 函数。

身份验证概述

功能

Amazon Cognito 用户群体具有以下功能。

注册

Amazon Cognito 用户群体具有用户驱动、管理员驱动和编程方法,可将用户配置文件添加到您的用户群体。Amazon Cognito 用户群体支持以下注册模式。您可以在应用程序中使用这些模型的任意组合。

重要

如果您在用户群体中激活用户注册,则互联网上的任何人都可以注册账户并登录您的应用程序。除非您开放您的应用程序供公开注册,否则不要在用户群体中启用自助注册。要更改此设置,请在用户池控制台的 “注册体验” 选项卡中更新自助服务注册,或者更新或请求 AllowAdminCreateUserOnly中的值。 CreateUserPool UpdateUserPoolAPI

有关可以在用户群体中设置的安全特征的信息,请参阅使用 Amazon Cognito 用户池安全功能

  1. 用户可以在应用程序中输入其信息,并创建用户群体原生的用户配置文件。您可以调用API注册操作在您的用户池中注册用户。您可以向任何人开放这些注册操作,也可以使用客户密钥或 Amazon 凭据对其进行授权。

  2. 您可以将用户重定向到第三方 IdP,他们可以授权该第三方 IdP 将其信息传递给 Amazon Cognito。Amazon Cognito 会将OIDC身份令牌、OAuth 2.0 userInfo 数据和 SAML 2.0 断言处理到您的用户池中的用户个人资料中。您可以根据属性映射规则控制您希望 Amazon Cognito 接收的属性。

  3. 您可以跳过公共注册或联合身份验证注册,并根据自己的数据来源和模式来创建用户。直接在 Amazon Cognito 控制台中添加用户,或者。API从CSV文件导入用户。运行一个 just-in-time Amazon Lambda 函数,在现有目录中查找您的新用户,并根据现有数据填充他们的用户配置文件。

用户注册后,您可以将他们添加到 Amazon Cognito 在访问令牌和 ID 令牌中列出的组。在将 ID 令牌传递给身份池时,您还可以将用户池组与IAM角色关联起来。

登录

Amazon Cognito 可以是应用程序的独立用户目录和身份提供者(IdP)。您的用户可以使用由 Amazon Cognito 托管的用户界面登录,也可以使用您自己的用户界面通过 Amazon Cognito 用户池登录。API前端自定义 UI 后面的应用程序层可以使用多种方法中的任何一种来授权后端的请求,以确认有效的请求。

要使用外部目录(可选择与 Amazon Cognito 内置的用户目录结合使用)登录用户,您可以添加以下集成。

  1. 使用 OAuth 2.0 社交登录登录并导入消费者用户数据。亚马逊 Cognito 支持在 2.0 之前使用谷歌、Facebook、亚马逊和苹果登录。OAuth

  2. 使用登录并导入企业用户数据,SAML然后OIDC登录。您还可以将 Amazon Cognito 配置为接受来自任何或 SAML OpenID Connect () 身份提供商 (IdPOIDC) 的索赔。

  3. 将外部用户配置文件链接到原生用户配置文件。关联的用户可以使用第三方用户身份登录,并获得您分配给内置目录中的用户的访问权限。

Machine-to-machine 授权

有些会话不是 human-to-machine互动。您可能需要一个能够API通过自动流程向用户授权请求的服务帐号。要生成访问令牌以 machine-to-machine进行 OAuth 2.0 范围的授权,您可以添加生成客户端凭据授权的应用程序客户端。

托管 UI

如果您不想构建用户界面,则可以向用户提供自定义 Amazon Cognito 托管 UI。托管用户界面是一组用于注册、登录、多因素身份验证 (MFA) 和密码重置的网页。您可以将托管 UI 添加到现有网域中,也可以在 Amazon 子域中使用前缀标识符。

安全性

您的本地用户可以使用SMS消息中的代码或生成多因素身份验证 (MFA) 代码的应用程序来提供额外的身份验证因子。您可以构建用于在应用程序MFA中进行设置和处理的机制,也可以让托管用户界面对其进行管理。MFA当您的用户从可信设备登录时,Amazon Cognito 用户池可以绕过。

如果您不想最初向用户提出要求MFA,则可以有条件地提出要求。借助高级安全功能,Amazon Cognito 可以检测潜在的恶意活动MFA,并要求您的用户进行设置或阻止登录。

如果进入用户池的网络流量可能是恶意的,则可以对其进行监控并使用 Amazon WAF Web 采取措施ACLs。

自定义客户体验

在用户注册、登录或配置文件更新的大多数阶段,您可以自定义 Amazon Cognito 处理请求的方式。使用 Lambda 触发器,您可以根据自定义条件修改 ID 令牌或拒绝注册请求。您可以创建自己的自定义身份验证流程。

您可以上传自定义CSS和徽标,让托管用户界面具有熟悉的外观和感觉。

监控和分析

Amazon Cognito 用户池将API请求(包括对托管用户界面的请求)记录到。 Amazon CloudTrail您可以在 Amazon L CloudWatch ogs 中查看性能指标, CloudWatch 使用 Lambda 触发器将自定义日志推送到,并在 Service Quotas 控制台中监控API请求量。

您还可以记录您向 Amazon Pinpoint API 活动提出的请求中的设备和会话数据。借助 Amazon Pinpoint,您可以根据对用户活动的分析,从应用程序发送推送通知。

Amazon Cognito 身份池集成

Amazon Cognito 的另一半是身份池。身份池提供证书,用于授权和监控您的用户向(例如 Amazon DynamoDB 或 Amazon S3)发出的API请求。 Amazon Web Services 服务您可以构建基于身份的访问策略,根据您在用户群体中对用户进行分类的方式来保护您的数据。身份池还可以接受来自各种身份提供商的令牌和 SAML 2.0 断言,这与用户池身份验证无关。