安装 bitnami/keycloak helm 图表时如何传递 -Dkeycloak.profile.feature.upload_scripts=enabled 标志

问题描述 投票:0回答:3

下面是我在 kubernetes 集群上安装 bitnami keycloak 的命令

helm install kc --set auth.adminPassword=admin,auth.adminUser=admin,service.httpPort=8180 bitnami/keycloak -n my-namespace

我想将领域(包含用户、组、客户端和角色)导入到我的 keycloak 中,但在执行此操作之前,我需要启用上传脚本标志,你们中的大多数人可能已经知道我们可以通过使用standalone.sh 来做到这一点以下 在独立的 keycloak 安装上

bin/standalone.bat -Djboss.socket.binding.port-offset=10 -Dkeycloak.profile.featur
e.upload_scripts=enabled

有人可以帮助我如何使用 helm install 命令通过传递标志来完成此操作,就像我为

auth.adminPassword=admin,auth.adminUser=admin,service.httpPort=8180

所做的那样

提前致谢

kubernetes keycloak kubernetes-helm bitnami
3个回答
4
投票

在 Keycloak yaml 文件中,您需要添加字段

extraEnvVars
并设置
KEYCLOAK_EXTRA_ARGS
环境变量,如下例所示:

keycloak:
  enabled: true
  auth:
    adminUser: admin
    adminPassword: secret
  extraEnvVars:
    - name: KEYCLOAK_EXTRA_ARGS
      value: -Dkeycloak.profile.feature.upload_scripts=enabled    
  extraVolumeMounts:
   ...

但是请记住,

upload_scripts
功能将来将从 Keycloak 中删除。

来自 Keycloak 文档

不推荐通过管理控制台上传脚本的功能 将在 Keycloak 的未来版本中删除


0
投票

正如 dreamcrash 所说,

upload_scripts
功能已被弃用。至于替代品是什么,Keycloak 文档说:

管理员应始终使用 JAR 文件将脚本直接部署到服务器,以防止在运行时运行脚本时受到攻击。

这意味着您应该将脚本作为 JAR 文件上传到特定文件夹(如果是 docker 容器,则为

/opt/jboss/keycloak/standalone/deployments/
?),并避免将它们放入真正的导入文件中。更多信息请参见 Keycloak 文档


0
投票

在最新版本的 quay images 中,upload_scripts 功能已被弃用。我解决问题的方法是使用以下 docker-compose 配置文件:

  keycloak:
image: quay.io/keycloak/keycloak:22.0.1
container_name: keycloak
environment:
  KEYCLOAK_ADMIN: admin
  KEYCLOAK_ADMIN_PASSWORD: admin
  JAVA_OPTS_APPEND: "-Dkeycloak.migration.action=import -Dkeycloak.migration.provider=singleFile  -Dkeycloak.migration.file=/opt/keycloak/data/import/realms.json  -Dkeycloak.migration.replace-placeholders=true"
ports:
  - "9080:8080"
volumes:
  - ./keycloak:/opt/keycloak/data/import  # Mount the realm JSON file
command: start-dev

最重要的是从realms.json文件中删除所有“type”:“js”的策略/节点。应删除的配置示例如下:

 [ { "id" : "a664efcb-8bbb-4650-86da-4d5a27dc65a1", "name" : "Default Policy", "description" : "A policy that grants access only for users within this realm", "type" : "js", "logic" : "POSITIVE", "decisionStrategy" : "AFFIRMATIVE", "config" : { "code" : "// by default, grants any permission associated with this policy\n$evaluation.grant();\n" } }, { "id" : "8c6b3e7a-c591-491b-9bcc-59e144ae65c8", "name" : "Default Permission", "description" : "A permission that applies to the default resource type", "type" : "resource", "logic" : "POSITIVE", "decisionStrategy" : "UNANIMOUS", "config" : { "defaultResourceType" : "urn:krakend-client:resources:default", "applyPolicies" : "[\"Default Policy\"]" } } ]

我在这里给出了相同的解决方案: https://github.com/dasniko/testcontainers-keycloak/issues/83

© www.soinside.com 2019 - 2024. All rights reserved.