Как программно включить или отключить 2FA для зарегистрированного пользователя в пуле пользователей amazon cognito в java? - PullRequest
4 голосов
/ 20 апреля 2020

Я использую следующий код, но он ничего не меняет в aws, хотя ничего не возвращает, как указано в документации. https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserMFAPreference.html

public boolean changeMfaStatus(String username, Boolean status) {
    final SMSMfaSettingsType smsMfaSettings = SMSMfaSettingsType.builder()
            .preferredMfa(true)
            .enabled(true)
            .build();
    final AdminSetUserMfaPreferenceRequest setUserMFAPreferenceRequest = AdminSetUserMfaPreferenceRequest.builder()
            .userPoolId(userPoolID)
            .smsMfaSettings(smsMfaSettings)
            .username(username)
            .build();
    LOG.warn(setUserMFAPreferenceRequest);
    try {
        cognitoClient.adminSetUserMFAPreference(setUserMFAPreferenceRequest);
    } catch (Exception e) {
        LOG.warn(e);
        return false;
    }
    return true;
}

Обновление: на самом деле этот код изменяет статус MFA SMS, но изменения не отображаются в пользовательском интерфейсе пула пользователей Cognito. То же самое из aws -cli также меняет статус, но не в пользовательском интерфейсе.

enter image description here

1 Ответ

0 голосов
/ 30 апреля 2020

Есть пара вещей, которые могут go ошибиться в этом. Я думаю, что у вас нет phone_number, поэтому МФА не может произойти. Но вы можете найти любое из следующего:

  1. Лямбда / Приложение не имеет прав на изменение MFA
  2. У пользователя нет phone_number
  3. Пул пользователей MFA не установлен на Opt-In или Обязательный
  4. Роль Userpool необходим для доступа к SNS для сообщений MFA не настроен
  5. Бюджет SNS SMS не был увеличен после 1 доллара США
  6. Отсутствует phone_number_verified или email_verified (кажется, у вас есть электронная почта)

Вероятно, вы будете одним из 1-3, остальные - просто другие вещи, которые я нашел при работе с Cognito.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...