Начиная с версии 2.12.0 данные о пользователях и конфигурации, используемые Chat Server, хранятся в elph-keycloak (поставляется совместно с Elph Chat Server).
Для успешного проведения миграции убедитесь, что поле username для всех пользователей в Keycloak содержит только латинские символы (a–z, A–Z), цифры и допустимые спецсимволы (например, «.», «_», «-»). Учетные записи с именем пользователя, содержащим кириллицу или другие не латинские символы, не будут обработаны. Перед началом миграции необходимо привести все username к соответствующему формату. |
При миграции система может пропускать пользователей, если в импортируемом наборе данных встречаются повторяющиеся email-адреса (email). Это стандартное поведение Keycloak, призванное обеспечить уникальность email в рамках одного realm. Решение: Перед началом миграции включите настройку Duplicate emails в конфигурации realm Keycloak. Это разрешит создание нескольких учетных записей с одинаковым адресом электронной почты и позволит корректно импортировать всех пользователей. Расположение настройки: Realm Settings -> Login -> Duplicate emails -> On. |
На хосте с AuP:
1) Скачайте архив с docker-образом export-users.tar.
2) Загрузите из архива docker-образ:
docker load -i export-users.tar |
3) Создайте директорию export-users и перейдите в нее:
mkdir export-users && cd export-users |
4) В директории export-users создайте 2 файла: .env и docker-compose.yml:
KEYCLOAK_URL = 'https://my_aup_address' #Адрес AuP KEYCLOAK_REALM = 'ecss' #Realm Keycloak AuP, по умолчанию ecss KEYCLOAK_USER = 'admin' #Пользователь keycloak KEYCLOAK_PASSWORD = 'some_passwd' #Пароль пользователя keycloak KEYCLOAK_TOKEN_URL = '/auth/realms/master/protocol/openid-connect/token' KEYCLOAK_CLIENT_ID = 'admin-cli' OUTPUT_FILE = 'realm-users.json' |
version: '3.8'
services:
export-users:
image: export-users
build: .
container_name: export-users
volumes:
- ./data:/app/data
environment:
- PYTHONUNBUFFERED=1
env_file:
- .env
restart: no |
5) Запустите скрипт:
docker compose up |
После завершения работы скрипта будет создан файл export-users/data/realm-users.json.
На хосте с Elph Chat:
1) Скачайте архив с docker-образом import-users.tar;
2) Загрузите из архива docker-образ:
docker load -i import-users.tar |
3) Создайте директорию import-users и перейдите в нее:
mkdir import-users && cd import-users |
4) В директории import-users создайте 2 файла: .env и docker-compose.yml:
KEYCLOAK_URL="http://my_chat_server:8282" #Адрес и порт Keycloak Chat Server KEYCLOAK_REALM = 'test_domain' #Realm Keycloak Chat Server KEYCLOAK_USER = 'admin' #admin login KEYCLOAK_PASSWORD = 'admin' #admin password KEYCLOAK_CLIENT_ID='admin-cli' INPUT_FILE='realm-users.json' PASSWORDS_FILE='passwords.json' PASSWORD_LENGTH='16' RETRY='3' |
version: '3.8'
services:
import-users:
image: import-users
build: .
container_name: import-users
env_file:
- .env
environment:
- PYTHONUNBUFFERED=1
volumes:
- ./data:/app/data
restart: no |
5) Создайте директорию import-users/data/ и положите в нее экспортированный realm-users.json;
6) Перейдите в import-users и запустите скрипт:
docker compose up |