Интеграция с LDAP
Active Directory, OpenLDAP, FreeIPA, ALD Pro, Samba DC и MULTIDIRECTORY.
Для кого эта страница
Страница нужна администратору платформы, который подключает LDAP-каталог и затем назначает права пользователям или группам из этого каталога.
Платформа «Штурвал» совместима с каталогами:
- Active Directory;
- OpenLDAP;
- FreeIPA;
- ALD Pro;
- Samba DC;
- MULTIDIRECTORY.
Если нужно подключить Keycloak или Blitz по OIDC, используйте раздел Внешние провайдеры аутентификации.
Если пользователь входит в большое количество LDAP-групп (более 100), доступ в GUI может быть недоступен, см. Восстановить вход в графический интерфейс.
Шаг 1. Что подготовить
Параметры LDAP обычно выдаёт администратор каталога. Потребуется:
- адрес LDAP-сервера: FQDN или IP-адрес;
- порт LDAP-сервера, если он отличается от стандартного: 389 для LDAP или startTLS, 636 для LDAPS;
- DN учётной записи для подключения к каталогу;
- пароль этой учётной записи;
- DN контейнера, где платформа будет искать пользователей;
- DN контейнера, где платформа будет искать группы.
После этого получите LDAP-атрибуты. Они нужны, чтобы платформа понимала, какое поле каталога является именем пользователя, именем группы, email и связью пользователя с группой.
Шаг 2. Как получить атрибуты через ldapsearch
Выполните ldapsearch, подставив свои значения:
ldapsearch -H Ваш-адрес-LDAP-сервера -b "Ваш-DN-контейнера" -D "Ваш-DN-учетной-записи-пользователя" -w "Ваш-пароль"
Параметры команды:
| Параметр | Что указать | Пример |
|---|---|---|
-H |
Адрес LDAP-сервера | ldap://10.11.12.7 |
-b |
DN контейнера, в котором нужно искать пользователей или группы | cn=Users,dc=shturval,dc=lab |
-D |
DN учётной записи для подключения к LDAP | cn=Administrator,cn=Users,dc=shturval,dc=lab |
-w |
Пароль учётной записи для подключения | dkjhdfss |
В ответе найдите:
- атрибут полного имени пользователя;
- атрибут уникального имени пользователя;
- атрибут email пользователя или общий email-суффикс;
- атрибут краткого имени группы.
Указывайте имена атрибутов точно так же, как они пришли в ответе ldapsearch. Регистр символов важен.
Для email пользователя заполните хотя бы одно поле в платформе: Email атрибут или Email суффикс.
Шаг 3. Настройка интеграции с LDAP
- Откройте Управление доступом → Интеграция с LDAP.
- Заполните данные подключения. Поля подключения должны соответствовать параметрам, с которыми вы проверяли доступ через
ldapsearch:
| Поле в интерфейсе | Параметр ldapsearch |
Что указать |
|---|---|---|
| DN для подключения | -D |
DN учётной записи для подключения к LDAP-каталогу |
| Пароль для подключения | -w |
Пароль этой учётной записи |
| Адрес LDAP-сервера | -H |
Адрес LDAP-сервера в формате FQDN или IP-адреса |
- Нажмите Проверить подключение.
Подключение к LDAP-каталогу

Поиск групп
После успешной проверки подключения заполните блок Поиск групп:
- Базовый DN поиска групп;
- Атрибут имени группы.
Поиск групп

При заполнении полей формируется вывод команды ldapsearch для проверки поиска групп. Чтобы посмотреть запрос, раскройте блок Посмотреть запрос ldapsearch под настройками поиска групп.
Используйте его, чтобы проверить поиск групп из командной строки и передать параметры администратору LDAP-каталога при разборе ошибок.
Поиск пользователей
Заполните блок Поиск пользователей:
- Базовый DN поиска пользователей;
- Email атрибут или Email суффикс;
- Name атрибут;
- UserName атрибут.
Поиск пользователей

При заполнении полей формируется вывод команды ldapsearch для проверки поиска пользователей. Чтобы посмотреть запрос, раскройте блок Посмотреть запрос ldapsearch под настройками поиска пользователей.
Используйте его, чтобы проверить, какие записи и атрибуты возвращает каталог.
Сопоставление пользователей
В блоке Сопоставление пользователей укажите связь атрибута пользователя и атрибута группы. Эти атрибуты зависят от структуры вашего каталога, поэтому берите их из результата ldapsearch.
Сопоставление пользователей

