LDAP-каталоги
LDAP (Lightweight Directory Access Protocol) — протокол, который используется для получения информации из служб каталогов (AD, FreeIPA, ALD Pro, SambaDC, Red ADM и так далее) о пользователях, группах и связях между ними. Эта информация в дальнейшем используется для аутентификации и авторизации пользователей в портале администратора, десктоп-клиенте и на терминальных серверах.
LDAP представляет информацию об этих сущностях в виде набора объектов (пользователь, группа), каждый из которых имеет определенный набор атрибутов (имя пользователя, имя группы, список членов группы, номер телефона пользователя).
Для работы пользователей с СТД «Термит» необходимо, чтобы система могла выполнять поиск пользователей в LDAP-каталоге, получать список групп, в которые входит пользователь, и т.д. Для этого администратору нужно указать имена классов и ряд атрибутов для объектов «Пользователь» и «Группа»:
Для работы пользователей с СТД «Термит» необходимо, чтобы система могла выполнять поиск пользователей в LDAP-каталоге, получать список групп, в которые входит пользователь, и т.д.
-
Общие атрибуты для классов объектов:
-
Атрибут для идентификации объектов — в значении этого атрибута хранится уникальный ID объекта.
-
Атрибут, содержащий имя объекта, указанное для списка членов групп — в значении этого атрибута описано имя объекта, который находится в списке членов групп.
-
-
Атрибуты для класса объекта «Пользователь»:
-
Атрибут для получения отображаемого имени пользователя — значение этого атрибута применяется при отображении пользователей в интерфейсе, например, при входе в систему.
-
Атрибут для поиска пользователя — атрибут применяется для поиска пользователя по его имени при аутентификации в портале администратора или десктоп-клиенте.
-
Атрибут для аутентификации на терминальном сервере Linux — в значении этого атрибута применяется имя, которое будет передаваться на сервер под управлением Linux.
-
Атрибут для аутентификации на терминальном сервере Windows — в значении этого атрибута применяется имя, которое будет передаваться на сервер под управлением Windows.
-
-
Атрибуты для класса объекта «Группа»:
-
Атрибут для получения отображаемого имени группы — значение этого атрибута применяется при отображении групп в интерфейсе. Например, при добавлении ролей или при настройке прав на запуск приложения.
-
Атрибут со списком членов групп — в значении этого атрибута находится информация о группе, в состав которой входят пользователи и другие группы.
-
В СТД «Термит» поддерживаются:
-
следующие LDAP-каталоги для аутентификации пользователей по паролю и получения информации о пользователях, группах и связях между ними:
-
AD
-
SambaDC
-
Red ADM
-
FreeIPA
-
ALD Pro
-
OpenLDAP
-
-
защищенные протоколы передачи данных LDAP over SSL и LDAP StartTLS.
На вкладке LDAP-каталоги при наведении курсора на полное имя каталога можно:
-
проверить соединение, нажав
; -
удалить LDAP-каталог, нажав
; -
синхронизировать данные LDAP-каталога, нажав
; -
настроить Kerberos, нажав
. -
изменить настройки LDAP-каталога, нажав
.
Добавление LDAP-каталога
Чтобы добавить LDAP-каталог:
-
В левом меню выберите раздел Настройки.
-
Перейдите на вкладку LDAP-каталоги и нажмите Добавить LDAP.
-
Задайте параметры для подключения службы каталогов:
-
Полное имя каталога — отображаемое имя в списке LDAP-каталогов и при входе в систему.
-
Базовое уникальное имя. Например, для домена example.com: «DC=example,DC=com».
-
Имя пользователя — уникальное имя пользователя в LDAP-каталоге. Например, для домена example.com: «CN=termitsvc,CN=users,DC=example,DC=com».
Посмотреть уникальное имя пользователя можно в зависимости от выбранной реализации LDAP следующими способами:
AD
Выполните команду в PowerShell на AD контроллера домена:
Get-ADUser %Имя_пользователя% | Select DistinguishedNameГде %Имя_пользователя% - логин пользователя, которого нужно добавить.
Samba
Выполните команду с правами администратора на Samba контроллере домена:
samba-tool user show %Имя_пользователя% | grep 'distinguishedName:'Где %Имя_пользователя% - логин пользователя, которого нужно добавить.
FreeIpa
Выполните команду с правами администратора на FreeIPA контроллере домена:
ipa user-show %Имя_пользователя% --all | grep 'dn:'Где %Имя_пользователя% - логин пользователя, которого нужно добавить.
-
Пароль — пароль от сервисной учетной записи.
-
Период синхронизации (мин.)
-
-
Нажмите Далее.
-
Чтобы задать атрибуты используемого LDAP-каталога, укажите:
-
Тип LDAP-каталога — тип: AD, FreeIPA или Другой.
Тип зависит от выбранной реализации LDAP:
-
Для Samba DC и Red ADM требуется выбрать тип каталога AD.
-
Для ALD Pro требуется выбрать тип каталога FreeIPA.
-
Для OpenLDAP и других реализаций LDAP-каталогов требуется выбрать тип Другой.
AD
-
Класс объекта «Пользователь» — user
-
Класс объекта «Группа» — group
-
Атрибут для идентификации объектов — objectGUID
-
Атрибут для получения отображаемого имени пользователя — cn
-
Атрибут для получения отображаемого имени группы — cn
-
Атрибут для поиска пользователя — samAccountName
-
Атрибут со списком членов групп — member
-
Атрибут, содержащий имя объекта, указанное для списка членов групп — distinguishedName
-
Атрибут для аутентификации на терминальном сервере Linux — samAccountName
-
Атрибут для аутентификации на терминальном сервере Windows — msDS-PrincipalName
-
Для чтения большого количества пользователей в группе включите опцию Поддержка range для получения членов группы.
FreeIPA
-
Класс объекта «Пользователь» — inetuser
-
Класс объекта «Группа» — ipausergroup
-
Атрибут для идентификации объектов — ipaUniqueID
-
Атрибут для получения отображаемого имени пользователя — cn
-
Атрибут для получения отображаемого имени группы — cn
-
Атрибут для поиска пользователя — uid
-
Атрибут со списком членов групп — member
-
Атрибут, содержащий имя объекта, указанное для списка членов групп — dn
-
Атрибут для аутентификации на терминальном сервере Linux — uid
-
Атрибут для аутентификации на терминальном сервере Windows — msDS-PrincipalName
-
Для чтения большого количества пользователей в группе включите опцию Поддержка range для получения членов группы.
Другой (для OpenLDAP)
-
Класс объекта «Пользователь» — posixAccount
-
Класс объекта «Группа» — posixGroup
-
Атрибут для идентификации объектов — entryUUID
-
Атрибут для получения отображаемого имени пользователя — cn
-
Атрибут для получения отображаемого имени группы — cn
-
Атрибут для поиска пользователя — uid
-
Атрибут со списком членов групп — memberUid
-
Атрибут, содержащий имя объекта, указанное для списка членов групп — uid
-
Атрибут для аутентификации на терминальном сервере Linux — uid
-
Атрибут для аутентификации на терминальном сервере Windows — msDS-PrincipalName
-
Выключите опцию Поддержка range для получения членов группы.
-
-
-
Нажмите Далее.
-
Чтобы добавить адрес сервера LDAP, нажмите
.Система всегда работает с первым LDAP-сервером. Если сервер становится недоступен, система переходит к следующему.
-
Укажите:
-
Адрес — IP-адрес или FQDN LDAP-сервера, например «termit-example-01.com».
-
Протокол — выберите из списка:
Перед выбором протоколов LDAP over SSL и LDAP StartTLS добавьте доверенный сертификат.
-
LDAP — технология шифрования данных при подключении к LDAP-серверу не используется. Данные передаются в открытом виде по порту 389. Не рекомендуется использовать в продуктовых инсталляциях.
-
LDAP over SSL — защищенная версия протокола LDAP, которая использует технологию шифрования SSL/TLS при подключении к LDAP-серверу по порту 636.
-
LDAP StartTLS — защищенная версия протокола LDAP, при использовании которой сначала устанавливается незащищенное соединение по порту 389, а затем отправляется запрос на шифрование.
-
-
Порт — порт выбирается автоматически в зависимости от выбранного протокола. При необходимости параметр можно изменить.
-
-
Нажмите .
-
На вкладке Подтверждение информации проверьте:
-
информацию о LDAP-сервере;
-
соединение. При успешном соединении появится сообщение «Проверка соединения прошла успешна».
При необходимости вы можете вернуться на предыдущие шаги и изменить параметры.
-
-
Нажмите Сохранить.
Состояние синхронизации LDAP и системы смотрите в разделе Журнал событий.
Изменение настроек LDAP-каталога
Чтобы изменить настройки LDAP-каталога:
-
В левом меню выберите раздел Настройки.
-
Перейдите на вкладку LDAP-каталоги и наведите курсор на полное имя каталога.
-
Нажмите
. -
Активируйте/деактивируйте опцию LDAP используется, если необходимо включить/отключить LDAP-каталог.
-
При включенном LDAP измените параметры:
-
Полное имя каталога — отображаемое имя в списке LDAP-каталогов и при входе в систему.
-
Базовое уникальное имя. Например, для домена example.com: «DC=example,DC=com».
-
Имя пользователя — уникальное имя пользователя в LDAP-каталоге. Например, для домена example.com: «CN=termitsvc,CN=users,DC=example,DC=com».
-
Пароль — пароль от сервисной учетной записи.
-
Период синхронизации (мин.).
-
-
Нажмите Далее.
-
Чтобы задать атрибуты используемого LDAP-каталога, укажите:
-
Тип LDAP-каталога — тип: AD, FreeIPA или Другой.
Тип зависит от выбранной реализации LDAP:
-
Для Samba DC и Red ADM требуется выбрать тип каталога AD.
-
Для ALD Pro требуется выбрать тип каталога FreeIPA.
-
Для OpenLDAP и других реализаций LDAP-каталогов требуется выбрать тип Другой.
AD
-
Класс объекта «Пользователь» — user
-
Класс объекта «Группа» — group
-
Атрибут для идентификации объектов — objectGUID
-
Атрибут для получения отображаемого имени пользователя — cn
-
Атрибут для получения отображаемого имени группы — cn
-
Атрибут для поиска пользователя — samAccountName
-
Атрибут со списком членов групп — member
-
Атрибут, содержащий имя объекта, указанное для списка членов групп — distinguishedName
-
Атрибут для аутентификации на терминальном сервере Linux — samAccountName
-
Атрибут для аутентификации на терминальном сервере Windows — msDS-PrincipalName
-
Для чтения большого количества пользователей в группе включите опцию Поддержка range для получения членов группы.
FreeIPA
-
Класс объекта «Пользователь» — inetuser
-
Класс объекта «Группа» — ipausergroup
-
Атрибут для идентификации объектов — ipaUniqueID
-
Атрибут для получения отображаемого имени пользователя — cn
-
Атрибут для получения отображаемого имени группы — cn
-
Атрибут для поиска пользователя — uid
-
Атрибут со списком членов групп — member
-
Атрибут, содержащий имя объекта, указанное для списка членов групп — dn
-
Атрибут для аутентификации на терминальном сервере Linux — uid
-
Атрибут для аутентификации на терминальном сервере Windows — msDS-PrincipalName
-
Для чтения большого количества пользователей в группе включите опцию Поддержка range для получения членов группы.
Другой (для OpenLDAP)
-
Класс объекта «Пользователь» — posixAccount
-
Класс объекта «Группа» — posixGroup
-
Атрибут для идентификации объектов — entryUUID
-
Атрибут для получения отображаемого имени пользователя — cn
-
Атрибут для получения отображаемого имени группы — cn
-
Атрибут для поиска пользователя — uid
-
Атрибут со списком членов групп — memberUid
-
Атрибут, содержащий имя объекта, указанное для списка членов групп — uid
-
Атрибут для аутентификации на терминальном сервере Linux — uid
-
Атрибут для аутентификации на терминальном сервере Windows — msDS-PrincipalName
-
Выключите опцию Поддержка range для получения членов группы.
-
-
-
Нажмите Далее.
-
На вкладке Список LDAP-серверов:
Можно добавить адрес сервера LDAP
-
Нажмите
. -
Укажите:
-
Адрес — IP-адрес или FQDN LDAP-сервера, например «termit-example-01.com».
-
Протокол — выберите из списка:
Перед выбором протоколов LDAP over SSL и LDAP StartTLS добавьте доверенный сертификат.
-
LDAP — технология шифрования данных при подключении к LDAP-серверу не используется. Данные передаются в открытом виде по порту 389. Не рекомендуется использовать в продуктовых инсталляциях.
-
LDAP over SSL — защищенная версия протокола LDAP, которая использует технологию шифрования SSL/TLS при подключении к LDAP-серверу по порту 636.
-
LDAP StartTLS — защищенная версия протокола LDAP, при использовании которой сначала устанавливается незащищенное соединение по порту 389, а затем отправляется запрос на шифрование.
-
-
Порт — порт выбирается автоматически в зависимости от выбранного протокола. При необходимости параметр можно изменить.
-
-
Нажмите Сохранить.
Можно изменить адрес сервера LDAP
-
Наведите курсор на адрес сервера и нажмите
. -
Измените:
-
Адрес — IP-адрес или FQDN LDAP-сервера, например «termit-example-01.com».
-
Протокол — выберите из списка:
-
LDAP — технология шифрования данных при подключении к LDAP-серверу не используется. Данные передаются в открытом виде по порту 389. Не рекомендуется использовать в продуктовых инсталляциях.
-
LDAP over SSL — защищенная версия протокола LDAP, которая использует технологию шифрования SSL/TLS при подключении к LDAP-серверу по порту 636.
-
LDAP StartTLS — защищенная версия протокола LDAP, при использовании которой сначала устанавливается незащищенное соединение по порту 389, а затем отправляется запрос на шифрование.
-
-
Порт — порт выбирается автоматически в зависимости от выбранного протокола. При необходимости параметр можно изменить.
-
-
Нажмите Сохранить.
Можно удалить адрес сервера LDAP
-
Наведите курсор на адрес сервера и нажмите
. -
Чтобы подтвердить удаление, нажмите Да.
-
Удаление LDAP-каталога
Чтобы удалить LDAP-каталог:
-
В левом меню выберите раздел Настройки.
-
Перейдите на вкладку LDAP-каталоги и наведите курсор на полное имя каталога.
-
Нажмите
. -
Нажмите Да.
После удаления LDAP-каталога пользователи не смогут:
-
войти в портал администрирования;
-
подключиться к десктоп-клиенту;
-
запускать приложения в десктоп-клиенте.
Настройка Kerberos
Kerberos необходим для реализации функции единого входа (SSO), чтобы пользователи могли войти в десктоп-клиент или на портал администрирования и запускать приложения без ввода учетных данных.
Kerberos можно настроить отдельно для каждого каталога. Если он не настроен, будет использоваться аутентификация по имени пользователя и паролю.
Настройка Kerberos состоит из нескольких этапов.
|
Создание keytab-файла
AD
Чтобы сгенерировать keytab-файл, на контроллере домена:
-
Создайте сервисную учетную запись в домене, например
krb-trm. -
В свойствах учетной записи включите поддержу шифрования AES128 и AES256.
-
Сгенерируйте
keytab-файлс помощью команды:-
После символа @ доменное имя должно быть указано заглавными буквами.
-
Команда выполняется от имени администратора домена.
ktpass /out krb-trm.keytab /princ HTTP/broker.example.com@EXAMPLE.COM /pass * /mapuser krb-trm@EXAMPLE.COM /ptype KRB5_NT_PRINCIPAL /crypto AES256-SHA1Где:
-
krb-trm— имя сервисной учетной записи, созданной на шаге 1. -
krb-trm.keytab— целевой keytab-файл, сгенерированный на основе сервисной учетной записи krb-trm -
broker.example.com— FQDN брокера -
EXAMPLE.COM— доменное имя
-
Сгенерированный keytab-файл будет сохранен в текущей директории, из которой была выполнена команда, если не указан другой путь для вывода (например /out /path/to/directory/krb-trm.keytab). Далее полученный keytab-файл загрузите в настройках Kerberos.
FreeIPA/ALD Pro
Чтобы сгенерировать keytab-файл, на контроллере домена:
-
Создайте службу FreeIPA с именем брокера с помощью команды:
ipa service-add --force --skip-host-check HTTP/broker.termit.localГде:
-
ipa— утилита командной строки для работы с FreeIPA; -
service-add— команда для добавления нового сервиса в FreeIPA; -
--force— принудительное добавление сервиса в FreeIPA; -
--skip-host-check— пропуск проверки наличия хоста в IPA при добавлении сервиса; -
HTTP/broker.termit.local— имя сервиса в формате тип/хост, где:-
HTTP– тип сервиса (в данном случае - для веб-приложений); -
broker.termit.local— доменное имя.
-
-
-
Сгенерируйте
keytab-файлс помощью команды:ipa-getkeytab -p HTTP/broker.termit.local -k ~/krb_file.keytabГде:
-
ipa-getkeytab— утилита для получения (выгрузки)keytab-файлаиз FreeIPA; -
-p HTTP/broker.termit.local— указывает principal (учетную запись Kerberos) в формате тип/хост, где:-
HTTP– тип сервиса (для веб-приложений); -
broker.termit.local– имя хоста, для которого создаетсяkeytab-файл; -
-k ~/krb_file.keytab— путь к файлу, в который будет сохраненkeytab.
-
-
Далее полученный keytab-файл загрузите в настройках Kerberos.
Загрузка keytab-файла
Чтобы загрузить keytab-файл:
-
В левом меню выберите раздел Настройки.
-
Перейдите на вкладку LDAP-каталоги и наведите курсор на полное имя каталога.
-
Нажмите
. -
Чтобы включить использование Kerberos, активируйте опцию Включить.
-
Чтобы загрузить файл, нажмите на поле keytab-файл.
-
Нажмите Сохранить.
Keytab-файл загружен.
Настройка терминального сервера
Для работы аутентификации по Kerberos на терминальных серверах под управлением Linux, включая поддерживаемые операционные системы (РЕД ОС, Astra Linux, Debian, ALT Linux, OpenSUSE):
-
В файле конфигурации
sshd (/etc/ssh/sshd_config)в параметреGSSAPIAuthentication, укажите значение «yes».В ALT Linux файл конфигурации sshd находится по пути:
/etc/openssh/sshd_config. -
Перезагрузите sshd с помощью команды:
sudo systemctl restart sshd
Дополнительно для систем Astra Linux и ALT Linux
Для корректной обработки имён пользователей с заглавными буквами:
-
В файле
/etc/sssd/sssd.confукажите:case_sensitive = Preserving -
Перезагрузите sssd с помощью команды:
sudo systemctl restart sssdДля серверов под управлением Windows настройка не требуется, аутентификация по Kerberos осуществляется по умолчанию через протоколы Windows.
Настройка десктоп-клиента
Перед началом настройки проверьте, что десктоп-клиент и терминальный сервер введены в один домен.
-
Для использования Kerberos на клиентском устройстве с ОС Windows настройте систему. Для этого:
-
В разделе настройте политики «Разрешить передачу учетных данных, установленных по умолчанию» и «Разрешить передачу учетных данных, установленных по умолчанию, с проверкой подлинности сервера 'только NTLM'». Укажите в них SPN для терминальных серверов. Настройки должны выполняться администратором домена.
Например:
-
TERMSRV/terminal1.example.com — для включения Kerberos при доступе на сервер terminal1.example.com.
-
TERMSRV/*.example.com — для включения Kerberos при доступе ко всем серверам из домена example.com.
-
-
Добавьте адрес broker.example.com в доверенные сайты.
-
Включите опцию «Автоматический вход с текущим именем пользователя и паролем» в параметрах безопасности доверенных сайтов.
-
Перейдите в другой браузер, например Edge, и проверьте, что настройки применились.
После успешной настройки авторизация в СТД «Термит» будет выполнена без запроса ввода имени пользователя и пароля.
-
-
Для использования Kerberos на клиентском устройстве с ОС Linux настройте браузер. Ниже приведены инструкции по настройке для Google Chrome и Mozilla Firefox.
-
Для браузера Google Chrome:
-
Создайте в каталоге
/etc/chromium/policies/managed/файлmydomain.jsonс повышенными правами root, если он не был создан ранее, и добавьте в него параметры:{ "AuthServerAllowlist": "*.termit.local", "AuthNegotiateDelegateAllowlist": "*.termit.local" } -
Откройте в браузере Google Chrome страницу
chrome://policyи проверьте, что настройки применились.
После успешной настройки авторизация в СТД «Термит» будет выполнена без запроса ввода имени пользователя и пароля.
-
-
Для браузера Mozilla Firefox:
-
Откройте браузер Mozilla Firefox и перейдите на страницу конфигурации
about:config. -
Добавьте параметр .termit.local для опций:
-
network.negotiate-auth.trusted-uris;
-
network.automatic-ntlm-auth.trusted-uris;
-
network.negotiate-auth.delegation-uris;
-
-
Примените изменения и перезапустите браузер.
После успешной настройки авторизация в СТД «Термит» будет выполнена без запроса ввода имени пользователя и пароля.
При включенной аутентификации по Kerberos запрашивается пароль для открытия RDP-сессии с клиентской машины под управлением Linux.
-
-