Проблема с Keycloak и выходом из системы идентификации SAML

У меня проблема с конфигурацией Keycloak и единым выходом из системы SAML Identity Provider.

Сценарий:

  1. Пользователь пытается войти в систему поставщика услуг, используя клиент Keycloak (OID)
  2. KC перенаправляет поставщику удостоверений SAML
  3. После ввода правильных учетных данных пользователь вошел в систему, KC создает сеанс, и пользователь перенаправляется обратно на страницу SP
  4. На другой вкладке пользователь напрямую входит в IP (учетные данные не требуются из-за SSO)
  5. Пользователь выходит из SP
  6. После обновления 2-й вкладки (IP) пользователь выходит из системы.

Однако, если пользователь сначала выходит из системы с IP-адреса, сеанс SP не закрывается, а пользователь все еще находится в системе:

  1. Пользователь выходит из системы с IP (перенаправление на конечную точку KC и возврат на страницу входа по IP)
  2. После обновления пользователь по-прежнему находится в SP

Keycloak правильно принимает запрос samlp:LogoutRequest и возвращает

В консоли администратора KC я все еще вижу активный сеанс для данного клиента (и пользователя). На самом деле я вижу запрос на выход SAML с IP только в KC stdout (фильтр запроса-дампа), но в KC не произошло никакого события выхода из системы.

Я действительно не понимаю в деталях, как работает SAML, но не должен ли пользователь выходить из SP с помощью SLO? Или, может быть, мне что-то не хватает в конфигурации KC client/realm/IP? Спасибо за вашу помощь / объяснение

1 ответ

Требования для работы Global Logout

  • Клиенты, которые используются обоими поставщиками услуг, должны находиться в одной области.
  • Когда вы выходите из системы IdP, видите ли вы, что каждый поставщик услуг запускает запрос на выход из системы? Я считаю, что в вашем случае он не вызывает URL-адрес выхода для вашего SP. Это необходимо настроить на уровне клиента.
  • Если вызывается URL выхода для SP, и даже если вы вошли в свой SP, это означает, что у SP есть некоторые проблемы при реализации выхода.

Когда вы сначала выходите из SP, в этом случае ваш SP отправляет запрос на выход в IdP, и поэтому вы выходите из системы как из IdP, так и из SP. Но в другом случае я считаю, что URL-адрес выхода из системы не вызывается (что может быть связано с отсутствием конфигурации в клиенте).

Можете ли вы опубликовать снимок экрана с конфигурацией, чтобы помочь вам лучше?

Другие вопросы по тегам