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

双KeyCloak服务器跨应用SSO配置求助:已试IDP仍需重复登录

跨KeyCloak服务器实现应用间SSO解决方案

核心配置思路

将对接应用1的KeyCloak1设为主身份提供商(IDP),对接应用2的KeyCloak2作为服务提供者(SP),通过OIDC协议建立双向信任,同时配置自动认证跳转、跨域会话共享,实现应用间免登。

具体步骤

1. 配置KeyCloak1(主IDP)的对接客户端

  • 登录KeyCloak1控制台,进入目标Realm
  • 创建OpenID Connect客户端:
    • 客户端类型选择confidential
    • 有效重定向URI填写:https://<keycloak2域名>/realms/<keycloak2的Realm名>/broker/<自定义IDP别名>/endpoint(<自定义IDP别名>后续配置KeyCloak2时使用,比如keycloak1-idp)
    • 开启Standard Flow Enabled
    • 保存后,记录该客户端的Client ID和Client Secret

2. 在KeyCloak2中添加KeyCloak1作为身份提供商

  • 登录KeyCloak2控制台,进入目标Realm
  • 转到Identity Providers → Add Provider → OpenID Connect v1.0
    • 设置Alias为步骤1中定义的<自定义IDP别名>(如keycloak1-idp)
    • 填写以下URL:
      • Authorization URL:https://<keycloak1域名>/realms/<keycloak1的Realm名>/protocol/openid-connect/auth
      • Token URL:https://<keycloak1域名>/realms/<keycloak1的Realm名>/protocol/openid-connect/token
    • 填入步骤1中获取的Client ID和Client Secret
    • Sync Mode选择Force,确保用户属性自动同步
    • First Broker Login Flow设为first broker login(自动创建或关联KeyCloak2中的用户)
    • 保存配置

3. 配置KeyCloak2中应用2的客户端

  • 进入应用2在KeyCloak2对应的客户端设置
  • 在Authentication Flow Overrides中,将Browser Flow替换为包含IDP自动跳转的流程:
    • 可选方式1:直接使用内置的browser-with-idp流程
    • 可选方式2:自定义流程:编辑默认browser流程,添加Identity Provider Redirector执行器,设置默认IDP为步骤2中配置的keycloak1-idp,并将该执行器设为第一个步骤
  • 确保客户端的Valid Redirect URIs包含应用2的回调地址

4. 解决跨域会话共享问题(关键)

  • 同根域场景:如果两个KeyCloak服务器属于同一根域(如keycloak1.example.com和keycloak2.example.com),在两个KeyCloak的Realm设置中,将Cookie Domain设为根域(.example.com),实现会话Cookie跨子域共享
  • 不同根域场景:
    • 在KeyCloak1的客户端配置中,将KeyCloak2的域名添加到Web Origins
    • 确保两个KeyCloak都开启HTTPS(现代浏览器限制非HTTPS环境的跨域Cookie传递)

5. 排查与验证

  • 若跳转后仍需登录,检查以下点:
    • KeyCloak1中客户端的重定向URI是否完全匹配KeyCloak2的IDP回调地址
    • KeyCloak2的Browser Flow是否正确配置了IDP自动跳转,未强制本地登录
    • 查看KeyCloak的服务器日志,排查认证流程中的错误(如IDP请求失败、用户同步异常)

内容的提问来源于stack exchange,提问作者uday kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 16:33:25