C2. Autenticazione se si usa LDAP

Le impostazioni sono riportate nel file di configurazione auth-ldap.conf.

I tag principali del file di configurazione sono:

<enabled/> e <order/> — sono analoghi alla variante per Active Directory.

<server/> imposta l'indirizzo del server LDAP. È possibile specificare più tag <server/> con gli indirizzi di server LDAP diversi, di conseguenza, verrà creata una lista di server su cui può essere eseguita l'autenticazione. Per primo deve essere indicato l'indirizzo del server principale su cui è previsto il carico massimo, dopo cui possono essere indicati gli indirizzi dei server di riserva. Alla connessione dell'amministratore, viene utilizzato il primo server LDAP disponibile. In caso di errore, verrà effettuato un tentativo di autenticazione sul server successivo e così via nell'ordine in cui gli indirizzi dei server LDAP sono specificati nel file di configurazione.

<user-dn/> determina le regole di traduzione dei nomi in DN con l'impiego di maschere analoghe a maschere DOS.

Nel tag <user-dn/> è ammesso l'utilizzo dei caratteri jolly:

* sostituisce una sequenza di caratteri ad eccezione di . , = @ \ e di spazi;

# sostituisce una sequenza di caratteri.

<user-dn-expr/> determina le regole di traduzione dei nomi in DN con l'impiego di espressioni regolari.

Per esempio, questa è la stessa regola in diverse varianti:

<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 determina il posto per mettere nel pattern i valori *, # o espressioni tra parentesi.

Secondo questo principio: se il nome utente è scritto come login@example.com, in seguito alla traduzione risulta il DN: "CN=login,DC=example,DC=com".

<user-dn-extension-enabled/> consente l'esecuzione dello script Lua ldap_user_dn_translate.ds (dalla directory extensions) per tradurre il nome utente in DN. Questo script viene eseguito dopo i tentativi di utilizzo di tutte le regole user-dn, user-dn-expr in caso se non è stata trovata nessuna regola appropriata. Lo script ha un singolo parametro — il nome utente immesso. Lo script restituisce una stringa che contiene DN o nulla. In caso se non è stata trovata nessuna regola appropriata e lo script non è abilitato oppure non ha restituito niente, il nome utente immesso viene usato così com'è.

L'attributo dell'oggetto LDAP per il DN ottenuto come risultato di traduzione e i suoi possibili valori possono essere ridefiniti dal seguente tag (sono indicati i valori di default):

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

Come valori di parametri true-value/false-value vengono impostate espressioni regolari.

Se sono rimasti valori non definiti dell'attributo amministratore, nel caso in cui nel file di configurazione viene impostato il tag <group-reference-attribute-name value="memberOf"/>, il valore dell'attributo memberOf viene considerato come una lista di gruppi DN in cui rientra questo amministratore, e la ricerca degli attributi richiesti in questi gruppi viene eseguita allo stesso modo del caso di uso di Active Directory.