首页 > 解决方案 > 在 SAML SP 超时会话和 IDP 这样做之间应该发生什么?

问题描述

我目前正在针对 SSOCircle IDP 测试我的 SAML SP 代码。SP 当前设置为 7200 秒(2 小时)后登录超时;也就是说,如果用户在最后一次进行身份验证 2 小时后尝试进行身份验证,则他们需要再次将其凭据输入 IDP,以获取现在之前 2 小时内的新 AuthnStatement。

但是,IDP 有不同的超时。我不知道它有多长,但它超过2小时。这意味着当 SP 要求用户再次登录时会有一个窗口,但 IDP 无论如何都会自动使用相同的 AuthnStatement。当然,这无法验证。解决此问题的方法是让用户手动转到 SSOCircle 并注销。

这似乎非常不方便。如果 SP 可以重定向用户以在 IDP 处重新输入他们的凭据,这对我来说会更有意义。但我没有在文档或网上看到任何关于此窗口的内容。我可以手动设置WebSSOProfileConsumerImpl.maxAuthenticationAge以匹配 IDP,但看起来像一个脆弱的绷带。

我假设所有国内流离失所者在这方面的表现都差不多。那是对的吗?SP 在此窗口期间应该做些什么不同的事情?

标签: springsingle-sign-onsaml-2.0spring-saml

解决方案


我假设所有国内流离失所者在这方面的表现都差不多。那是对的吗?

或多或少,是的,但这不是关于 IdP 与 SP 的行为方式。这是因为 SP 建立的应用程序会话与 IdP 建立的 SSO 会话完全分开。这不是关于应该发生什么。这是关于你看到的。在许多情况下,这个用例被证明很烦人,或者在许多其他情况下这是完全可以接受的。你需要决定什么对你有用。

SP 在此窗口期间应该做些什么不同的事情?

如果您希望强制 IdP 重新请求凭据并忽略其自己的会话,您可能希望将发送的身份验证请求标记为使用forcedAuthn=true. 然后 IdP 应该质询用户,假设它支持 SAML 强制身份验证请求。


推荐阅读