kubernetes - 在不同 Keycloak 实例之间同步用户
问题描述
我为一个多公司集团工作。每家公司都有自己的网络、自己的 IT 管理员和自己的 Active-Directory。不可能通过 VPN 连接不同的网络,例如可以从他们的电子邮件域中识别公司的用户,例如 jdoe@company-a.com 和 jdoe@company-b.com
我的目标是为整个公司集团开发一个全球应用程序。
我想使用 Keycloak 作为身份和访问管理。
问题是,来自所有公司的每个用户,即定义组的成员,都必须有权访问/登录/授权到集中式前端和分散式后端(自编程 API 代理/网关)。
下图是目前的情况:
建议:
- 我会为 keycloak 实例使用共享数据库,但由于没有 VPN,因此无法完成
- keycloak 到 keycloak 用户联盟?
- 使用其他公司作为 idP 并编写脚本切换到主 keycloak?
在此先感谢您的帮助 :)
解决方案
我建议在每家公司中使用专用的“本地”Keycloak(配置了与 Active Directory 的用户联合)。还有一个“全局”Keycloak 实例,该实例将配置Identity Brokering
为所有“本地”Keycloak 实例。“本地”管理员仍然拥有管理用户和自定义登录主题的全部权力。用户必须从“全局”Keycloak 登录页面中选择身份提供者,否则应用程序可能会使用带有kc_idp_hint
查询参数的客户端建议的身份提供者。
推荐阅读
- laravel - 在动态旧页面上的 laravel 5.6 中实现 AMP
- pyqt5 - 将表格小部件导出为 excel 文件时出现问题
- ambari - 运行 ambari 服务的单个主机(当前机器)的 Ambari 服务器主机注册失败
- kubernetes - 如何确定 Kubernetes 集群的最佳实现
- android - logcat中的数百个随机错误
- php - 选择PHP表单获取所有值
- python-3.x - Bokeh ColumnDataSource 行未呈现
- sql - 存储选择结果并使用循环在 PL/SQL 块中进行测试
- database - 是否可以使用 eloquent 在 laravel 中定义 is-a 关系?
- docker - docker:来自守护进程的错误响应:驱动程序在端点上编程外部连接失败