Как включить такие функции, как обмен токенами, в keycloak из командной строки

Я попытался реализовать олицетворение пользователя с помощью Keycloak, но получил эту ошибку.

"error": "Feature not enabled"

На этом изображении показано, что я запускал в Postman, и ошибка:

Чтобы запустить keycloak, я запустил Docker в Windows 10, а затем эту команду:

docker run -p 8080:8080 -e KEYCLOAK_PASSWORD=admin123 -e KEYCLOAK_USER=admin -e DB_VENDOR=H2 jboss/keycloak

поэтому я использую образ докера jBoss от RedHat.

Поэтому я хотел включить эту отсутствующую функцию в keycloak, но из документации по keycloak я не могу понять, где запустить эту конкретную команду:

For example, to enable docker and token-exchange, enter this command:

bin/kc.[sh|bat] build --features=docker,token-exchange

чтобы, например, эта функция обмена токенами была доступна в keycloak.

Я пытался найти в jBoss этот файл kc для запуска этой команды, но не нашел. Сначала я нашел изображение jBoss:

docker exec 42f1c5c8bf55 it bash

затем я вхожу в jboss

sh-4.4$ cd /opt/jboss
sh-4.4$ find . -name "kc.sh"
find: ‘./proc/tty/driver’: Permission denied
find: ‘./var/cache/ldconfig’: Permission denied
find: ‘./lost+found’: Permission denied
sh-4.4$ find . -name "kc.*"
find: ‘./proc/tty/driver’: Permission denied
find: ‘./var/cache/ldconfig’: Permission denied
find: ‘./lost+found’: Permission denied

Я много искал и пробовал разные решения, но ни одно из них не сработало.

Кто-нибудь, пожалуйста, дайте мне небольшую помощь или, по крайней мере, идею, как реализовать новую функцию, такую ​​​​как обмен токенами или access_token, внутри keycloak.

Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
0
0
80
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете использовать переменные среды с префиксом KC_ в контейнере Docker. Например, чтобы включить функции:

docker run -p 8080:8080 -e KEYCLOAK_PASSWORD=admin123 -e KEYCLOAK_USER=admin -e KC_FEATURES=token-exchange -e DB_VENDOR=H2 jboss/keycloak

Обратите внимание, что изображение jboss/keycloak больше не является текущим официальным изображением Keycloak. Вероятно, вы захотите перейти на quay.io/keycloak/keycloak образы (см. документацию Keycloak Docker).

Действительно на сервере я использую hub.docker.com/r/bitnami/keycloak/tags не jboss. Приборная панель такая же, как у набережной. Я запустил докер с quay.io/keacloak и на странице Master Realm я вижу: TOKEN_EXCHANGE — Preview. Что это значит? TOKEN_EXCHANGE недоступен? Или, если он доступен, как я могу его включить?

dragon 02.02.2023 15:46

Вы можете включить функции, используя переменную окружения env var JAVA_OPTS_APPEND например, чтобы разрешить администраторам выдавать себя за пользователей, просто запустите контейнер следующим образом:

docker run -p 8080:8080 -e KEYCLOAK_PASSWORD=admin123 -e KEYCLOAK_USER=admin -e DB_VENDOR=H2 -e JAVA_OPTS_APPEND = "-Dkeycloak.profile.feature.impersonation=enabled" jboss/keycloak

Другие вопросы по теме

Похожие вопросы

Не удается выполнить развертывание в Реестре контейнеров Azure из GitLab
Nuxt3: как установить переменные среды выполнения после сборки докера через process.env
Почему обратный прокси-сервер Nginx на WSL2 не видит приложение Rails в контейнере Docker с использованием имени хоста?
Как я могу использовать pg_dump в Kubernetes для создания дампа из удаленного PostgreSQL (PGAAS)?
MongoError: сбой аутентификации с помощью docker-compose
Как добавить монтирование тома докера в PyCharm на Mac — отсутствуют «Настройки контейнера Docker»
Сбой восстановления/сборки dotnet в Linux с ошибкой MSB3202, файл проекта «PARENT_DIR/YYY.proj» не найден [PARENT_DIR/YYY.sln]
Кэширование образов Lambda Docker из стека CDK в конвейере
Docker PHP - установка PECL не может определить тип системы при использовании heredoc и bash, но работает с набором оболочек с помощью команды SHELL
Mkdir: невозможно создать каталог «cpuset»: файловая система только для чтения при запуске «сервисного запуска докера» в Dockerfile