基本计划功能 - Amazon Cognito

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

基本计划功能

Essentials 功能计划包含 Amazon Cognito 用户池中的大部分最佳和最新功能。当你从 Lite 套餐切换到 Essentials 套餐时,你将获得托管登录页面的新功能、使用电子邮件消息一次性密码的多因素身份验证、增强的密码策略和自定义访问令牌。要继续 up-to-date使用新的用户池功能,请为您的用户池选择 Essentials 套餐。

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

其他资源

访问令牌自定义

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

Essentials计划增加了代币生成前触发器的现有功能。对于较低级别的套餐,您可以使用额外的声明、角色和群组成员资格来自定义 ID 令牌。借助 Essentials,您还可以使用声明、角色、群组成员资格和 OAuth 范围自定义访问令牌。 machine-to-machine(M2M) 客户端凭证授予不支持访问令牌自定义。

自定义访问令牌
  1. 选择基本版或高级版功能计划。

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

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

  4. 将您的新函数作为版本 2 令牌生成前触发器来分配。

电子邮件 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 用户池密码策略会设置密码长度和字符类型要求以及临时密码到期时间。Essentials 计划增加了强制执行密码历史记录的功能。当用户尝试重置其密码时,您的用户池会阻止用户将其设置为以前的密码。有关配置密码策略的更多信息,请参阅添加用户池密码要求。下面概述了如何使用密码历史记录策略来设置用户池。

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

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

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

托管登录托管登录和授权服务器

Amazon Cognito 用户池具有支持以下功能的可选网页:OpenID Connect (OIDC) IdP、 IdPs第三方的服务提供商或依赖方,以及用于注册和登录的公共用户交互页面。这些页面统称为托管登录。当您为用户池选择域名时,Amazon Cognito 会自动激活这些页面。精简版套餐包含托管用户界面,而 Essentials 套餐则会打开这个高级版本的注册和登录页面。

托管登录页面具有简洁的 up-to-date界面,具有更多用于自定义品牌和样式的功能和选项。Essentials 计划是解锁托管登录访问权限的最低套餐级别。

在 Amazon Cognito 控制台中设置托管登录
  1. 从 “设置” 菜单中,选择 “必备” 或 “增强” 功能计划。

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

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

了解更多

基于选择的身份验证

Essentials 层为增强型 UI 中的身份验证操作和基于 SDK 的 API 操作引入了新的身份验证流程。此流程是基于选择的身份验证。基于选择的身份验证是一种方法,在这种方法中,用户的身份验证不是从应用程序端的登录方法声明开始,而是从查询可能的登录方法开始,然后进行选择。您可以将用户池配置为支持基于选择的身份验证和解锁用户名-密码、无密码和密钥身份验证。在 API 中,USER_AUTH流程就是这样。

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

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

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