spring-security - 如何在没有用户交互的情况下正确刷新 SAML 令牌,即重新登录?
问题描述
有一个 Spring Boot 应用程序,它具有 SP 启动的 SSO 流,Azure AD 作为 IDP。在 Azure AD SAML 令牌的默认生命周期设置为一小时 ( NotOnOrAfter
in <conditions>
)。
因此,身份验证本身可以正常工作,除非 SAML 断言到期(一小时后,无论是空闲还是活动会话)。在这种情况下,应用程序返回 401 并将用户重定向到登录页面。但我知道要求用户每小时重新登录是不正确的。
我已经尝试过IsPassive
+ ForceAuthn
,这个解决方案对我来说似乎很有希望,但不幸的是没有奏效。AzureAD 向我返回以下内容:
AADSTS50058: A silent sign-in request was sent but no user is signed in.
有没有办法让用户在没有任何进一步用户交互的情况下保持登录状态并重定向到登录页面?例如 24 小时,但不更改 IDP 端的 SAML 断言生命周期。或者这就是 SAML 的工作方式,并且当断言过期时,用户每次都必须重新登录?
解决方案
推荐阅读
- circuit-sdk - 将文件(图片)附加到对话中
- mongodb - 对嵌套对象集合的 Azure mongodb 查询未按预期工作
- reactjs - 未捕获的类型错误:映射函数不适用于数组变量
- git - Git Merge 不会合并来自其他分支的所有文件
- sql-server - 为什么它不递增(Microsoft SQL)
- jenkins - 如何使用 Jenkins 构建具有私有 GitHub 依赖项的私有 GitHub Rust 项目?
- jquery - Jquery Datatable - AJAX - 无记录处理程序
- android - Android动画视图不会调整其他视图的大小
- c# - DataGridView 的自定义单元格绘制的文本溢出
- css - 多行网络图标