如何导出不包含客户端的KeyCloak Realm?

Keycloak

1 前言

一个问题,一篇文章,一出故事。

如何导出KeyCloak Realm?


上面的章节,我们完成了KeyCloak Realm的导出,本章将实现导出不到Client的Realm配置。

2 最佳实践

2.1 导出的步骤

2.1.1 停止 Keycloak 服务(导出/导入必须停服务)

systemctl stop keycloak

2.1.2 创建备份目录

mkdir -p /data/backup/

2.1.3 导出旧Realm不含用户数据)

kc.sh export --realm cmdschoolGroup --dir /data/backup/ --users skip

2.2 导入的步骤

2.2.1 备份原始导出文件,防止改错

cp /data/backup/cmdschoolGroup-realm.json /data/backup/cmdschoolGroup-realm.json.default

2.2.2 一键清洗 JSON

jq '
  del(.. | .id?)
  | del(.clients)
  | del(.roles)
  | del(.groups)
  | .realm = "cmdschoolConnect"
' /data/backup/cmdschoolGroup-realm.json > /data/backup/cmdschoolConnect-realm.json

需要注意的是,以上完成以下操作
– 删除所有ID
– 删除客户端和客户端相关的角色和组
– 将realm名称改为cmdschoolConnect

2.2.3 验证JSON格式是否正常(无报错即合法)

jq . /data/backup/cmdschoolConnect-realm.json

然后,使用如下命令检查清洗结果(必须全部无输出)

grep '"id"' /data/backup/cmdschoolConnect-realm.json
grep '"clients"' /data/backup/cmdschoolConnect-realm.json
grep '"roles"' /data/backup/cmdschoolConnect-realm.json
grep '"realm"' /data/backup/cmdschoolConnect-realm.json

2.2.4 导入新Realm

kc.sh import --file /data/backup/cmdschoolConnect-realm.json

2.2.5 启动Keycloak

systemctl start keycloak
没有评论

发表回复

Keycloak
如何安装部署KeyCloak私签证书?

1 前言 一个问题,一篇文章,一出故事。 今天的KeyCloak遇到CA自签名证书不信任问题,因此需 …

Keycloak
如何命令行禁用KeyCloak的LDAP Provider?

1 前言 一个问题,一篇文章,一出故事。 本章将演示如何通过命令行禁用LDAP Provider。 …

Keycloak
如何完成KeyCloak kcadm.sh工具认证?

1 前言 一个问题,一篇文章,一出故事。 如何部署RHBK 26.2.5生产模式? 本章将利用命令行 …