向用户池添加 MFA
多重验证 (MFA) 可增强应用程序的安全性。它将您具有的某种 身份验证要素添加到您已知的 用户名和密码要素中。您可以选择将 SMS 文本消息或基于时间的一次性密码 (TOTP) 作为用户登录的第二安全要素。
借助自适应身份验证,可以将用户池配置为响应增加的风险级别需要第二安全要素身份验证。要向用户池添加自适应身份验证,请参阅 向用户池添加高级安全。
将用户池的 MFA 设置为 required
时,所有用户都必须完成 MFA 才能登录。要登录,每个用户至少设置一个 MFA 安全要素,例如 SMS 或 TOTP。当您将 MFA 设置为 required
时,您必须在用户登录中包含 MFA 设置,以便您的用户池允许他们登录。
如果您激活 SMS 作为 MFA 安全要素,则可以要求用户提供电话号码并在注册过程中进行验证。如果您将 MFA 设置为 required
并且只支持 SMS 作为安全要素,则用户需要提供一个电话号码。没有电话号码的用户将需要您的支持才能将电话号码添加到其个人资料中,然后才能登录。您可以将未经验证的电话号码用于 SMS MFA。MFA 成功后,这些号码的状态将为已验证。
如果您已将 MFA 设置为 required
并且激活了 SMS 和 TOTP 作为支持的验证方法,Amazon Cognito 会提示没有电话号码的新用户设置 TOTP MFA。如果您已将 MFA 设置为 required
而且您唯一激活的 MFA 方法是 TOTP,Amazon Cognito 会提示所有新用户在第二次登录时设置 TOTP MFA。Amazon Cognito 生成质询以设置 TOTP MFA,作为对 InitiateAuth 和 admin iateAuth API 操作的响应。
先决条件
在设置 MFA 之前,请考虑以下情况:
-
在旧版 Amazon Cognito 控制台中,最初创建用户池时只能将 MFA 设置为 Required(必需)。可切换到新控制台或使用 SetUserPoolMfaConfig API 操作,为现有用户池将 MFA 设置为
required
。 -
当您在用户池中激活 MFA 并选择 SMS text message(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。