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

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

向用户池添加 MFA

多重身份验证(MFA)可增强应用程序的安全性。它将您具有的某种 身份验证要素添加到您已知的 用户名和密码要素中。您可以选择将 SMS 文本消息或基于时间的一次性密码(TOTP)作为用户登录的第二安全要素。

注意

新用户首次登录应用程序时,Amazon Cognito 会发出 OAuth 2.0 令牌,即使您的用户池要求使用 MFA 也是如此。您的用户首次登录时的第二个身份验证因素是他们对 Amazon Cognito 发送给他们的验证消息的确认。如果您的用户池要求使用 MFA,Amazon Cognito 会提示您的用户注册一个额外的登录因素,以便在第一次之后的每次登录尝试期间使用。

借助自适应身份验证,可以将用户池配置为响应增加的风险级别需要第二安全要素身份验证。要向用户池添加自适应身份验证,请参阅 向用户池添加高级安全

将用户池的 MFA 设置为 required 时,所有用户都必须完成 MFA 才能登录。要登录,每个用户至少设置一个 MFA 安全要素,例如 SMS 或 TOTP。当您将 MFA 设置为 required 时,您必须在用户登录中包含 MFA 设置,以便您的用户池允许他们登录。

如果您激活 SMS 作为 MFA 安全要素,则可以要求用户提供电话号码并在注册过程中进行验证。如果您将 MFA 设置为 required 并且只支持 SMS 作为要素,则用户必须提供电话号码。没有电话号码的用户将需要您的支持才能将电话号码添加到其个人资料中,然后才能登录。您可以将未经验证的电话号码用于 SMS MFA。MFA 成功后,这些号码的状态将为已验证。

如果您已将 MFA 设置为必需并且激活了 SMS 和 TOTP 作为支持的验证方法,Amazon Cognito 会提示没有电话号码的新用户设置 TOTP MFA。如果您已将 MFA 设置为必需并且您激活的唯一 MFA 方法是 TOTP,Amazon Cognito 会提示所有新用户在第二次登录时设置 TOTP MFA。Amazon Cognito 提出了设置 TOTP MFA 以响应 InitiateAuthAPI 操作的挑战。AdminInitiateAuth

当您将 MFA 设置为必需时,托管 UI 会提示用户设置 MFA。当您在用户池中将 MFA 设置为可选时,托管 UI 不会提示用户。要使用可选的 MFA,您必须在应用程序中构建一个界面,以提示用户选择他们需要设置 MFA,然后引导他们完成 API 输入以验证他们的额外登录因素。

在五次尝试提交 MFA 代码均未成功后,Amazon Cognito 会开始如用户池身份验证流程中所描述的指数超时锁定过程。

先决条件

在设置 MFA 之前,请考虑以下情况:

  • 当您在用户池中激活 MFA 并选择 SMS 文本消息作为第二安全要素时,您可以向尚未在 Amazon Cognito 中验证的电话号码属性发送短信。用户完成短信 MFA 后,Amazon Cognito 会将其 phone_number_verified 属性设置为 true

  • 如果您的账户所在的 SMS 沙盒,位于包含用户池的 Amazon Simple Notification Service(Amazon SNS)资源的 Amazon Web Services 区域中,您必须在 Amazon SNS 中验证电话号码,然后才能发送短信。有关更多信息,请参阅 Amazon Cognito 用户池的短信设置

  • 高级安全功能要求您已激活 MFA 并在 Amazon Cognito 用户池控制台中将其设置为可选。有关更多信息,请参阅向用户池添加高级安全

配置身份多重验证

您可以在 Amazon Cognito 控制台中配置 MFA。

在 Amazon Cognito 控制台中配置 MFA
  1. 登录 Amazon Cognito 控制台

  2. 选择用户池

  3. 从列表中选择一个现有用户池,或创建一个用户池

  4. 选择登录体验选项卡。找到多重身份验证,然后选择编辑

  5. 选择您希望用于用户池的MFA 强制执行方法。

    
              通知用户
    1. 需要 MFA。用户池中的所有用户必须使用其他 SMS 代码或基于时间的一次性密码(TOTP)安全要素进行登录。

    2. 可选 MFA – 您可以为用户提供选项来注册额外的登录安全要素,但仍允许未配置 MFA 的用户登录。如果您使用自适应身份验证,请选择此选项。有关自适应身份验证的更多信息,请参阅向用户池添加高级安全

    3. 无 MFA。您的用户无法注册其他登录安全要素。

  6. 选择您在应用程序中支持的 MFA 方法。您可以将 SMS 消息或可生成 TOTP 的身份验证器应用程序设置为第二个登录因素。我们建议您实施基于 TOTP 的 MFA,这样可以使用 SMS 消息找回账户的密码。

  7. 如果使用 SMS 文本消息作为第二安全要素,并且没有配置 IAM 角色与 Amazon Simple Notification Service(Amazon SNS)一起使用 SMS 消息,您可以在控制台中创建一个角色。在用户池的消息收发选项卡下,找到 SMS 并选择编辑。您还可以使用允许 Amazon Cognito 代表您向用户发送短信的现有角色。有关更多信息,请参阅 IAM 角色

  8. 选择保存更改