首页 > 解决方案 > 在不同 Keycloak 实例之间同步用户

问题描述

我为一个多公司集团工作。每家公司都有自己的网络、自己的 IT 管理员和自己的 Active-Directory。不可能通过 VPN 连接不同的网络,例如可以从他们的电子邮件域中识别公司的用户,例如 jdoe@company-a.com 和 jdoe@company-b.com

我的目标是为整个公司集团开发一个全球应用程序。

我想使用 Keycloak 作为身份和访问管理。

问题是,来自所有公司的每个用户,即定义组的成员,都必须有权访问/登录/授权到集中式前端和分散式后端(自编程 API 代理/网关)。

下图是目前的情况:

Draw.io 随意编辑

网络草稿

建议:

  1. 我会为 keycloak 实例使用共享数据库,但由于没有 VPN,因此无法完成
  2. keycloak 到 keycloak 用户联盟?
  3. 使用其他公司作为 idP 并编写脚本切换到主 keycloak?

在此先感谢您的帮助 :)

标签: kubernetesactive-directoryldapkeycloakopenid-connect

解决方案


我建议在每家公司中使用专用的“本地”Keycloak(配置了与 Active Directory 的用户联合)。还有一个“全局”Keycloak 实例,该实例将配置Identity Brokering为所有“本地”Keycloak 实例。“本地”管理员仍然拥有管理用户和自定义登录主题的全部权力。用户必须从“全局”Keycloak 登录页面中选择身份提供者,否则应用程序可能会使用带有kc_idp_hint查询参数的客户端建议的身份提供者。


推荐阅读