Проверка и сохранение
- Нажмите Протестировать.
- Если тест прошёл успешно, нажмите Сохранить.
Чтобы изменить уже сохранённую LDAP-настройку, снова введите пароль для подключения, протестируйте интеграцию и сохраните изменения.
Расширенные настройки
В расширенных настройках можно включить TLS, задать Порт и дополнительные параметры поиска.
Для LDAP без защищённого соединения обычно используется порт 389. Для LDAPS обычно используется порт 636. Для LDAP с startTLS обычно используется порт 389. Если ваш LDAP-каталог использует другой порт, укажите порт, который выдал администратор каталога.
При включённом TLS доступны параметры:
| Параметр | Что означает |
|---|---|
| Подключение по startTLS | Создавать TLS-сессию при подключении к LDAP. По умолчанию отключено. |
| Включить верификацию CA | Проверять сертификат сервера LDAP. Если включаете проверку, загрузите доверенный корневой сертификат. |
| Клиентский сертификат | Файл клиентского сертификата, если он нужен для подключения. |
| Доверенный корневой сертификат | Файл CA, которому должна доверять платформа. Нужен при включённой верификации CA. |
| Клиентский приватный ключ | Файл приватного ключа для клиентского сертификата. |
| Порт | Порт LDAP-сервера. Для LDAPS обычно используют 636, для LDAP/startTLS — 389. |
Настройка TLS

Если вы загружаете TLS-сертификаты и ключи, платформа сохраняет их в формате base64. После настройки эти файлы можно скачать из интерфейса.
После заполнения TLS-параметров нажмите Протестировать. DN и пароль в платформе должны совпадать с данными, которые вы используете при ручной проверке через ldapsearch, например:
ldapsearch -H ldaps://LDAP-СЕРВЕР -b "DN-КОНТЕЙНЕРА" -D "DN-УЧЕТНОЙ-ЗАПИСИ" -w "ПАРОЛЬ"
Если включена верификация CA, проверьте, что загружен правильный доверенный корневой сертификат.
Для поиска пользователей и групп в расширенных настройках доступны:
- Фильтр — дополнительное условие поиска. Указывайте фильтр в скобках, как в
ldapsearch, например(objectClass=group); - Scope — область поиска, например
subдля поиска по всему дереву илиoneдля поиска на один уровень; - PreferredUserName атрибут — поле пользователя с предпочтительным именем.
Если в расширенных настройках указан фильтр, scope или PreferredUserName атрибут, эти значения также попадают в сформированный запрос ldapsearch.
Расширенные настройки поиска

Автоматический режим настройки
Если выбран автоматический режим подключения:
- Выберите Каталог
- При необходимости укажите базовый DN анализа пользователей, групп и нажмите Выполнить анализ.
- Проверьте значения, которые платформа подставила в поля поиска групп и пользователей.
- Исправьте значения, если они отличаются от данных из вашего LDAP-каталога.
- Протестируйте и сохраните настройку.
После выполнения анализа платформа также показывает сформированный запрос ldapsearch для найденных настроек поиска пользователей и групп. Проверьте запрос, если нужно убедиться, какие параметры были распознаны автоматически.
Запуск анализа

Результат анализа групп и пользователей


