【问题标题】:SAML revalidate user sessionSAML 重新验证用户会话
【发布时间】: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


【解决方案1】:

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

【讨论】:

  • 如果 Spring Security SAML 扩展能够提供这个 OOTB,那就太棒了。我认为目前情况并非如此。
猜你喜欢
  • 2014-09-03
  • 1970-01-01
  • 2020-10-14
  • 1970-01-01
  • 2021-10-26
  • 2012-05-19
  • 2012-12-27
  • 2014-06-26
  • 1970-01-01
相关资源
最近更新 更多