C2. Autenticación mediante LDAP

La configuración se proporciona en el archivo de configuración auth-ldap.conf.

Los tags principales del archivo de configuración:

<enabled/> y <order/> — similar a la opción para Active Directory.

<server/> especifica la dirección del servidor LDAP. Se permiten varios tags <server/> con las direcciones de diferentes servidores LDAP, lo que creará una lista de servidores en los que puede autenticarse. El primero debe indicar la dirección del servidor principal, en el que se supone la carga principal, después de lo cual puede especificar las direcciones de los servidores de respaldo. Cuando un administrador se conecta, se utiliza el primer servidor LDAP disponible. En caso de falla, se intentará autenticar en el siguiente servidor y luego en el orden en el que se especifican las direcciones de los servidores LDAP en el archivo de configuración.

<user-dn/> define las reglas para traducir los nombres a DN utilizando máscaras tipo DOS.

En el tag <user-dn/> se permite el uso de caracteres de sustitución:

* reemplaza la secuencia de cualesquiera caracteres excepto . , = @ \ y espacios;

# reemplaza la secuencia de cualesquiera caracteres.

<user-dn-expr/> define reglas para traducir los nombres a DN utilizando las expresiones regulares.

Por ejemplo, la misma regla de diferentes maneras:

<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 determinar el lugar de sustitución en la plantilla de valores *, # o expresiones entre paréntesis.

Basado en este principio: si el nombre de usuario se especifica como login@example.com, luego después de la traducción será DN: "CN=login,DC=example,DC=com".

<user-dn-extension-enabled/> permite la ejecución de un script Lua ldap_user_dn_translate.ds (del directorio extensions) traducir el nombre de usuario en DN. Este script se ejecuta después de intentos de aplicar todas las reglas. user-dn, user-dn-expr en caso de que no se encuentre una regla coincidente. El script tiene un parámetro: el nombre de usuario ingresado. El script devuelve una cadena que contiene un DN o nada. En caso de que no coincida ninguna regla, y el script no está permitido o no devuelve nada, entonces el nombre de usuario ingresado se usa tal cual.

El atributo de objeto LDAP para el DN traducido y sus posibles valores se pueden anular con la siguiente etiqueta (se especifican los valores predeterminados):

<!-- 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$"/>

Como valores de parámetros true-value/false-value se especifican expresiones regulares.

Si hay valores indefinidos del atributo de admninistrador, en el archivo de configuración se establece el tag <group-reference-attribute-name value="memberOf"/>, el valor de atributo memberOf se considera como una lista de DN de los grupos a los que pertenece este administrador, y la búsqueda de los atributos requeridos en estos grupos se realiza de la misma forma que en el caso de utilizar Active Directory.