У нас есть веб-приложение на основе Java, которое использует SAML 2.0 для SSO. В рамках единого входа мы также внедрили единый выход. Может ли кто-нибудь поделиться информацией о том, как исправить следующую проблему
- Пользователь входит в IDP(app1)
- Пользователь нажимает ссылку на SP (app2)
- Пользователь выходит из IDP. SP получает запрос на выход из системы, и сеанс становится недействительным.
- Пользователь обновляет браузер, в котором открыт SP(app2), и исходный запрос IDP повторно отправляется. SP обрабатывает этот запрос, как если бы он поступил от IDP. При этом пользователь по-прежнему может перемещаться/использовать app2, даже если он вышел из IDP.
Я думаю, что лучшее решение — вернуться к IDP и проверить, действителен ли сеанс (на основе SAML SessionIndex), но не уверен, как мы можем это сделать. Обратите внимание, что обновление браузера работает только в пределах окна, указанного NotBefore и NotOnOrAfter. Если пользователь пытается обновиться из этого окна, у нас есть логика, которая отклоняет запрос/ответ.