AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
如何对我的 Amazon Cognito 用户池中的 MFA 错误消息进行故障排除?
我在我的 Amazon Cognito 用户池中配置多重身份验证 (MFA) 时收到错误消息。
解决方法
对 SMS MFA 错误进行故障排除
“InvalidSmsRoleAccessPolicyException”错误
当 AWS Identity and Access Management (IAM) 角色无权使用 Amazon SNS 发布短信时,就会出现此错误。
要解决此问题,请完成以下步骤,为 IAM 角色添加 sns:Publish 权限:
- 打开 Amazon Cognito 控制台。
- 在导航窗格中,选择 User pools(用户池)。
- 选择您的用户池。
- 在导航窗格的 Authentication(身份验证)下,选择 Authentication methods(身份验证方法)。
- 在 SMS 部分中,记下 IAM role ARN(IAM 角色 ARN)的名称。
- 打开 IAM 控制台。
- 在导航窗格中,选择 Roles(角色)。
- 在搜索栏中,输入您的 IAM 角色的名称,然后选择您的 IAM 角色。
- 在 Permissions policies(权限策略)部分中,选择附加到 IAM 角色的策略。
- 在 Policy details(策略详细信息)页面上,选择 Edit(编辑)以添加 sns:publish 权限。
- 选择 Next(下一步)。
- 选择 Save changes(保存更改)。
- 确认服务控制策略 (SCP) 不会阻止 sns:Publish 操作。
“InvalidSmsRoleTrustRelationshipException”错误
当 IAM 角色不具有允许 Amazon Cognito 代入该角色的信任关系时,就会出现此错误。当 cognito-idp.amazonaws.com 不可信,或者角色信任策略中的外部 ID 与用户群体 SMS 配置中的外部 ID 不匹配时,会发生这种情况。
要解决此问题,请正确配置 IAM 角色的信任策略。有关说明,请参阅准备一个 Amazon Cognito 可以用来通过 AWS 终端用户消息发送 SMS 服务发送短信的 IAM 角色。
“InvalidParameterException”错误
当 API 请求向 Amazon Cognito 发送无效参数时,就会出现此错误。要解决此问题,请在 SetUserPoolMfaConfig API 的 SmsMfaConfiguration 参数中指定所有必需的值。
对 TOTP MFA 错误进行故障排除
要求:
- 在配置基于时间的一次性密码 (TOTP) 软件令牌之前,将 MFA 添加到您的用户池。
- 如果 Amazon Cognito 未对您的用户进行身份验证,则您的用户必须尝试登录您的应用程序,然后才能将 TOTP 令牌与他们进行关联。
**注意:**外部身份提供者 (IdP) 为联合用户管理 MFA。在用户联合身份验证期间,Amazon Cognito 不会提示进行 MFA。
“NotAuthorizedException: Access token does not have required scopes”错误
当访问令牌不包括调用 AssociateSoftwareToken API 所需的 aws.cognito.signin.user.admin 范围时,就会出现此错误。当用户使用 InitiateAuth API 登录时,InitiateAuth API 会自动将此范围包含在访问令牌中。
但是,当用户使用托管登录页面登录时,请验证访问令牌是否包含 aws.cognito.signin.user.admin 范围。要检查令牌是否包含 aws.cognito.signin.user.admin 范围,请使用 Base64 对访问令牌的有效载荷进行解码。有关详细信息,请参阅确认 JWT 的结构。
如果令牌不包括 aws.cognito.signin.user.admin 范围,请完成以下步骤进行添加:
- 打开 Amazon Cognito 控制台。
- 在导航窗格中,选择 User Pools(用户池)。
- 选择要修改的用户池。
- 在导航窗格的 Applications(应用程序)下,选择 App clients(应用程序客户端)。
- 选择要修改的应用程序客户端。
- 选择 Login pages(登录页面)选项卡,然后选择 Edit(编辑)。
- 在 OpenID Connect scopes(OpenID Connect 范围)下拉列表中,选择 aws.cognito.signin.user.admin。
- 选择 Save changes(保存更改)。
“NotAuthorizedException: Invalid session for the user, session can only be used once”错误
当用户尝试使用重用会话时,就会出现此错误。如果用户在使用 TOTP MFA 进行身份验证的过程中收到此错误,则他们必须从头开始重启身份验证过程。要重启身份验证,请使用 InitiateAuth API 或 AdminInitiateAuth API。
“NotAuthorizedException: Invalid session for the user, session is expired”错误
会话到期时会出现此错误。默认情况下,会话在 3 分钟后到期。
要解决此问题,请延长应用程序客户端中的身份验证会话流持续时间。您可以将持续时间延长至 15 分钟。
“CodeMismatchException: Invalid code or auth state for the user”错误
当用户的 TOTP 代码无效、用户的状态不支持 API 调用或 TOTP 代码到期时,就会出现此错误。例如,用户使用 MFA_SETUP 挑战调用 RespondToAuthChallenge API,但未配置 TOTP MFA。
要解决此问题,请完成以下步骤:
- 为用户配置 TOTP MFA。
- 使用 MFA_SETUP 挑战调用 RespondToAuthChallenge API。
- 验证您的用户设备的时间设置是否与当前时间相匹配,以生成有效的 TOTP 代码。
“InvalidParameterException: User does not have delivery config set to turn on SOFTWARE_TOKEN_MFA”错误
当您没有为用户配置 TOTP MFA 时,就会出现此错误。要解决此问题,请在调用 SetUserMFAPreference API 或 AdminSetUserMFAPreference API 之前配置 TOTP MFA。
“SoftwareTokenMFANotFoundException: Software Token MFA has not been enabled by the userPool”错误
出现此错误是因为您没有在用户池中配置 TOTP MFA。要解决该错误,请配置 TOTP MFA。
“NotAuthorizedException: Invalid session for the use”错误
出现此错误的原因如下:
- API 调用包含不正确的会话字符串。
- API 调用的顺序不正确。
要解决此问题,请按正确的顺序配置 API 调用。例如,要在响应中接收会话字符串,请先调用 InitiateAuth API。为防止出现问题,请验证下一个 API 调用是否在其请求参数中使用返回的会话字符串。
“EnableSoftwareTokenMFAException: Code mismatch”错误
当用户提交的 TOTP 代码与 Amazon Cognito 在 TOTP MFA 配置期间的期望不匹配时,就会出现此错误。
要解决此问题,请执行以下操作:
- 从 AssociateSoftwareToken API 检索密码。
- 将密码保存在身份验证器应用程序中。
- 提交最新的 TOTP 代码。
- 使用从 AssociateSoftwareToken API 中检索到的密码来生成二维码。然后,使用以下代码示例来配置您的身份验证器应用程序。
从密码生成二维码的 Python 代码示例:
import pyotp from qrcode.main import QRCode secret_key = "secret-key-retrieved-from-associate-software-token-api" totp = pyotp.TOTP(secret_key) provisioning_uri = totp.provisioning_uri() qr = QRCode() qr.add_data(provisioning_uri) qr.make() qr.print_ascii()
对电子邮件 MFA 错误进行故障排除
在将电子邮件设置为 MFA 因素之前,必须在用户池中配置 Amazon Simple Email Service (Amazon SES) 以向用户发送电子邮件。
当您激活 MFA 并选择电子邮件作为第二因素时,Amazon Cognito 会向未经验证的电子邮件地址发送电子邮件。用户完成电子邮件 MFA 验证后,Amazon Cognito 会将 email_verified 属性设置为 true。
“InvalidParameterException: Cannot set EmailMfaConfiguration when user pool EmailConfiguration contains an EmailSendingAccount of COGNITO_DEFAULT”错误
当您使用默认电子邮件配置时,就会出现此错误。要解决此问题,请为您的用户池配置 Amazon SES 电子邮件设置。
“InvalidParameterException: Cannot set EmailMfaConfiguration when user pool AccountRecoverySetting is not set or contains only verified_email in RecoveryMechanisms”错误
当您仅使用电子邮件作为用户的账户恢复方法时,就会出现此错误。您无法在 MFA 和账户恢复中使用相同的因素。要解决此问题,请选择其他账户恢复方法而不是电子邮件。有关说明,请参阅配置密码重置和恢复。
“FeatureUnavailableInTierException”错误
当您的用户池拥有 Lite 功能计划时,就会出现此错误。只有 Essentials 和 Plus 计划包含电子邮件 MFA。要解决此问题,请将用户池的计划切换到 Essentials 或 Plus。
相关信息
- 语言
- 中文 (简体)

相关内容
AWS 官方已更新 3 个月前