Как настроить в платформе Штурвал
На этой странице
Для настройки интеграции в платформе “Штурвал” вам потребуется:
- Получить параметры подключения к LDAP-каталогу.
- Получить атрибуты записей в LDAP-каталоге для корректной настройки поиска пользователей и групп в платформе “Штурвал”.
Подробнее об этапах настройки интеграции здесь.
После успешно настроенной интеграции с каталогом пользователей вы можете выполнить поиск группы, пользователей в графическом интерфейсе платформы. Подробнее в разделе Поиск пользователя в LDAP-каталоге.
Длее описаны общие шаги для всех LDAP-каталогов по настройке интеграции в графическом интерфейсе или в интерфейсе командной строки.
Примеры настройки интеграции в платформе “Штурвал” с LDAP-каталогами на страницах:
В графическом интерфейсе
- В разделе Управление доступом на странице Интеграция с LDAP внесите данные для проверки подключения к LDAP-каталогу:
- В поле DN для подключения укажите Distinguished Name учетной записи пользователя для аутентификации к LDAP-каталогу. DN должна совпадать с данными, введенными в параметре
-Dпри выполнении ldapsearch. - В поле Пароль для подключения укажите пароль пользователя для аутентификации к LDAP-каталогу. Пароль должен совпадать с данными, введенными в параметре
-wпри выполнении ldapsearch. - В поле Адрес LDAP-сервера укажите в формате FQDN или IP-адрес (например, ldap.example.ru, 10.11.112.33). Адрес должен совпадать с введенными данными адреса в параметре
-Hпри выполнении ldapsearch. При необходимости задать порт, перейдите в режим расширенных настроек и установите Да для Использовать TLS соединение, укажите порт в поле “Порт”.
Скриншот

Режим расширенных настроек интеграции
При необходимости выполните подключение с TLS-соединением. Настройка использования TLS доступна в расширенных настройках интеграции. Изменить режим вы можете с помощью переключателя Показать расширенные настройки.
При выборе Использовать TLS дополнительно доступны поля:
- Подключение по startTLS (по умолчанию отключено);
- Включить верификацию CA (по умолчанию отключена);
- Клиентский сертификат (файл для загрузки);
- Доверенный корневой сертификат (файл для загрузки), если включена верификация CA;
- Клиентский приватный ключ (файл для загрузки).
- Порт. Если не задан и подключение к серверу LDAP осуществляется по startTLS, по умолчанию будет использован 389 порт.
Скриншот

Загруженные файлы будут переведены в формат base64. По завершении интеграции файлы будут доступны для скачивания из интерфейса.
Обратите внимание! Для изменения настроенной конфигурации необходимо введение пароля в настройках подключения.
-
Нажмите Проверить подключение.
-
Когда выполнено успешное подключение:
3.1. Выбран ручной режим подключения
В блоке Поиск групп укажите:
- в поле Базовый DN поиска групп - Distinguished Name контейнера (база поиска), в котором будет выполняться поиск записей. Значение должно совпадать с данными, введенными в параметре
-bпри выполнении ldapsearch. - в поле Атрибут имени группы - атрибут записи, отвечающий за общее (краткое) название группы, определенный на шаге получения атрибутов записей.
Скриншот

В блоке Поиск пользователей укажите:
- в поле Базовый DN поиска пользователей - Distinguished Name контейнера (база поиска), в котором будет выполняться поиск записей пользователей. Значение должно совпадать с данными, введенными в параметре
-bпри выполнении ldapsearch. - в полях Email атрибут, Name атрибут, UserName атрибут, Email суффикс - атрибуты, определенные при выполнении ldapsearch. Для еmail адреса сотрудника должно быть заполнено хотя бы одно из полей: Email атрибут или Email суффикс.
Скриншот

Описание полей интерфейса
| Поле | Описание |
|---|---|
| Email атрибут | email адрес пользователя с UPN суффиксом и @ |
| Name атрибут | полное имя пользователя |
| UserName атрибут | уникальное имя пользователя |
| Email суффикс | UPN суффикс email адреса пользователя |
3.2. Выбран автоматический режим подключения
- Нажмите на Выполнить анализ.
Скриншот

