C2. Authentifizierung über LDAP

Die Einstellungen werden in der Konfigurationsdatei auth-ldap.conf gespeichert.

Die wichtigsten Tags der Konfigurationsdatei:

<enabled/> und <order/> sind identisch mit den oben beschriebenen Active Directory-Einstellungen.

<server/> legt die Adresse des LDAP-Servers fest. Mehrere Tags <server/> mit den Adressen unterschiedlicher LDAP-Server können gleichzeitig angegeben werden. In diesem Fall wird eine Liste der Server angelegt, auf denen die Authentifizierung möglich ist. Als erste in die Liste sollte die Adresse des zuverlässigsten Servers (Hauptservers) eingetragen werden, der am stärksten belastet werden soll. Nach dieser Adresse sollten die Adressen der Backup-Server stehen. Wenn der Administrator eine Verbindung herstellt, wird der erste der verfügbaren LDAP-Server verwendet. Wenn der erste Server nicht erreichbar ist, wird versucht, den nächsten alternativen Server anzusprechen: Die LDAP-Server werden also in der in der Konfigurationsdatei angegebenen Reihenfolge ausprobiert.

<user-dn/> definiert die Regeln für die Übersetzung von Namen in DN (Distinguished Name) mithilfe von DOS-artigen Masken.

Im Tag <user-dn/> können einige Platzhalterzeichen verwendet werden:

* ersetzt eine Folge beliebiger Zeichen außer . , = @ \ und Leerzeichen.

# ersetzt eine Folge beliebiger Zeichen.

<user-dn-expr/> definiert die Regeln für die Übersetzung von Namen in DN mithilfe von regulären Ausdrücken.

So sieht eine gleiche Regel in unterschiedlichen Varianten aus:

<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 definieren, an welcher Stelle in der Vorlage die Werte *, # oder Ausdrücke in Klammern ersetzt werden sollen.

Wenn die Zeichenkette login@example.com als Benutzername angegeben wurde, so sieht der DN nach der Übersetzung wie folgt aus: "CN=login,DC=example,DC=com".

<user-dn-extension-enabled/> erlaubt die Ausführung des Lua-Skripts ldap-user-dn-translate.ds (aus dem Verzeichnis extensions) zur Übersetzung des Benutzernamens in DN. Dieses Skript wird erst dann ausgeführt, wenn keine passende Regel in den Regeln user-dn und user-dn-expr gefunden wird. Das Skript hat nur einen Parameter, und zwar den angegebenen Benutzernamen. Das Skript gibt einen String zurück, der einen DN oder nichts enthält. Wenn keine Regel gefunden wird oder das Skript deaktiviert ist oder nichts zurückgegeben hat, wird der angegebene Benutzername verwendet.

Das Attribut eines LDAP-Objekts für den konvertierten DN und dessen mögliche Werte können durch das folgende Tag neu definiert werden (angegeben sind jeweils die Standardwerte):

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

Als Werte der Parameter true-value/false-value müssen reguläre Ausdrücke festgelegt werden.

Wenn einige Werte der Administrator-Attribute nicht definiert sind und das Tag <group-reference-attribute-name value="memberOf"/> in der Konfigurationsdatei festgelegt ist, gilt der Wert des Attributs memberOf als Liste von DN-Gruppen, denen der Administrator angehört. Die Suche nach erforderlichen Attributen in diesen Gruppen erfolgt ebenso wie die Suche bei der Verwendung von Active Directory.