You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Keycloak 17升级至26.4.5后多标签页会话行为变更及解决咨询

Keycloak 17→26.4.5 跨标签页会话行为变更原因及解决方案

变更原因

Keycloak从19.x版本开始强化了会话安全策略,默认启用了同一浏览器会话下的用户唯一性校验。这个设计是为了防范会话劫持风险,避免攻击者在已有用户会话的浏览器中切换登录其他用户,以此提升整体认证安全性。

恢复原有行为的解决方案

方案1:修改认证流程,移除用户重复校验

  • 登录Keycloak管理控制台,进入目标Realm
  • 导航至 Authentication > Flows,找到Browser流程,点击右侧的Copy按钮创建自定义流程(比如命名为Custom Browser Flow)
  • 在自定义流程中,展开Browser Forms下的Authentication Session Validation步骤
  • 点击该步骤右侧的Actions > Configure,将User Already Authenticated的处理逻辑改为Allow Switch User(或直接禁用该步骤)
  • 回到Realm的 Authentication > Bindings,将Browser Flow绑定为刚才创建的自定义流程

方案2:认证请求添加prompt=login参数

在客户端发起认证请求时,强制添加prompt=login参数,让Keycloak忽略当前存在的会话,强制展示登录页面,允许输入新用户凭证:

http://your-keycloak-domain/realms/your-realm/protocol/openid-connect/auth?client_id=your-client-id&redirect_uri=your-redirect-uri&response_type=code&prompt=login

这个方式不需要修改Keycloak全局配置,适合特定客户端需要切换用户的场景。

方案3:调整Realm会话安全配置

  • 进入目标Realm的 Realm Settings > Security > Session
  • 找到并关闭Enforce Unique User Session per Browser选项(26.4.5版本中该选项控制浏览器会话内的用户唯一性)
  • 保存配置后,同一浏览器会话下即可登出原有用户并切换登录新用户

注意:修改安全配置会降低一定的安全性,需根据业务场景评估风险后操作。

内容的提问来源于stack exchange,提问作者Abhay Kulkarni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 21:12:13