Spring security 5.2+ SAML2 несколько IDP выход из системы - PullRequest
0 голосов
/ 12 марта 2020

Поддержка SAML2 - это новое дополнение к библиотеке Spring Security.

В соответствии с этим: https://github.com/spring-projects/spring-security/blob/master/docs/manual/src/docs/asciidoc/_includes/servlet/saml2/saml2-login.adoc

Saml 2 Login - Not Yet Supported
    1. Mappings assertion conditions and attributes to session features (timeout, tracking, etc)
    2. Single logout
    3. Dynamic metadata generation
    4. Receiving and validating standalone assertion (not wrapped in a response object)

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

Каким будет правильный обходной путь для включения единого выхода из системы для нескольких ВПЛ?

1 Ответ

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

Единственная функция выхода из системы, которую обеспечит Spring Security, будет состоять в том, чтобы выходить из множества SP с одного IdP, а не с нескольких.

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

Способ решения этой проблемы в Spring Security - через LogoutSuccessHandler. LogoutSuccessHandler s вызываются после того, как SP успешно завершил свою сессию (нажал кнопку выхода из системы). Вы можете представить себе LogoutSuccessHandler, который будет либо перенаправлять на конечную точку SLO IDP, либо попадать на конечную точку выхода IDP бэкенда.

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

...