2016-03-01 52 views
0

我们正在使用spring-security和PingOne作为IdP来实施SAML。 我们遇到了一个问题,即当用户使用SSO登录到应用程序,然后在IdP上被禁用/删除时,他的会话没有终止,因此他可以继续使用该应用程序。 我覆盖了SAMLAuthenticationProvider身份验证方法,所以我在ExpiringUsernameAuthenticationToken上设置了到期日期(类似于IdP在断言中给我们SessionNotOnOrAfter值),但问题在于用户刚刚从应用程序注销,未重新进行身份验证。SAML重新验证用户会话

是否有任何方法检查用户是否仍然在IdP端有活动会话,并且只有在他的IdP会话无效时才将其注销?

+0

SAML2包含一个注销机制,可用于协调IDP和SP上的会话生存期,但我不知道PingOne或spring-security是否支持它。 –

+0

@AndersAbel据我所知,Single Logout从SP侧起作用,当用户启动SL时,它将您从IdP和SP注销。 – user6004782

+0

可以从SP和IDP启动单次注销。 –

回答

0

对于这种情况SAML提供AuthnRequest的'IsPassive'属性。如果设置为'true',则可用于检查用户是否仍然与IdP有效会话。这些'被动'AuthnRequests可以定期触发(例如应用程序端会话超时)。

+0

如果Spring Security SAML扩展将提供这种OOTB,那将非常酷。我认为目前情况并非如此。 –