Этот вопрос относится к области единого входа, инициированного IDL на SAML.Как POC, у меня есть два экземпляра keycloak, например, keycloak1 и keycloak2.Я хотел бы достичь следующего:
Аутентификация будет выполняться на keycloak1
keycloak1, а затем будет указывать на keycloak2 для доступа к клиентскому приложению keycloak2.
Для этого
a) создайте клиент saml в keycloak1 в области realm1.Если для IdP initiated SSO Name
задано какое-нибудь имя без пробелов) -> скажем, keycloakclientsaml
.В разделе Конфигурация конечной точки Fine Grain SAML, для URL-адреса привязки POST службы поддержки пользователей -> http://<keycloak2:port>/auth/realms/realm2/broker/saml/endpoint/clients/keycloakclientsaml
(https://www.keycloak.org/docs/latest/server_admin/index.html#idp-initiated-login)
b) нажмите на созданный выше клиент saml -> установка-> Экспорт метаданных SAML IDPSSODescriptor и сохранение в saml-metadata.xml (скажем).
c) Добавление пользователя в keycloak1, скажем user1 / user @ 123
d) В keycloak2создайте IDP (вкладка провайдеров идентификации).Импортируйте экспортированный выше saml-metadata.xml и сохраните.
e) В браузере нажмите http://<keycloak1>/auth/realms/realm1/protocol/saml/clients/keycloakclientsaml
Запрос имени пользователя / pwd, введите учетные данные для URL-адреса user1
f) в браузере.теперь изменяется на
http://<keycloak2:port>/auth/realms/realm2/broker/saml/endpoint/clients/keycloakclientsaml
В экземпляре keycloak2 я получаю сообщение об ошибке:
09:20:46,775 INFO [org.keycloak.saml.validators.ConditionsValidator] (default task-6) Assertion ID_789213dd-24f9-425f-ae20-bcadef173bc6 is not addressed to this SP.
09:20:46,775 ERROR [org.keycloak.broker.saml.SAMLEndpoint] (default task-6) Assertion expired.
09:20:46,775 WARN [org.keycloak.events] (default task-6) type=IDENTITY_PROVIDER_RESPONSE_ERROR, realmId=realm2, clientId=null, userId=null, ipAddress=keycloak2, error=invalid_saml_response
Может кто-нибудь помочь здесь.
- Являются ли приведенные выше шаги правильными и полными.
- Что мне не хватает
Если требуется какая-либо другая информация, дайте мне знать.был бы рад предоставить.