Модули безопасности#
Модуль безопасности (Security Provider) — это именованный объект каталога, хранящий конфигурацию внешней системы аутентификации. Каталог поддерживает подключение нескольких модулей безопасности различных типов. После создания модуля его можно назначить пользователям каталога: при входе в систему их пароль будет проверяться во внешней системе.
Текущая версия поддерживает следующие типы модулей безопасности:
local — встроенный модуль, не требующий конфигурации. Пользователи аутентифицируются по паролю, хранящемуся в самом каталоге. Используется по умолчанию для всех новых пользователей.
ldap — аутентификация через внешний LDAP-сервер. См. Модуль безопасности LDAP.
Назначение модуля безопасности пользователю#
За выбор способа аутентификации пользователя отвечает параметр identified-with.
Он хранит имя модуля безопасности, которому будет делегирована проверка пароля при входе в систему.
По умолчанию все новые пользователи создаются с identified-with, ссылающимся на встроенный
модуль local, и аутентифицируются по паролю каталога.
Изменить модуль безопасности пользователя можно двумя способами:
Через веб-интерфейс: на экране редактирования пользователя в поле Способ аутентификации выберите нужный модуль безопасности из выпадающего списка.
Через CLI с помощью параметра
--new-identified-withкоманды principal update:# Перевести пользователя на аутентификацию через LDAP-провайдер catalog principal update --principal-name alice --new-identified-with ldap1 # Вернуть пользователя на локальную аутентификацию catalog principal update --principal-name alice --new-identified-with local
Управление через интерфейс пользователя#
Модули безопасности отображаются и редактируются в разделе Модули безопасности пользовательского интерфейса. Здесь можно создать новый модуль, выбрав его тип и заполнив параметры конфигурации, изменить существующий, а также проверить корректность конфигурации модуля (например, доступность сервера аутентификации).
Управление через CLI#
Для управления модулями безопасности из командной строки используйте группу команд security-provider:
security-provider create — создать модуль безопасности
security-provider update — изменить параметры модуля безопасности
security-provider delete — удалить модуль безопасности
security-provider check — проверить корректность конфигурации модуля безопасности
security-provider get — получить информацию о модуле безопасности
security-provider list — получить список модулей безопасности
Модуль безопасности LDAP#
Модуль безопасности LDAP позволяет выполнять аутентификацию пользователей каталога через внешний LDAP-сервер. При настроенном модуле безопасности пользователи входят в каталог с паролем, заданным в LDAP.
Описание workflow настройки и привязки пользователей приведено в разделе Аутентификация через LDAP.
Режимы поиска пользователя#
Модуль безопасности поддерживает два взаимоисключающих режима определения LDAP Distinguished Name (DN) пользователя.
Режим шаблона DN (user-dn-pattern)
Используется, когда имя пользователя в каталоге можно напрямую преобразовать в DN по фиксированному шаблону.
Шаблон задаётся через параметр user-dn-pattern и должен содержать заполнитель ${USER},
который при аутентификации заменяется именем пользователя каталога.
Можно задать несколько шаблонов, разделив их двоеточием; модуль безопасности последовательно перебирает их
до первого совпадения.
Пример: cn=${USER},ou=users,dc=example,dc=com
Режим поиска (user-search-base + user-search-filter)
Используется, когда DN пользователя нельзя вычислить по простому шаблону.
Модуль безопасности сначала выполняет поиск от имени сервисной учётной записи (bind-user-dn / bind-password),
находит DN пользователя, а затем проверяет пароль, выполняя bind от имени найденного пользователя.
Пример фильтра: (&(objectClass=inetOrgPerson)(uid=${USER}))
Примечание
В обоих режимах параметры bind-user-dn и bind-password обязательны, поскольку модуль безопасности
использует сервисную учётную запись для проверки существования пользователя в LDAP.
Параметры конфигурации#
Параметр |
Обязательный |
По умолчанию |
Описание |
|---|---|---|---|
|
Да |
— |
URL-адрес LDAP-сервера в формате |
|
Да |
— |
Distinguished Name сервисной учётной записи для подключения к LDAP. Пример: |
|
Да |
— |
Пароль сервисной учётной записи |
|
Да (режим шаблона DN) |
— |
Шаблон DN пользователя, должен содержать |
|
Да (режим поиска) |
— |
Базовый DN для поиска пользователя. Пример: |
|
Да (режим поиска) |
— |
Фильтр LDAP для поиска пользователя, должен содержать |
|
Нет |
|
Разрешает подключение к LDAP-серверу без использования TLS (только для |
|
Нет |
— |
Путь к truststore в формате PEM или JKS относительно |
|
Нет |
— |
Пароль для truststore |
|
Нет |
— |
Путь к keystore в формате PEM или JKS относительно |
|
Нет |
— |
Пароль для keystore |
|
Нет |
|
Игнорировать LDAP-перенаправления на другие серверы. Установите в |
|
Нет |
отсутствует |
Таймаут установления соединения с LDAP-сервером, в миллисекундах |
|
Нет |
отсутствует |
Таймаут чтения данных из LDAP-сервера, в миллисекундах |
|
Нет |
|
Время жизни кэша результатов аутентификации, в миллисекундах. Значение |
|
Нет |
|
Максимальное количество записей в кэше. Значение |
Примечание
Параметры user-dn-pattern и user-search-base/user-search-filter являются взаимоисключающими:
необходимо задать либо шаблон DN, либо параметры поиска, но не оба одновременно.