LDAP можно настроить через Secret ldap-config в namespace shturval-backend.
- Подготовьте файл
config.json:
{
"host": "ldap.example.ru",
"insecureNoSSL": true,
"insecureSkipVerify": true,
"startTLS": false,
"rootCA": "",
"clientCert": "",
"clientKey": "",
"bindDN": "cn=admin,dc=example,dc=com",
"bindPW": "ВАШ_ПАРОЛЬ",
"usernamePrompt": "",
"userSearch": {
"baseDN": "ou=Users,dc=example,dc=com",
"filter": "",
"username": "uid",
"scope": "",
"idAttr": "DN",
"emailAttr": "mail",
"nameAttr": "cn",
"preferredUsernameAttr": "uid",
"emailSuffix": ""
},
"groupSearch": {
"baseDN": "ou=Groups,dc=example,dc=com",
"filter": "",
"scope": "",
"userAttr": "",
"groupAttr": "",
"userMatchers": [
{
"UserAttr": "DN",
"GroupAttr": "member"
}
],
"nameAttr": "cn"
}
Основные параметры:
| Параметр | Что означает |
|---|---|
host |
Адрес LDAP-сервера |
insecureNoSSL |
Не использовать TLS-сессию для подключения |
insecureSkipVerify |
Отключить проверку CA |
startTLS |
Создавать TLS-сессию при подключении к LDAP |
rootCA |
Доверенный корневой сертификат в формате base64 |
clientCert |
Клиентский сертификат в формате base64 |
clientKey |
Клиентский приватный ключ в формате base64 |
bindDN |
DN учётной записи для подключения к LDAP |
bindPW |
Пароль учётной записи для подключения |
userSearch.baseDN |
Базовый DN для поиска пользователей |
userSearch.filter |
Фильтр поиска пользователей |
userSearch.username |
Атрибут уникального имени пользователя |
userSearch.scope |
Область поиска: sub или one |
userSearch.emailAttr |
Атрибут email пользователя |
userSearch.nameAttr |
Атрибут полного имени пользователя |
userSearch.emailSuffix |
Email-суффикс |
groupSearch.baseDN |
Базовый DN для поиска групп |
groupSearch.filter |
Фильтр поиска групп |
groupSearch.scope |
Область поиска: sub или one |
groupSearch.nameAttr |
Атрибут краткого имени группы |
- Закодируйте файл в base64:
cat /path/to/config.json | base64 --wrap=0
- Создайте Secret:
kubectl apply -f - <<EOF
apiVersion: v1
kind: Secret
metadata:
name: ldap-config
namespace: shturval-backend
type: Opaque
data:
config.json: BASE64_СОДЕРЖИМОЕ_CONFIG_JSON
EOF
Примеры для разных каталогов
Значения ниже — примеры. В своей установке используйте значения из вашего LDAP-каталога.
Active Directory
Пример команды для получения пользователей:
ldapsearch -H ldap://10.11.12.7 -b "cn=Users,dc=shturval,dc=lab" -D "cn=Administrator,cn=Users,dc=shturval,dc=lab" -w "ПАРОЛЬ"
Пример атрибутов:
| Поле в платформе | LDAP-атрибут |
|---|---|
| Атрибут имени группы | cn |
| Email атрибут | userPrincipalName |
| Name атрибут | displayName |
| UserName атрибут | sAMAccountName |
| Email суффикс | суффикс из userPrincipalName, например shturval.lab |
Примеры DN:
- DN для подключения:
cn=Administrator,cn=Users,dc=shturval,dc=lab; - базовый DN поиска пользователей:
cn=Users,dc=shturval,dc=lab; - базовый DN поиска групп:
OU=Groups,dc=shturval,dc=lab.
OpenLDAP
Примеры параметров:
| Поле в платформе | Пример значения |
|---|---|
| DN для подключения | cn=admin,dc=example,dc=com |
| Адрес LDAP-сервера | ldap.example.ru |
| Базовый DN поиска групп | ou=Groups,dc=example,dc=com |
| Атрибут имени группы | cn |
| Базовый DN поиска пользователей | ou=Users,dc=example,dc=com |
| Email атрибут | mail |
| Email суффикс | @example.com |
Email-суффикс указывают, если в LDAP нет отдельного email-атрибута в явном виде.
FreeIPA или ALD Pro
Примеры параметров:
| Поле в платформе | Пример значения |
|---|---|
| DN для подключения | uid=admin,cn=users,cn=accounts,dc=freeipa,dc=tech |
| Адрес LDAP-сервера | freeipa.xxx.xx.msk.ru |
| Базовый DN поиска групп | cn=groups,cn=accounts,dc=freeipa,dc=tech |
| Атрибут имени группы | cn |
| Базовый DN поиска пользователей | cn=users,cn=accounts,dc=freeipa,dc=tech |
| Email атрибут | mail |
| Email суффикс | freeipa.tech |
| Name атрибут | uid |
| UserName атрибут | uid |
Samba DC
Примеры параметров:
| Поле в платформе | Пример значения |
|---|---|
| DN для подключения | cn=admin,dc=example,dc=com |
| Адрес LDAP-сервера | ldap.example.ru или 10.11.112.33 |
| Базовый DN поиска групп | ou=groups,dc=example,dc=com |
| Атрибут имени группы | cn |
| Базовый DN поиска пользователей | ou=users,dc=example,dc=com |
| Email атрибут | mail |
| Email суффикс | @example.com |
| Name атрибут | displayName |
| UserName атрибут | sAMAccountName |
MULTIDIRECTORY
В MULTIDIRECTORY должна быть создана сервисная учётная запись с правами на чтение каталога.
Примеры параметров подключения:
| Поле в платформе | Пример значения |
|---|---|
| DN для подключения | cn=admin,cn=users,dc=example,dc=local |
| Адрес LDAP-сервера | 10.11.12.13 |
| Режим настройки | Ручной |
| Использовать TLS | Нет |
Примеры параметров поиска групп:
| Поле в платформе | Пример значения |
|---|---|
| Базовый DN поиска групп | cn=groups,dc=example,dc=local |
| Атрибут имени группы | cn |
| Фильтр групп | (objectClass=group) |
Примеры параметров поиска пользователей:
| Поле в платформе | Пример значения |
|---|---|
| Базовый DN поиска пользователей | cn=users,dc=example,dc=local |
| Email атрибут | mail |
| Email суффикс | @example.local |
| UserName атрибут | sAMAccountName |
| Name атрибут | displayName |
| PreferredUserName атрибут | sAMAccountName |
| Фильтр | (objectClass=user) |
Фильтры поиска и PreferredUserName атрибут доступны в расширенных настройках.
Для сопоставления пользователей и групп укажите:
| Поле в платформе | Пример значения |
|---|---|
| Атрибут пользователя | memberOf |
| Атрибут группы | distinguishedName |
Проверка поиска и назначение прав
После сохранения LDAP-интеграции проверьте поиск:
- Откройте в платформе раздел Управление доступом → страница Управление ролями или нажмите Назначить доступ на вкладке Платформа.
- Нажмите + рядом с таблицей Пользователи или Группы.
- Начните вводить имя пользователя или группы.
- Поиск начинается со второго введённого символа.
- Выберите запись из списка и назначьте наборы доступов.
Поиск пользователя при назначении прав

Поиск по каталогу не зависит от регистра.