Cognito с Okta в качестве IdP с использованием проблемы токена SAML 2 Renew - PullRequest
0 голосов
/ 17 января 2020

Я пришел сюда с проблемой AWS Cognito, где я использую Okta в качестве IdP с использованием протокола SAML.

Я все настроил, используя эту документацию https://aws.amazon.com/premiumsupport/knowledge-center/cognito-okta-saml-identity-provider/

В Okta есть встроенный AD, который мы получаем от пользователей. Все в порядке, когда я отправляю запрос на токен Cognito, я получаю этот токен доступа, Id токен и тип токена. После этого в Cognito User Pool создается тот «внешний пользователь» с заданным префиксом c, который является именем IdP, сохраненным в Cognito. Проблема возникла, когда я удалил все куки и попытался отправить токен запроса еще раз с теми же учетными данными, что и раньше. После этого шага я каждый раз получаю сообщение об ошибке Error: server_error: {"error_description":"Error+in+SAML+response+processing:+Invalid+user+attributes:+email:+Attribute+cannot+be+updated.+","error":"server_error"}

Я использую Postman для получения токена с помощью вкладки «Авторизация» и проверяю тип как OAuth 2.0. Все свойства хороши, но я не знаю, почему я получаю эту ошибку каждый раз после первого успешно запрошенного токена (или через 1 час после истечения срока действия текущего токена).

1 Ответ

0 голосов
/ 20 января 2020

Хорошо, возможно, я нашел решение. Когда я создал Cognito из AWS UI, все работало нормально. Хотя после создания Cognito из Terraform что-то не работает, но все настройки и свойства равны тому, что Cognito создан вручную.

То, что я изменил, это еще один способ добавить схему в Cognito User Pool из этого

schema = {
  attribute_data_type = "String",
  name = "email",
  required = true
}

к этому

  schema {
    attribute_data_type      = "String"
    developer_only_attribute = false
    mutable                  = true
    name                     = "email"
    required                 = true

    string_attribute_constraints {
      min_length = 7
      max_length = 256
    }
  }

Я считаю важным свойство mutable. Без этого свойства терраформные мысли о том, что состояние этого сервиса меняется, и каждый tf apply хочет уничтожить сервис, где в действительности ничего не изменилось.

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