【问题标题】:How to do a full export (including users) with embedded keycloak如何使用嵌入式密钥斗篷进行完整导出(包括用户)
【发布时间】:2021-07-18 16:38:06
【问题描述】:

我有一个使用嵌入式 keycloak 的 Springboot 应用程序。

我正在寻找一种从中加载 keycloak 服务器、更改配置、添加用户然后导出这个新版本的 keycloak 的方法。

This question 得到了有关如何进行部分导出的答案,但我在 Keycloak Admin REST API 的文档中找不到有关如何进行完全导出的任何内容。

使用独立的 keycloak 服务器,我可以简单地使用 CLI 并键入

-Dkeycloak.migration.action=export -Dkeycloak.migration.provider=singleFile -Dkeycloak.migration.file=/tmp/keycloak-dump.json

但这是嵌入式版本。

这很可能是微不足道的,因为我知道新创建的用户必须存储在某个地方。

我添加了一个用户,但重新启动应用程序并没有将其删除,因此 keycloak 以某种方式将其持久化。但是我用于 keycloak 服务器和领域设置的 json 文件没有改变。

因此,在没有独立服务器的情况下无法访问 CLI,也没有用于完整导出的 REST 端点,我如何加载服务器、进行一些更改并通过导出生成新的 json,我可以简单地将其放入我的 Spring 应用程序代替?

【问题讨论】:

    标签: spring-boot keycloak keycloak-services keycloak-rest-api


    【解决方案1】:

    您可以使用以下命令进行完整导出(如果 Springboot 与 Docker 容器一起使用):

    [podman | docker] exec -it <pod_name> opt/jboss/keycloak/bin/standalone.sh
        -Djboss.socket.binding.port-offset=<interger_value> Docker recommend  an offset of 100 at least
        -Dkeycloak.migration.action=[export | import]
        -Dkeycloak.migration.provider=[singleFile | dir]
        -Dkeycloak.migration.dir=<DIR TO EXPORT TO> Use only iff .migration.provider=dir
        -Dkeycloak.migration.realmName=<REALM_NAME_TO_EXPORT>
        -Dkeycloak.migration.usersExportStrategy=[DIFFERENT_FILES | SKIP | REALM_FILE | SAME_FILE]
        -Dkeycloak.migration.usersPerFile=<integer_value> Use only iff .usersExportStrategy=DIFFERENT_FILES
        -Dkeycloak.migration.file=<FILE TO EXPORT TO>
    

    我正在创建一个带有文档的开源 keycloak 示例;您可以在我的company's GitHub 中查看有关导入/导出的完整指南。

    【讨论】:

      猜你喜欢
      • 2023-02-10
      • 2021-10-30
      • 1970-01-01
      • 2016-11-15
      • 2021-08-02
      • 2020-04-15
      • 2018-07-08
      • 2023-01-13
      • 2020-04-17
      相关资源
      最近更新 更多