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

如何在Keycloak中实现跨Realm单点登录?

Keycloak跨Realm单点登录实现(应用独立Realm架构场景)

针对两个应用分属独立Keycloak Realm、需实现跨Realm SSO的场景,以下是具体落地步骤:

1. 建立Realm间双向信任

  • 以Realm A(对应App A)为例,进入Realm A的Identity Providers页面,新增Keycloak OpenID Connect类型的身份提供者:
    • 填入Realm B的OpenID配置地址:http://<你的Keycloak地址>/auth/realms/<RealmB名称>/.well-known/openid-configuration
    • 设置易识别的别名(比如realm-b-idp),启用该身份提供者
  • 同样在Realm B中,添加指向Realm A的同类型身份提供者,完成双向信任配置

2. 配置应用客户端的SSO参数

  • 对每个Realm内的应用客户端:
    • 开启Full Scope Allowed(无需精细权限控制时),或手动配置需要共享的角色/权限范围
    • 更新Valid Redirect URIs,加入对方应用的登录回调地址(比如App A的客户端需添加App B的回调URL)
    • 若应用跨域部署,开启Allow Cross Origin选项

3. 用户属性映射(按需配置)

  • 若两个Realm的用户字段不一致,在身份提供者的Mappers标签页添加映射规则:
    • 比如将Realm A的email字段映射到Realm B的user_email,保证跨Realm时用户信息一致性
    • 复杂场景可通过自定义脚本实现属性转换

4. 验证SSO流程

  • 打开App A,使用Realm A的账号登录
  • 直接访问App B,系统会通过已建立的信任关系自动完成认证,无需重复输入Realm B的账号密码
  • 反向操作(从App B登录后访问App A)同样生效

关键注意点

  • 确保两个Realm所在的Keycloak实例网络互通,身份提供者的配置地址可正常访问
  • 需权限限制时,可在身份提供者中设置Required Roles,仅允许指定角色的用户跨Realm登录
  • 跨Realm会话的有效期取两个Realm中更短的超时设置

内容的提问来源于stack exchange,提问作者viv ojha

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 15:50:21