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

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

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

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

<server/> задает адрес 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.