跳至内容

如何解决电子邮件和短信 MFA 传送失败的问题?

1 分钟阅读
0

我的用户不会通过短信或电子邮件从我的 Amazon Cognito 用户池收到多重身份验证 (MFA) 代码。

解决方案

**注意:**如果您在用户池中配置 MFA 时收到错误消息,请参阅如何对我的 Amazon Cognito 用户池中的 MFA 错误消息进行故障排除?

验证 Amazon Cognito 用户池和 MFA 设置

要验证您的用户池的设置是否正确,请完成以下步骤:

  1. 打开 Amazon Cognito 控制台
  2. 检查您的用户是否存在于 Amazon Cognito 用户池中
  3. 验证用户的状态是否为 Confirmed(已确认)。
    **注意:**如果用户状态显示 External provider(外部提供商),则外部身份提供者 (IdP) 对用户进行身份验证。Amazon Cognito 不管理这些用户的 MFA 设置。但是,如果您的 IdP 管理 MFA,则您可以通过 IdP 管理 MFA 配置。
  4. 确认您已将强制执行 MFA 的用户池配置Required MFA - Recommended(必需 MFA - 推荐)或 Optional MFA(可选 MFA)。
    注意:如果您使用可选 MFA 配置用户池,则登录期间的 MFA 提示取决于个人用户设置。您可以通过 Amazon Cognito 控制台配置这些设置,也可以构建自己的界面来提示用户设置 MFA。
  5. 检查用户的 MFA 配置设置,并确认每个用户都配置了正确和首选的 MFA 方法。有关说明,请参阅用户 MFA 首选项中的“为用户配置 MFA 首选项”。
  6. 确认您为账户恢复和 MFA 交付配置了不同的方法。有关说明,请参阅密码重置和恢复中的“配置密码重置和恢复”。

检查短信传送配置

执行以下操作:

  1. 确认您的服务关联的 AWS Identity and Access Management (IAM) 角色具有 sns:Publish 权限和正确的信任策略。有关详细信息,请参阅准备 Amazon Cognito 可以使用的 IAM 角色以通过 AWS 终端用户消息发送 SMS 服务发送短信
  2. 检查服务控制策略 (SCP) 是否未阻止 sns:Publish 操作。
  3. 检查您的账户是否已超出短信的默认账户支出阈值。如果您的账户已超出配额,则您的用户不会收到 SMS MFA 代码。要增加配额,请提交 Amazon Simple Notification Service (Amazon SNS) 配额增加请求
  4. 对于沙盒环境,请确认您的用户已验证其电话号码。有关详细信息,请参阅使用 Amazon SNS 短信沙盒
  5. 对于美国电话号码,请确认您具有向美国电话号码发送 SMS 短信的发件身份。如果您没有发件身份,请在 AWS 终端用户消息发送 SMS 服务中申请电话号码

检查电子邮件传送设置

执行以下操作:

  1. 要求您的用户检查他们的垃圾邮件文件夹中是否有 MFA 电子邮件。
  2. 确认您的账户未超出 Amazon Simple Email Service (Amazon SES) 发送配额
  3. 对于沙盒环境,请确认您的用户已验证其目标电子邮件地址。
  4. 确认收件人的电子邮件地址不在 Amazon SES 禁止列表中。有关说明,请参阅查看您的 Amazon SES 账户级别禁止列表中的地址列表

查看 Amazon Cognito 日志

如果您开启了带有威胁防护的高级安全功能,请查看用户池中导出的日志,以获取有关电子邮件或短信传送失败的信息。有关详细信息,请参阅导出电子邮件和短信消息传送错误

相关信息

从 Amazon SNS 短信沙盒中移出

请求生产访问权限(从 Amazon SES 沙盒中移出)

AWS 官方已更新 3 个月前