AWS Cognito: существует ли способ переключения типа MFA во время аутентификации?

Я исследую AWS Cognito, создав демоверсию. Теперь я могу установить предпочтения пользователя MFA для включения SMS и / или TOTP и установить один из них в качестве предпочтительного типа MFA. Затем, когда в следующий раз пользователь пройдет аутентификацию, ему будет предложено ввести код подтверждения SMS или TOTP в соответствии с предпочтительным типом MFA.

Мой вопрос: что если пользователь захочет переключить тип MFA после первоначальной аутентификации по паролю, но до ответа MFA? Например, пользователь может использовать TOTP на другом устройстве, отличном от своего телефона. Пользователь установил SMS в качестве предпочтительного типа MFA, но после отправки пароля и запроса предоставления кода подтверждения SMS понял, что у него нет телефона, но доступно устройство TOTP. Как пользователь может переключиться на TOTP в данный момент? Или, если пользователь предпочитает TOTP, но при тех же обстоятельствах он хочет переключиться на SMS? Какой API для вызова?

Я не могу найти метод API для вызова из документов. Может быть, этого можно добиться только с помощью лямбда-триггеров? На мой взгляд, это довольно распространенная ситуация и должна быть обеспечена методом example / API.

С наилучшими пожеланиями,

Bing

0 ответов

Вы можете разрешить пользователям выбирать между SMS MFA & TOTP MFA, если пользователь установил оба MFA, но ни один из них не выбран в качестве предпочтительного. Следующий код Python делает это:

client = boto3.client('cognito-idp')
response = client.set_user_mfa_preference(
SMSMfaSettings={
    'Enabled': True,
    'PreferredMfa': False
},
SoftwareTokenMfaSettings={
    'Enabled': True,
    'PreferredMfa': False
},
AccessToken=accessToken
)

Примечание. Пользователь должен установить связьTOTP перед включением TOTP как MFA, иначе это вызовет ошибку.

После настройки этих изменений при вызове функции аутентификации пользователя она предоставит параметры для выбора MFA в задаче.