Проверьте атрибуты в заполненных полях поиска групп и поиска пользователей.
Скриншот


3.3 В режиме расширенных настроек для поиска групп и пользователей дополнительно доступны:
- Фильтр: Дополнительное поле, применяемое для фильтрации при поиске в каталоге. В фильтре указывается атрибут записи и присваиваемое значение, по которому необходимо осуществить поиск. Обратите внимание! Необходимо вводить данные для фильтрации в скобках, как при формировании запроса ldapsearch, например, (objectClass=group).
Примеры фильтров
# Фильтр поиска по значению, заданному в sAMAccountName без оператора
(sAMAccountName=i.ivanov)
# Фильтр поиска по совпадению со значением имени или заданным значением в sAMAccountName. Используется оператор ИЛИ - |
(|(name=Ivan Ivanov)(sAMAccountName=ll.romashka))
# Фильтр поиска по совпадению имени и значения в sAMAccountName. Используется оператор И - &
(&(name=Ivan Ivanov)(sAMAccountName=i.ivanov))
# Фильтр поиска, исключающий значение sAMAccountName. Используется оператор отрицания - !
(!(sAMAccountName=i.ivanov))
- Scope (Область поиска, например, “sub” - поиск по всему дереву объектов, “one” - поиск на один уровень).
- PreferredUserName атрибут (Поле уровня “пользователь” в LDAP, содержащее предпочтительное имя сотрудника).
Скриншот

- В блоке Сопоставление пользователей задайте шаблон связи атрибута пользователя и атрибута группы.
Скриншот

