← Навигация по документации

Обзор

Данная страница помогает пользователям выполнить обновление их установок (подключённых к Keycloak 11.0.3 или более ранним версиям) до версии Keycloak 18+.

Начиная с версии Keycloak 12+, Keycloak больше не инициализирует клиентские области по умолчанию (default client scopes) для стандартных клиентов при импорте realm. Это вызывает ошибку Forbidden при входе пользователей в their account console. Чтобы обойти эту проблему, последние LDAP-образы от dcm4chee содержат скрипты для инициализации и добавления разрешений account пользователям по умолчанию, а также любым другим пользователям, добавленным ранее в Keycloak.

Начиная с версий Keycloak 18+ на базе дистрибутива Quarkus, внесён ряд значительных изменений конфигурации, затрагивающих переменные окружения. Полный список переменных окружения для нового образа Keycloak можно найти здесь

Шаги обновления несколько различаются в зависимости от того, с какой версии LDAP выполняется обновление, а также от типа бэкенда БД, используемого для Keycloak. Обязательно обновитесь до последних образов Keycloak (dcm4che/keycloak:26.0.6) и LDAP (dcm4che/slapd-dcm4chee:2.6.7-33.1). Примечание: Эти шаги обновления действительны только для установок Keycloak с LDAP User Federation

Шаги обновления

Начальные шаги обновления являются общими, независимо от того, с какой версии LDAP выполняется обновление.

Остановка и удаление контейнеров с предыдущей версией

$ docker stop ldap keycloak
ldap
keycloak
$ docker rm -v ldap keycloak
ldap
keycloak

или с использованием Docker Composite

$ docker-compose down
Stopping keycloak_1  ... done
Stopping ldap_1 ... done
Removing keycloak_1  ... done
Removing ldap_1 ... done
Removing network default

Внешняя БД

Если Keycloak подключён к внешней БД (например, mariadb), остановите и удалите также контейнер базы данных.

$ docker stop ldap mariadb keycloak
ldap
mariadb
keycloak
$ docker rm -v ldap mariadb keycloak
ldap
mariadb
keycloak

или с использованием Docker Composite

$ docker-compose down
Stopping keycloak_1  ... done
Stopping mariadb_1  ... done
Stopping ldap_1 ... done
Removing keycloak_1  ... done
Removing mariadb_1  ... done
Removing ldap_1 ... done
Removing network default

Удаление ранее примонтированного тома Keycloak

Удалите или переименуйте каталог, который был примонтирован к /opt/keycloak/standalone, например:

$ sudo mv /var/local/dcm4chee-arc/keycloak /tmp

Примечание: Сохраните примонтированный том LDAP

Запуск новой версии серверов OpenLDAP и Keycloak

Запустите новую версию серверов OpenLDAP и Keycloak, примонтировав те же каталоги хоста, что и в предыдущей версии.

Примечание: Обязательно задайте переменные окружения при запуске нового Keycloak.

Например:

$ docker run --network=default --name ldap \
           -p 389:389 \
           -e ARCHIVE_HOST=vrinda-pc \
           -v /etc/localtime:/etc/localtime:ro \
           -v /etc/timezone:/etc/timezone:ro \
           -v /var/local/dcm4chee-arc/ldap:/var/lib/openldap/openldap-data \
           -v /var/local/dcm4chee-arc/slapd.d:/etc/openldap/slapd.d \
           -d dcm4che/slapd-dcm4chee:2.6.10-34.3

