Spring Security SAML 中的刷新会话
Posted
技术标签:
【中文标题】Spring Security SAML 中的刷新会话【英文标题】:Refresh Session in spring security SAML 【发布时间】:2015-12-27 12:36:48 【问题描述】:我们正在使用 Spring SAML 扩展为我们的客户提供 SSO 支持。它在我们的开发环境 IDP(okta) 中运行良好。但是,我们的一个客户正在使用 Tivoli 作为 IDP,我们遇到了一个问题,在一定时间后,用户将开始无法验证错误。
根据我们发现的研究,Tivoli 正在为
<saml:AuthnStatement AuthnInstant="2015-09-14T20:14:14Z" SessionIndex="xxxx" SessionNotOnOrAfter="2015-09-14T21:14:14Z">
在我们的 SAML 断言响应中。
我想知道我们作为 SP 有哪些选择来处理这种情况。我们是否应该在用户遇到问题时提示用户重新进行身份验证,或者是否有办法以某种方式设置我们的应用程序,以便它可以自动刷新会话。
谢谢 萨希尔
【问题讨论】:
【参考方案1】:此 SessionNotOnOrAfter 属性将使有效负载到期。 SP 不应该永远收到相同的 Payload,如果这样,中间人攻击的机会就会很大。
SP 应该实现 KeepAlive 功能来 ping 回 IDP,说扩展相同有效负载的会话。因此 IDP 可以使用当前数据和时间戳更新此属性。
【讨论】:
感谢拉杰什的回复。你知道服务提供者的 Spring-security SAML 扩展是否有办法自动完成吗? 没有 Sahil,据我所知,它没有集成 keepalive 功能。我们必须编写简单的 web 服务调用来 ping IDP 以扩展它的会话。请参阅以下链接,您将清楚地了解 IDP-SP 会话同步。 xacmlinfo.org/2015/02/12/sp-idp-session-time-out-with-saml2-sso以上是关于Spring Security SAML 中的刷新会话的主要内容,如果未能解决你的问题,请参考以下文章
Java 配置中的 Spring Security XML 配置和 Spring SAML
Spring SAML 扩展和 Spring Security 5
spring-security saml2:如何获取当前用户?