2016-03-01 5 views
0

Мы реализуем SAML с использованием Spring-Security и PingOne в качестве IdP. У нас есть проблема, когда при входе пользователя в приложение с SSO, а затем отключен/удален на IdP, его сеанс не завершается, поэтому он может продолжать использовать приложение. Я переписал метод аутентификации SAMLAuthenticationProvider, поэтому я установил дату истечения срока действия на ExpiringUsernameAuthenticationToken (подобно тому, как IdP дает нам SessionNotOnOrAfter значение в утверждении), но проблема в том, что пользователь просто вышел из приложения, а не повторно аутентифицирован.SAML revalidate user session

Есть ли способ проверить, есть ли у пользователя активный сеанс на стороне IdP, и только вывести его из системы, если его сеанс IdP недействителен?

+0

SAML2 содержит единственный механизм выхода из системы, который может использоваться для координации времени жизни сеанса на IDP и SP, но я понятия не имею, поддерживает ли PingOne или spring-security. –

+0

@AndersAbel, как я понял, Single Logout работает со стороны SP, когда пользователь инициирует SL, он выводит вас из IdP и SP. – user6004782

+0

Одиночный выход может быть инициирован как из SP, так и из IDP. –

ответ

0

для этого сценария SAML предлагает атрибут IsPassive для AuthnRequest. Если установлено значение «true», это может использоваться для проверки того, имеет ли пользователь еще действительный сеанс с IdP. Эти «пассивные» AuthnRequests могут быть запущены на регулярной основе (например, время ожидания сеанса приложения).

+0

Было бы здорово, если Spring SAML-расширение Spring предложит этот OOTB. Я думаю, что в данный момент это не так. –