SAML перепроверить пользовательский сеанс

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

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


person user6004782    schedule 01.03.2016    source источник
comment
SAML2 содержит единый механизм выхода из системы, который можно использовать для координации времени жизни сеанса на IDP и SP, но я понятия не имею, поддерживает ли его PingOne или spring-security.   -  person Anders Abel    schedule 02.03.2016
comment
@AndersAbel, насколько я понял, единый выход работает со стороны SP, когда пользователь инициирует SL, он выходит из IdP и SP.   -  person user6004782    schedule 02.03.2016
comment
Единый выход из системы может быть инициирован как из SP, так и из IDP.   -  person Anders Abel    schedule 02.03.2016
comment
Спасибо, но я не уверен, как инициировать единый выход со стороны IdP, очевидно, когда пользователь отключен, он не инициируется.   -  person user6004782    schedule 02.03.2016


Ответы (1)


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

person Bernhard Thalmayr    schedule 07.03.2016
comment
Было бы очень здорово, если бы расширение Spring Security SAML предлагало этот OOTB. Я думаю, что это не так на данный момент. - person Bernhard Thalmayr; 07.03.2016