Ошибка при попытке настроить пользовательские настройки MFA - PullRequest
4 голосов
/ 07 мая 2020

Я использую AWS CLI для включения пула пользователей MFA только с TOTP MFA (без SMS).

aws cognito-idp set-user-pool-mfa- config --user-pool-id xxxx_xxxx --mfa-configuration ДОПОЛНИТЕЛЬНО --software-token-mfa-configuration Включено = true

{
    "SoftwareTokenMfaConfiguration": {
        "Enabled": true
    },
    "MfaConfiguration": "OPTIONAL"
}

Вроде все в порядке, правда? Но когда я пытаюсь настроить предпочтения пользователя, я продолжаю получать эту ошибку:

Произошла ошибка (InvalidParameterException) при вызове операции AdminSetUserMFAPreference: Пользователь не настроил программный токен mfa

Команда: aws cognito-idp admin-set-user-mfa-preference --user-pool-id xxxx_xxxx --username username@email.com --software-token- mfa-settings Enabled = true

Попытка использовать настройки admin-set-user также не работает: aws cognito-idp admin-set-user-settings --user -pool-id us-xxxx-xxxx - имя пользователя username@email.com --mfa-option DeliveryMedium = EMAIL

Произошла ошибка (InvalidParameterException) при вызове операции AdminSetUserSettings: В настоящее время в качестве опции MFA поддерживается только атрибут phone_number.

Что мне не хватает? Требуется ли дополнительная конфигурация, нигде не упомянутая в документации?

Решение:

Сначала вам нужно получить ACCESS_TOKEN для пользователя и приступить к запуску процесса TOTP:

aws cognito-idp associate-software-token - -access-token ACCESS_TOKEN

(будет сгенерирован уникальный код, который можно использовать в Google Authenticator)

С кодом TOTP, полученным из приложения Authenticator, запустите:

aws cognito-idp verify-software-token --access-token ACCESS_TOKEN --user-code USER_CODE

С успешным сообщением предыдущей команды вы можете изменить пользователя предпочтение:

aws когнито-idp admin-set-user-mfa-preference --user-pool-id xxxxx --username xxxxxxx --software-token-mfa-settings Enabled = True , PreferredMfa = True

...