Как настроить в платформе Штурвал

Для настройки интеграции в платформе “Штурвал” вам потребуется:

  1. Получить параметры подключения к LDAP-каталогу.
  2. Получить атрибуты записей в LDAP-каталоге для корректной настройки поиска пользователей и групп в платформе “Штурвал”.

Подробнее об этапах настройки интеграции здесь.

После успешно настроенной интеграции с каталогом пользователей вы можете выполнить поиск группы, пользователей в графическом интерфейсе платформы. Подробнее в разделе Поиск пользователя в LDAP-каталоге.

Длее описаны общие шаги для всех LDAP-каталогов по настройке интеграции в графическом интерфейсе или в интерфейсе командной строки.

Примеры настройки интеграции в платформе “Штурвал” с LDAP-каталогами на страницах:

В графическом интерфейсе

  1. В разделе Управление доступом на странице Интеграция с 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 соединение, укажите порт в поле “Порт”.
Скриншот

ldapconnect

Режим расширенных настроек интеграции

При необходимости выполните подключение с TLS-соединением. Настройка использования TLS доступна в расширенных настройках интеграции. Изменить режим вы можете с помощью переключателя Показать расширенные настройки.

При выборе Использовать TLS дополнительно доступны поля:

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

ldaptls1

Загруженные файлы будут переведены в формат base64. По завершении интеграции файлы будут доступны для скачивания из интерфейса.

Обратите внимание! Для изменения настроенной конфигурации необходимо введение пароля в настройках подключения.

  1. Нажмите Проверить подключение.

  2. Когда выполнено успешное подключение:

3.1. Выбран ручной режим подключения

В блоке Поиск групп укажите:

  • в поле Базовый DN поиска групп - Distinguished Name контейнера (база поиска), в котором будет выполняться поиск записей. Значение должно совпадать с данными, введенными в параметре -b при выполнении ldapsearch.
  • в поле Атрибут имени группы - атрибут записи, отвечающий за общее (краткое) название группы, определенный на шаге получения атрибутов записей.
Скриншот

ldapgr

В блоке Поиск пользователей укажите:

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

ldapuser

Описание полей интерфейса
Поле Описание
Email атрибут email адрес пользователя с UPN суффиксом и @
Name атрибут полное имя пользователя
UserName атрибут уникальное имя пользователя
Email суффикс UPN суффикс email адреса пользователя

3.2. Выбран автоматический режим подключения

  • Нажмите на Выполнить анализ.
Скриншот

ldapanalysis2

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

Скриншот

ldapanalysisgroup

ldapanalysisuser

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, содержащее предпочтительное имя сотрудника).
Скриншот

ldapfilter1

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

usergroup

  1. Когда будут заполнены обязательные поля, станет доступна кнопка Протестировать. Нажатие на эту кнопку инициирует попытку подключения к каталогу. В случае успешного подключения станет доступна кнопка Сохранить.

  2. По завершению успешного тестирования настройки сохраните данные.

При необходимости внести изменения в сохраненную настройку введите пароль. После этого протестируйте интеграцию с измененными настройками и сохраните их.

В интерфейсе командной строки

  1. Подготовьте конфигурационный файл 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 Атрибут общего названия группы
  1. Закодируйте подготовленный конфигурационный файл в формате base64.
Команда
cat ~/date/config.json | base64 --wrap=0

Где вместо ~/date/config.json укажите путь до конфигурационного файла.

Пример ответа
ew0KICAiaG9zdCI6ICIxMC4zMS4xNDUuNyIsDQogICJpbnNlY3VyZU5vU1NMIjogdHJ1ZSwNCiAgImluc2VjdXJlU2tpcFZlcmlmeSI6IHRydWUsDQogICJzdGFydFRMUyI6IGZhbHNlLA0KICAicm9vdENBIjogIiIsDQogICJjbGllbnRDZXJ0IjogIiIsDQogICJjbGllbnRLZXkiOiAiIiwNCiAgInJvb3RDQURhdGEiOiBudWxsLA0KICAiYmluZEROIjogImNuPUFkbWluaXN0cmF0b3IsY249VXNlcnMsZGM9c2h0dXJ2YWwsZGM9bGFiIiwNCiAgImJpbmRQVyI6ICJQQHNzdzByZCIsDQogICJ1c2VybmFtZVByb21wdCI6ICIiLA0KICAidXNlclNlYXJjaCI6IHsNCiAgICAiYmFzZUROIjogImNuPVVzZXJzLGRjPXNodHVydmFsLGRjPWxhYiIsDQogICAgImZpbHRlciI6ICIiL
  1. В неймспейсе 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
×