gpt4 book ai didi

java - 从 KeyCloak 导出所有用户

转载 作者:行者123 更新时间:2023-12-01 09:59:58 25 4
gpt4 key购买 nike

我有一个特定的用例,我们想每天向 Keycloak 询问所有用户以及每个用户的组和角色。用于与其他内部系统进行对账。

目前,我们正在为此使用 UsersResource 中提供的 Keycloak 端点。但是我们看到每次调用后性能都会降低到我们无法再使用此解决方案的程度。该领域有超过 30K 用户。

我们还看到 Keycloak 可以导出数据库,但只能在系统启动时导出(我猜是出于迁移目的)。鉴于我们想每天提取所有用户,我们不能使用它。

是否有一些已知的功能或解决方法?

最佳答案

我已经通过 docker 使用并行启动容器完成了它,该容器连接到现有的 keycloak 数据库。

请使用与真正的 keacloak 相同版本的容器 keycloak。
由于版本之间的数据库架构差异。

导出

docker run --rm\
--name keycloak_exporter\
-v /tmp:/tmp/keycloak-export:Z\
-e POSTGRES_DATABASE=keycloak\
-e POSTGRES_PASSWORD=PASSOWRD_PLEASE\
-e POSTGRES_USER=keycloak\
-e DB_VENDOR=POSTGRES\
-e POSTGRES_PORT_5432_TCP_ADDR=postgresql.local\
jboss/keycloak:3.4.3.Final\
-Dkeycloak.migration.action=export\
-Dkeycloak.migration.provider=dir\
-Dkeycloak.migration.dir=/tmp/keycloak-export\
-Dkeycloak.migration.usersExportStrategy=SAME_FILE\
-Dkeycloak.migration.realmName=therealm

导入
docker run --rm\
--name keycloak_importer\
-v /tmp:/tmp/keycloak-import:Z\
-e POSTGRES_DATABASE=keycloak_dest\
-e POSTGRES_PASSWORD=PASSOWRD_DEST_PLEASE\
-e POSTGRES_USER=keycloak\
-e DB_VENDOR=POSTGRES\
-e POSTGRES_PORT_5432_TCP_ADDR=postgresql2.local\
jboss/keycloak:3.4.3.Final\
-Dkeycloak.migration.action=import\
-Dkeycloak.migration.provider=dir\
-Dkeycloak.migration.dir=/tmp/keycloak-import\
-Dkeycloak.migration.strategy=IGNORE_EXISTING\
-Dkeycloak.migration.usersExportStrategy=SAME_FILE\
-Dkeycloak.migration.realmName=therealm

可能的配置选项:
https://github.com/keycloak/keycloak-documentation/blob/master/server_admin/topics/export-import.adoc

关于java - 从 KeyCloak 导出所有用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48930281/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com