问题描述
我很难理解为什么在某些情况下Web应用程序会反复向IdP发送AuthnRequest请求。此行为是在应用程序端还是在IdP端可配置的? Spring SAML应用程序是否仅在登录时发送AuthNRequest一次,或者以后也可以发送呢?我检查了spring-security-saml源代码,并且仅在org.springframework.security.saml.SAMLEntryPoint#initializeSSO中的SSO初始化期间执行方法“ sendAuthenticationRequest”,所以我很困惑。
这里有一些背景:应用程序每10分钟发送一次保持活动请求,这些请求中的每一个都会触发发送AuthNRequest:
2020-10-19 12:01:50,335 INFO SAMLDefaultLogger.java:129 - log - AuthNRequest;SUCCESS;10.3.139.13;app1;https://sts.windows.net/acb2b37b-5da0-189b-9b83-0014b27a7c18/;;;
2020-10-19 12:11:50,333 INFO SAMLDefaultLogger.java:129 - log - AuthNRequest;SUCCESS;10.3.139.13;app1;https://sts.windows.net/acb2b37b-5da0-189b-9b83-0014b27a7c18/;;;
2020-10-19 12:21:50,361 INFO SAMLDefaultLogger.java:129 - log - AuthNRequest;SUCCESS;10.3.139.13;app1;https://sts.windows.net/acb2b37b-5da0-189b-9b83-0014b27a7c18/;;;
解决方法
SP和浏览器之间的会话多长时间?如果SP会话已过期,它将触发身份验证请求。
即使存在IDP会话,应用程序是否配置为要求身份验证? 例如saml.sso.profile-options.force-authn = true。