【发布时间】:2016-06-14 13:04:10
【问题描述】:
我们正在使用 spring-security 和 PingOne 作为 IdP 来实施 SAML。 我们有一个问题,当用户使用 SSO 登录应用程序,然后在 IdP 上被禁用/删除时,他的会话不会终止,因此他可以继续使用该应用程序。 我已经覆盖了 SAMLAuthenticationProvider 身份验证方法,因此我在 ExpiringUsernameAuthenticationToken 上设置了到期日期(类似于 IdP 在断言中为我们提供 SessionNotOnOrAfter 值),但问题是用户只是从应用程序中注销,而不是重新进行身份验证。
有什么方法可以检查用户在 IdP 端是否仍然有活动会话,并且只有在他的 IdP 会话无效时才将他注销?
【问题讨论】:
-
SAML2 包含一个单一的注销机制,可用于协调 IDP 和 SP 上的会话生命周期,但我不知道 PingOne 或 spring-security 是否支持它。
-
@AndersAbel 据我了解,单点注销从 SP 端工作,当用户启动 SL 时,它会将您从 IdP 和 SP 中注销。
-
可以从 SP 和 IDP 发起单次注销。
-
谢谢,但我不确定如何从 IdP 端启动单点注销,显然当用户被禁用时它不会启动。
标签: spring spring-security saml-2.0 spring-saml