Keycloak: неверный ответ SAML от внешнего IdP - PullRequest
0 голосов
/ 23 марта 2020

Я реализую опцию SSO, используя SAML с внешним IdP. Если я проверю полученный ответ SAML после того, как нажму на кнопку SSO в браузере, я увижу нужные мне данные аутентификации (например, имя пользователя и адрес электронной почты), поэтому связь с IdP работает очень хорошо.

Однако Keycloak не выполняет вход в систему и показывает мне страницу, на которой написано: «Извините ... Время ожидания входа, пожалуйста, войдите снова.», И новый пользователь не зарегистрирован. Время ожидания входа для токенов в моей области установлено на 30 минут.

Просматривая журналы, я обнаружил следующую ошибку:

keycloak_1  | 00:38:27,888 ERROR [org.keycloak.broker.saml.SAMLEndpoint] (default task-26) Assertion expired.
keycloak_1  | 00:38:27,889 WARN  [org.keycloak.events] (default task-26) type=IDENTITY_PROVIDER_RESPONSE_ERROR, realmId=master, clientId=null, userId=null, ipAddress=172.20.0.1, error=invalid_saml_response

Я обнаружил, что это может быть связано с несоответствием EntityID в IdP и SP, но я связался с IdP, и EntityID совпадает.

В чем может быть проблема?

Ответы [ 2 ]

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

Очевидно, проблема заключалась в том, что внутренняя дата контейнеров docker перестает обновляться, когда компьютер переходит в режим ожидания, поэтому возникло несоответствие между устаревшей датой поставщика услуг в контейнере docker и реальной датой провайдер Простой перезапуск docker исправил проблему.

0 голосов
/ 23 марта 2020

Как правило, ответ SAML недействителен. Это может быть что угодно: неправильный идентификатор объекта, неправильное время, неправильная подпись / подпись шифрования, ....

Ссылка на исходный код

...