是否有一种优雅的方法可以为多租户应用程序克隆具有所有配置(客户端和角色)的 Keycloak 领域?

Posted

技术标签:

【中文标题】是否有一种优雅的方法可以为多租户应用程序克隆具有所有配置(客户端和角色)的 Keycloak 领域?【英文标题】:Is there an elegant way to clone a Keycloak realm with all its configurations (clients and roles) for a multitenant application? 【发布时间】:2022-01-04 12:39:50 【问题描述】:

我正在构建一个多租户应用程序,并且我正在使用 Keycloak 进行身份验证和授权。

对于每个租户,我们的想法是拥有一个专用的 Keycloak 领域。每个租户都将拥有完全相同的角色和客户。

我尝试导出一个现有领域,将其用作模板并将其导入新租户。问题:由于内部 id,我正面临违反数据库约束的问题。

问题:有没有一种优雅的方式来实现这一点,有一个模板来创建一个新领域?

【问题讨论】:

如果您在 kubenetes 中,您可以使用 KC 运算符,否则只需从 .json 模板中删除所有 id 您也可以使用 Keycloak Terraform Provider,但这当然会增加其他地方的复杂性。 【参考方案1】:

确保已启用上传脚本功能。对于使用 docker-compose 的部署,只需添加以下内容:

  command: -Dkeycloak.profile.feature.upload_scripts=enabled      

导出您的领域(用作模型的领域)

删除所有包含“id:”和“_id:”的行

用新域名搜索和替换模板域名

在 Keycloak UI 管理控制台中,添加新领域,提供文件,仅此而已。

您可以将清理后的导出文件用作模板。

【讨论】:

以上是关于是否有一种优雅的方法可以为多租户应用程序克隆具有所有配置(客户端和角色)的 Keycloak 领域?的主要内容,如果未能解决你的问题,请参考以下文章

是否有一种优雅的方法可以在 SQL 插入语句中反转位值?

是否有一种优雅的内置方法可以在 R 中进行模索引?

是否有一种优雅的 Pythonic 方式来计算已处理的数据? [复制]

web 应用程序转化为多租户 SaaS 解决方案

如何使用 IdentityServer 4 为多租户应用程序触发 admin_consent 流?

有没有办法在 ABP.io 中将 CRUD 创建为多租户?