$ docker run --network=default --name keycloak \
           -p 8880:8880 \
           -p 8843:8843 \
           -e ARCHIVE_HOST=vrinda-pc \
           -e KC_HOSTNAME=https://vrinda-pc:8843 \
           -e KC_HTTP_PORT=8880 \
           -e KC_HTTPS_PORT=8843 \
           -e DEBUG=true \
           -e KC_HTTP_ENABLED=true \
           -e KC_HTTP_RELATIVE_PATH=/auth \
           -e KC_LOG=file \
           -e KC_LOG_LEVEL=INFO \
           -e KC_BOOTSTRAP_ADMIN_USERNAME=admin \
           -e KC_BOOTSTRAP_ADMIN_PASSWORD=changeit \
           -e KEYCLOAK_WAIT_FOR=ldap:389 \
           -v /etc/localtime:/etc/localtime:ro \
           -v /etc/timezone:/etc/timezone:ro \
           -v /var/local/dcm4chee-arc/keycloak/data:/opt/keycloak/data \
           -v /var/local/dcm4chee-arc/keycloak/themes:/opt/keycloak/themes \
           -d dcm4che/keycloak:26.0.6

Если используется Docker Compose, скорректируйте теги версий образов в docker-compose.yaml и переменные окружения соответствующим образом,

version: "3"
services:
  ldap:
    image: dcm4che/slapd-dcm4chee:2.6.10-34.3
    logging:
      driver: json-file
      options:
        max-size: "10m"
    ports:
      - "389:389"
    environment:
      STORAGE_DIR: /storage/fs1
    volumes:
      - /var/local/dcm4chee-arc/ldap:/var/lib/openldap/openldap-data
      - /var/local/dcm4chee-arc/slapd.d:/etc/openldap/slapd.d
  keycloak:
    image: dcm4che/keycloak:26.0.6
    logging:
      driver: json-file
      options:
        max-size: "10m"
    ports:
      - "8880:8880"
      - "8843:8843"
    environment:
      KC_HTTP_PORT: 8880
      KC_HTTPS_PORT: 8843
      ARCHIVE_HOST: vrinda-pc
      KC_HOSTNAME: vrinda-pc
      KC_HOSTNAME_BACKCHANNEL_DYNAMIC: "true"
      DEBUG: "true"
      KC_HTTP_ENABLED: "true"
      KC_HTTP_RELATIVE_PATH: /auth
      KC_LOG: file
      KC_LOG_LEVEL: INFO
      KC_BOOTSTRAP_ADMIN_USERNAME: admin
      KC_BOOTSTRAP_ADMIN_PASSWORD: changeit
      KEYCLOAK_WAIT_FOR: ldap:389
    depends_on:
      - ldap
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
      - /var/local/dcm4chee-arc/keycloak/data:/opt/keycloak/data
      - /var/local/dcm4chee-arc/keycloak/themes:/opt/keycloak/themes

перед запуском серверов OpenLDAP и Keycloak выполнив

$ docker-compose -p default up -d ldap keycloak
Creating network "default" with the default driver
Creating ldap_1 ... done
Creating keycloak_1 ... done

Примечание: Замените vrinda-pc именами хостов вашего архива / keycloak.

Шаги обновления в зависимости от предыдущей версии LDAP / бэкенда БД

Обновление с LDAP 2.4.57-23.3 (или более ранней)

Обновление с LDAP 2.4.57-24.0 (или более поздней)

Обновление с LDAP 2.4.57-23.3 (или более ранней) с внешней БД

Обновление с LDAP 2.4.57-24.0 (или более поздней) с внешней БД

Выбор темы входа j4care после обновления с версий, предшествующих Keycloak 26.x

Начиная с версий Keycloak 26+, вместо модификации темы входа по умолчанию, настроенная тема входа j4care предоставляется дополнительно к встроенным темам входа - base - keycloak - keycloak.v2

При обновлении с предыдущих версий Keycloak необходимо выбрать j4care в качестве темы входа через административную консоль Keycloak:

Вы также можете удалить каталог keycloak в примонтированном к хосту каталоге /opt/keycloak/themes, чтобы там остались только новые:

{mounted-host-directory}
└── j4care
    └── login
        ├── resources
        │   ├── css
        │   │   └── styles.css
        │   └── img
        │       ├── favicon.ico
        │       ├── j4care-bg.jpg
        │       └── j4care-logo.png
        └── theme.properties