-
Когда будут заполнены обязательные поля, станет доступна кнопка Протестировать. Нажатие на эту кнопку инициирует попытку подключения к каталогу. В случае успешного подключения станет доступна кнопка Сохранить.
-
По завершению успешного тестирования настройки сохраните данные.
При необходимости внести изменения в сохраненную настройку введите пароль. После этого протестируйте интеграцию с измененными настройками и сохраните их.
В интерфейсе командной строки
- Подготовьте конфигурационный файл
config.jsonс данными для интеграции с LDAP-каталогом.
Пример config.json
{
"host": "10.11.11.7",
"insecureNoSSL": true,
"insecureSkipVerify": true,
"startTLS": false,
"rootCA": "",
"clientCert": "",
"clientKey": "",
"bindDN": "cn=Administrator,cn=Users,dc=shturval,dc=lab",
"bindPW": "dkjhdfss",
"usernamePrompt": "",
"userSearch": {
"baseDN": "cn=Users,dc=shturval,dc=lab",
"filter": "",
"username": "sAMAccountName",
"scope": "",
"idAttr": "DN",
"emailAttr": "userPrincipalName",
"nameAttr": "displayName",
"preferredUsernameAttr": "sAMAccountName",
"emailSuffix": ""
},
"groupSearch": {
"baseDN": "OU=Groups,DC=shturval,DC=lab",
"filter": "",
"scope": "",
"userAttr": "",
"groupAttr": "",
"userMatchers": [
{
"UserAttr": "DN",
"GroupAttr": "member"
}
],
"nameAttr": "cn"
}
}
| Параметр | Описание |
|---|---|
| host | Адрес LDAP-сервера |
| insecureNoSSL | Не использовать TLS-сессию для создания подключения к LDAP |
| insecureSkipVerify | Выключить верификацию CA |
| startTLS | Создание TLS-сессии при подключении к LDAP |
| rootCA | Доверенный корневой сертификат в формате base64 |
| clientCert | Сертификат клиента, сгенерированный с использованием корневого CA в формате base64 |
| clientKey | Приватный ключ клиента, сгенерированный с использованием корневого CA в формате base64 |
| usernamePrompt | Значение, которое будет использоваться вместо Username |
| bindDN | DN учетной записи пользователя для подключения к LDAP-каталогу |
| bindPW | Пароль учетной записи пользователя для подключения к LDAP-каталогу |
| userSearch.baseDN | Базовый DN для поиска пользователей |
| userSearch.filter | Фильтр поиска пользователей |
| userSearch.username | Атрибут уникального имени пользователя |
| userSearch.scope | Уровень поиска (“sub” - поиск по всему дереву объектов, “one” - поиск на один уровень) |
| userSearch.idAttr | Соответствие ID пользователя атрибуту LDAP |
| userSearch.emailAttr | Атрибут Email пользователя |
| userSearch.preferredUsernameAttr | Атрибут предпочтительного имени пользователя |
| userSearch.nameAttr | Атрибут полного имени пользователя |
| userSearch.emailSuffix | Email суффикс |
| groupSearch.baseDN | Базовый DN для поиска групп |
| groupSearch.filter | Фильтр поиска групп |
| groupSearch.scope | Уровень поиска (“sub” - поиск по всему дереву объектов, “one” - поиск на один уровень) |
| groupSearch.UserAttr | Атрибут пользователя, соответствующий группе |
| groupSearch.GroupAttr | Атрибут группы, соответствующий атрибуту пользователя |
| groupSearch.nameAttr | Атрибут общего названия группы |
- Закодируйте подготовленный конфигурационный файл в формате base64.
Команда
cat ~/date/config.json | base64 --wrap=0
Где вместо ~/date/config.json укажите путь до конфигурационного файла.
Пример ответа
ew0KICAiaG9zdCI6ICIxMC4zMS4xNDUuNyIsDQogICJpbnNlY3VyZU5vU1NMIjogdHJ1ZSwNCiAgImluc2VjdXJlU2tpcFZlcmlmeSI6IHRydWUsDQogICJzdGFydFRMUyI6IGZhbHNlLA0KICAicm9vdENBIjogIiIsDQogICJjbGllbnRDZXJ0IjogIiIsDQogICJjbGllbnRLZXkiOiAiIiwNCiAgInJvb3RDQURhdGEiOiBudWxsLA0KICAiYmluZEROIjogImNuPUFkbWluaXN0cmF0b3IsY249VXNlcnMsZGM9c2h0dXJ2YWwsZGM9bGFiIiwNCiAgImJpbmRQVyI6ICJQQHNzdzByZCIsDQogICJ1c2VybmFtZVByb21wdCI6ICIiLA0KICAidXNlclNlYXJjaCI6IHsNCiAgICAiYmFzZUROIjogImNuPVVzZXJzLGRjPXNodHVydmFsLGRjPWxhYiIsDQogICAgImZpbHRlciI6ICIiL
- В неймспейсе
shturval-backendкластера управления создайте secret с именемldap-configи типомOpaque, содержащий вdataзакодированные данныеconfig.json.
Команда
kubectl apply -f - <<EOF
apiVersion: v1
data:
config.json: ew0KICAiaG9zdCI6ICIxMC4zMS4xNDUuNyIsDQogICJpbnNlY3VyZU5vU1NMIjogdHJ1ZSwNCiAgImluc2VjdXJlU2tpcFZlcmlmeSI6IHRydWUsDQogICJzdGFydFRMUyI6IGZhbHNlLA0KICAicm9vdENBIjogIiIsDQogICJjbGllbnRDZXJ0IjogIiIsDQogICJjbGllbnRLZXkiOiAiIiwNCiAgInJvb3RDQURhdGEiOiBudWxsLA0KICAiYmluZEROIjogImNuPUFkbWluaXN0cmF0b3IsY249VXNlcnMsZGM9c2h0dXJ2YWwsZGM9bGFiIiwNCiAgImJpbmRQVyI6ICJQQHNzdzByZCIsDQogICJ1c2VybmFtZVByb21wdCI6ICIiLA0KICAidXNlclNlYXJjaCI6IHsNCiAgICAiYmFzZUROIjogImNuPVVzZXJzLGRjPXNodHVydmFsLGRjPWxhYiIsDQogICAgImZpbHRlciI6ICIiL
kind: Secret
metadata:
name: ldap-config
namespace: shturval-backend
type: Opaque
EOF