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