在 Keycloak:18.x 中导入领域

Skr*_*rew 15 keycloak

我无法将任何领域导入 Keycloak 18.0.0。那是 Quarkus,不再是 Wildfly 发行版。这里的文档说它应该非常简单,通过将我导出的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"
Run Code Online (Sandbox Code Playgroud)

输出 :

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
Run Code Online (Sandbox Code Playgroud)

谢谢

dre*_*ash 18

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

\n

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

\n

来自评论(归功于jfranzius):\xc2\xa0

\n
\n

请参阅此处,了解您需要在\nrealm-export.json 中删除或替换的内容:\n https://github.com/keycloak/keycloak/issues/11664#issuecomment-1111062102 \n。我们必须替换条目,另请参阅此处\n https://github.com/keycloak/keycloak/discussions/12041#discussioncomment-2768768

\n
\n

  • 谢谢您,keycloak 20.x 仍然创建默认策略指向“Js”。在客户端>授权>策略中删除它。我们现在可以导入/导出此设置 (3认同)