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

基础版计划的功能

基础版功能计划包含 Amazon Cognito 用户池大多数先进且最新的功能。当您从精简版计划切换到基础版计划时,将获得托管登录页面的新功能、通过电子邮件一次性密码进行多重身份验证的功能、强化的密码策略,以及自定义访问令牌。要及时使用新的用户池功能,请为您的用户池选择基础版计划。

以下各节简要概述了您可以通过基础版计划向应用程序添加的功能。有关详细信息,请参阅以下页面。

其他资源

访问令牌自定义

用户池访问令牌向应用程序授予以下权限:访问 API、从 userInfo 端点检索用户属性或为外部系统建立组成员关系。在高级场景中,您可能需要将应用程序在运行时确定的其他临时参数添加到用户池目录中的默认访问令牌数据中。例如,您可能需要使用 Amazon Verified Permissions 验证用户的 API 权限,并相应地调整访问令牌中的范围。

基础版计划在令牌生成前触发器的现有功能基础上进一步增强。在较低层级的计划中,您可以使用额外的声明、角色和组成员资格来自定义 ID 令牌。基础版添加了触发器输入事件的新版本,能够自定义访问令牌声明、角色、组成员资格和作用域。访问令牌自定义可用于使用事件版本 3 的机器对机器(M2M)客户端凭证授予

自定义访问令牌
  1. 选择基础版或增值版功能计划。

  2. 为触发器创建 Lambda 函数。要使用我们的示例函数,请为其配置 Node.js

  3. 使用我们的示例代码填充您的 Lambda 函数,或者自己编写函数。您的函数必须处理来自 Amazon Cognito 的请求对象,并返回您想要包括的更改。

  4. 将您的新函数作为版本 2 或 3 令牌生成前触发器来分配。版本 2 事件用于自定义用户身份的访问令牌。版本 3 用于自定义用户和机器身份的访问令牌。

电子邮件 MFA

可以将 Amazon Cognito 用户池配置为使用电子邮件作为多重身份验证(MFA)的第二个因素。通过电子邮件 MFA,Amazon Cognito 可以向用户发送一封包含验证码的电子邮件,用户必须输入该验证码才能完成身份验证过程。这样就为用户登录流程额外增加了一层重要的安全保护。要启用基于电子邮件的 MFA,必须将用户池配置为使用 Amazon SES 电子邮件发送配置,而不是默认的电子邮件配置。

当您的用户选择通过电子邮件进行 MFA 时,每当用户尝试登录时,Amazon Cognito 都会向其注册的电子邮件地址发送一次性验证码。然后,用户必须将此验证码提供给用户池,这样才能完成身份验证流程并获得访问权限。这样可以确保即使用户的用户名和密码遭到泄露,他们还必须提供额外的因素(通过电子邮件发送的验证码),然后才能访问您的应用程序资源。

有关更多信息,请参阅 短信和电子邮件消息 MFA。下面概述了如何设置用户池和用户以使用电子邮件 MFA。

在 Amazon Cognito 控制台中设置电子邮件 MFA
  1. 选择基础版或增值版功能计划。

  2. 在用户池的登录菜单中,编辑多重身份验证

  3. 选择要设置的 MFA 强制执行级别。使用需要 MFA 选项时,API 中的用户会自动收到质询,要求他们使用 MFA 进行设置、确认和登录。在需要 MFA 的用户池中,托管登录会提示用户选择和设置 MFA 因素。使用可选 MFA 选项时,您的应用程序必须为用户提供选项来设置 MFA 和设置用户电子邮件 MFA 首选项。

  4. MFA 方法下,选择电子邮件消息作为其中一个选项。

防止密码重用

默认情况下,Amazon Cognito 用户池密码策略会设置密码长度和字符类型要求以及临时密码到期时间。基础版计划增加了强制执行密码历史记录的功能。当用户尝试重置其密码时,您的用户池会阻止用户将其设置为以前的密码。有关配置密码策略的更多信息,请参阅添加用户池密码要求。下面概述了如何使用密码历史记录策略来设置用户池。

在 Amazon Cognito 控制台中设置密码历史记录
  1. 选择基础版或增值版功能计划。

  2. 在用户池的身份验证方法菜单中,找到密码策略,然后选择编辑

  3. 配置其他可用选项,并为防止使用之前的密码设置一个值。

托管登录提供的托管式登录与授权服务器

Amazon Cognito 用户池提供可选的网页,以支持以下功能:作为 OpenID Connect(OIDC)的 IdP、作为第三方 IdP 的服务提供者或依赖方,以及用于注册和登录的公共用户交互式页面。这些页面统称为托管登录。当您为用户池选择域时,Amazon Cognito 会自动激活这些页面。精简版计划提供托管 UI,而基础版计划则支持这一高级版本的注册和登录页面。

托管登录页面具有简洁、现代化的界面,其中包含用于自定义品牌和样式的更多功能和选项。基础版计划是可启用托管登录的最低计划级别。

在 Amazon Cognito 控制台中设置托管登录
  1. 设置菜单中,选择基础版或增值版功能计划。

  2. 菜单中,将域分配给您的用户池,然后选择托管登录品牌版本

  3. 托管登录菜单的样式选项卡下,选择创建样式并将样式分配给应用程序客户端,或者新建一个应用程序客户端。

了解更多

基于选择的身份验证

基础版层级引入了一种新的身份验证流程,用于增强型 UI 和基于 SDK 的 API 操作中的身份验证操作。该流程称为基于选择的身份验证。基于选择的身份验证是一种方法,在这种方法中,用户的身份验证流程并非始于应用程序端声明的登录方式,而是先查询可用的登录方式,再由用户从中进行选择。您可以将用户池配置为支持基于选择的身份验证,并启用用户名密码、无密码和通行密钥身份验证。在 API 中,这就是 USER_AUTH 流程。

在 Amazon Cognito 控制台中设置基于选择的身份验证
  1. 选择基础版或增值版功能计划。

  2. 在用户池的登录菜单中,编辑基于选择的登录选项。选择并配置要在基于选择的身份验证中启用的身份验证方法。

  3. 在用户池的身份验证方法菜单中,编辑登录操作的配置。