В2. Аутентификация при использовании LDAP

Настройки приводятся в файле конфигурации auth-ldap.conf.

Основные теги конфигурационного файла:

<enabled/> и <order/> — аналогично варианту для Active Directory.

<server/> задает адрес LDAP-сервера. Допускается указание нескольких тегов <server/> с адресами разных LDAP-серверов, в результате чего будет создан список серверов, на которых можно выполнить аутентификацию. Первым следует указывать адрес главного сервера, на который предполагается основная нагрузка, после которого можно указать адреса резервных серверов. При подключении администратора используется первый доступный LDAP-сервер. В случае неудачи будет предпринята попытка аутентификации на следующем сервере и далее по порядку в той последовательности, в которой адреса LDAP-серверов указаны в файле конфигурации.

<user-dn/> определяет правила трансляции имен в DN с использованием DOS-подобных масок.

В теге <user-dn/> допускается использование символов подстановки:

* заменяет последовательность любых символов кроме . , = @ \ и пробелов;

# заменяет последовательность любых символов.

<user-dn-expr/> определяет правила трансляции имен в DN с использованием регулярных выражений.

Например, одно и то же правило в разных вариантах:

<user-dn user="*@example.com" dn="CN=\1,DC=example,DC=com"/>
<user-dn-expr user="(.*)@example.com" dn="CN=\1,DC=example,DC=com"/>

\1 .. \9 определяют место подстановки в шаблоне значений *, # или выражений в скобках.

Исходя из данного принципа: если указано имя пользователя в виде login@example.com, то после трансляции получится DN: "CN=login,DC=example,DC=com".

<user-dn-extension-enabled/> разрешает выполнение Lua-скрипта ldap_user_dn_translate.ds (из каталога extensions) для выполнения трансляции имени пользователя в DN. Данный скрипт выполняется после попыток применения всех правил user-dn, user-dn-expr в случае, если не найдено ни одно подходящее правило. У скрипта один параметр — введенное имя пользователя. Скрипт возвращает строку, содержащую либо DN, либо ничего. В случае, если не подошло ни одно правило, и скрипт не разрешен или не вернул ничего, то введенное имя пользователя используется как есть.

Атрибут LDAP-объекта для DN, полученного в результате трансляции, и его возможные значения могут быть переопределены следующим тегом (указаны значения по умолчанию):

<!-- DrWebAdmin attribute equivalent (OID 1.3.6.1.4.1.29690.1.3.1) -->
<admin-attribute-name value="DrWebAdmin" true-value="^TRUE$" false-value="^FALSE$"/>

В качестве значений параметров true-value/false-value задаются регулярные выражения.

Если остались неопределенные значения атрибута администратора, то в случае задания в конфигурационном файле тега <group-reference-attribute-name value="memberOf"/>, значение атрибута memberOf рассматривается как список DN групп, в которые входит данный администратор, и поиск нужных атрибутов по этим группам ведется также, как в случае с использованием Active Directory.