Настройка интеграции
- Открыть доступ к компоненту Keycloak из внешней сети, выполнив следующую команду:
docker service update --publish-add published=8091,target=8080 \
pgs-keycloak_keycloak
- Проверить имя тенанта в панели Администрирование:
- открыть Администрирование > Организация > Основные настройки;
- проверить имя тенанта в поле Отображаемое название (рис.)(в примере на рисунке значение по умолчанию).

-
Открыть веб-интерфейс Keycloak.
(адрес по умолчаниюhttp://<ENV>.<DEFAULT_DOMAIN>:8091). -
Перейти в Administration Console и ввести данные для входа.
| Параметр | Значение |
|---|---|
| Имя пользователя | pgs |
| Пароль | значение переменной KEYCLOAK_PASSWORD |
- Выбрать тенант (или realm), уточненный в п.3 (рис.).

-
Нажать User Federation.
-
Из выпадающего меню выбрать провайдера LDAP (Add provider).
-
Заполнить параметры в соответствии с таблицей.
| Параметр | Значение | Комментарий |
|---|---|---|
| usernameLDAPAttribute | sAMAccountName (или другое текущее значение атрибута в AD) | Атрибут, назначаемый как имя пользователя в Keycloak |
| uuidLDAPAttribute | sAMAccountName (или другое текущее значение атрибута в AD) | Атрибут уникального идентификатора объекта |
| editMode | UNSYNCED | Внутренний атрибут Keycloak, позволяющий обновлять пользовательские данные на LDAP-сервере в режиме «только чтение» |
| connectionUrl | Хост в формате ldap://111.1.1.1 | Хост для подключения к каталогу AD |
| usersDn | Данные для подключения к AD соответственно настройкам сервера | Путь до OU (организационной единицы), в которой хранятся учетные записи пользователей |
| bindDn | Логин пользователя AD | Полное имя (DN, distinguished name) учетной записи пользователя в каталоге, от имени которого будет выполняться работа с каталогом |
| bindCredential | Пароль пользователя AD | Пароль учетной записи пользователя в каталоге, от имени которого будет производиться работа с каталогом |
-
Остальные параметры оставить по умолчанию.
-
Нажать Save и Synchronize all users.
На вкладке Users в левом меню можно просмотреть список всех импортированных пользователей.
В случае наличия ошибок возможно вернуться на вкладку User Federation к выбору LDAP-провайдера и нажать Remove imported для очистки списка пользователей.
При длине DN больше чем 255 символов, возникают проблемы, связанные с ограничением на количество символов в таблице postgres, в этом случае необходимо выполнить следующую команду:
docker exec $(docker ps -q -f name=pgs-postgres) psql \
-U keycloak -c "ALTER TABLE user_attribute ALTER COLUMN value TYPE TEXT;"