在 Keycloak:18.x 中导入领域

Import realm in Keycloak:18.x

我无法将任何领域导入 Keycloak 18.0.0。那是 Quarkus,不再是 Wildfly 发行版。文档 here 说它应该非常简单,通过将我导出的 realm.json 文件安装到 /opt/keycloak/data/import/...json 它实际上尝试导入它,但它以:

"[org.keycloak.quarkus.runtime.cli.ExecutionExceptionHandler] (main) ERROR: Script upload is disabled".

已知要删除,旧的 -Dkeycloak.profile.feature.upload_scripts=enabled 将不再有效。好的。 但是在启动时导入任何领域的方法是什么?这将用于分发现成的本地堆栈,而无需启动任何手工制作。我可以使用 运行 SQL 命令来完成,但这对我来说太老套了。

编写文件:

  cp-keycloak:
image: quay.io/keycloak/keycloak:18.0.0
environment:
  KC_DB: mysql
  KC_DB_URL: jdbc:mysql://cp-keycloak-database:3306/keycloak
  KC_DB_USERNAME: root
  KC_DB_PASSWORD: root
  KC_HOSTNAME: localhost
  KEYCLOAK_ADMIN: admin
  KEYCLOAK_ADMIN_PASSWORD: admin
ports:
  - 8082:8080
volumes:
  - ./data/local_stack/init.keycloak.json:/opt/keycloak/data/import/main-realm.json:ro
entrypoint: "/opt/keycloak/bin/kc.sh start-dev --import-realm"

输出:

cp-keycloak_1           | 2022-05-05 14:07:26,801 ERROR [org.keycloak.quarkus.runtime.cli.ExecutionExceptionHandler] (main) ERROR: Failed to start server in (development) mode
cp-keycloak_1           | 2022-05-05 14:07:26,802 ERROR [org.keycloak.quarkus.runtime.cli.ExecutionExceptionHandler] (main) ERROR: Failed to import realm: Main-Realm
cp-keycloak_1           | 2022-05-05 14:07:26,803 ERROR [org.keycloak.quarkus.runtime.cli.ExecutionExceptionHandler] (main) ERROR: Script upload is disabled

谢谢

这可能是因为在您的领域内。json 引用了一些正在使用已弃用的 upload script 功能的配置。

尝试删除它,导出 json 然后他们再次尝试导入(这次没有上传脚本功能。

来自评论(归功于 jfrantzius):

See here for what you either need to remove or replace in your realm-export.json: https://github.com/keycloak/keycloak/issues/11664#issuecomment-1111062102 . We had to replace the entries, see also here https://github.com/keycloak/keycloak/discussions/12041#discussioncomment-2768768