AWS Cognito - 为每个用户启用 MFA

pir*_*x22 5 amazon-web-services amazon-cognito multi-factor-authentication

尝试在我的应用程序和用例中使用 Cognito 设置身份验证需要基于每个用户的 MFA。也就是说,在创建相应的用户池时,我已将 MFA 配置为Optional并选择TOTP为潜在的 MFA 选项。到目前为止一切顺利,用户池就位后,我正在创建一个用户(创建后),我尝试在 Kotiln 应用程序中将首选 MFA 方法设置为 TOTP,因此下次用户登录时,他收到设置基于 TOTP 的 MFA 的提示。

根据API文档,这应该是可能的,如下所示:https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserMFAPreference.html

代码快照如下所示:

val cognitoClient: CognitoIdentityProviderClient = CognitoIdentityProviderClient.builder()
      .region(Region.US_EAST_1)
      ...
      .build()

    val mfaPreferenceRequest = AdminSetUserMfaPreferenceRequest.builder()
      .userPoolId("us-east-1-some-pool-id")
      .username("test")
      .softwareTokenMfaSettings(
        SoftwareTokenMfaSettingsType.builder()
          .enabled(true)
          .preferredMfa(true)
          .build()
      ).build()

    cognitoClient.adminSetUserMFAPreference(mfaPreferenceRequest)
Run Code Online (Sandbox Code Playgroud)

当调用时,我收到以下异常/堆栈跟踪

InvalidParameterException: User does not have delivery config set to turn on SOFTWARE_TOKEN_MFA.
Run Code Online (Sandbox Code Playgroud)

关于可能导致此问题的任何线索?