Bei der Meldebehörde

In größeren Organisationen ist es sinnvoll, die Informationen des Verzeichnisdienstes LDAP auf mehrere Server zu verteilen und ihn auch für die Authorisierung der Anwender zu verwenden. Wie das geschieht, erläutert der zweite Teil des Tutorials.

vorlesen Druckansicht 7 Kommentare lesen
Lesezeit: 4 Min.
Von
  • Daniel Amthor
  • Thilo Rößler

Nachdem sich die L.d.a.P. GmbH entschlossen hat, durch den Einsatz eines OpenLDAP-Server Ordnung und Einfachheit in die unternehmensinternen Daten und die Authentifizierungsprozesse zu bringen, müssen sich Mitarbeiter und Administratoren mit den grundlegenden Techniken zur Nutzung der Daten im Verzeichnisdienst vertraut machen. Insbesondere gilt es, sich die Möglichkeiten der Suche im Datenbestand genauer zu erschließen.

Wie im ersten Teil des Tutorials gezeigt, stellt das Kommandozeilen-Tool ldapsearch das grundlegende Werkzeug dar, um aus dem LDAP-Server Daten zu extrahieren. In einer einfachen Variante wie

ldapsearch -x -b “dc=ldap-gmbh,dc=de”  -LLL -h 192.168.1.1

Alle Informationen zur Buchhaltung stellt ein eigener LDAP-Server bereit. Der firmenweite kennt lediglich einen Verweis auf ihn (Abb. 1).

liefert es jedoch den kompletten Directory Information Tree (DIT) als Ausgabe. Prinzipiell lieĂźe sie sich zwar in einem Text-Editor durchsuchen, dies ist jedoch alles andere als komfortabel.

Um die Menge der aufgespürten Einträge zu begrenzen, lässt sich der zu durchsuchende Bereich eingrenzen. Das bewerkstelligt ein durch -s festgelegter „Scope“ mit einem von drei Werten:

  • base: nur den mit -b angegebenen BaseDN durchsuchen
  • one: nur eine Ebene unterhalb des BaseDN suchen
  • sub: den kompletten Teilbaum unterhalb des BaseDN durchsuchen

Ist kein Scope angegeben, gilt sub. Zur sinnvollen Anwendung dieser Eingrenzung ist immer die genaue Kenntnis der zugrundeliegenden Baumstruktur notwendig. Nur wer sie besitzt, kann wissen, dass beispielsweise

ldapsearch -x -s one -b “dc=ldap-gmbh,dc=de”   -LLL -h 192.168.1.1

Informationen über alle Abteilungen der L.d.a.P. GmbH liefert. Sinnvoller ist jedoch das Suchen nach einzelnen Objekten im Baum anhand von Attributwerten, wobei die Struktur des Baums keine Rolle spielt. Dazu dienen so genannte Suchfilter. Ein einfacher Filter wäre beispielsweise (cn=Karl Kobs):

ldapsearch -x -s one -b “dc=ldap-gmbh,dc=de”  -LLL -h 192.168.1.1 “(cn=Karl Kobs)”

Dieser Befehl zeigt jedes Objekt im Baum, das den Common Name „Karl Kobs“ besitzt. Wegen der besonderen Bedeutung von Klammern in der Shell muss man Suchfilter prinzipiell in doppelte oder einfache Anführungszeichen setzen, letztere sind spätestens beim Einsatz von Wildcards unumgänglich. Wer mit (cn=Karl*) jede Person im Unternehmen finden will, deren Vorname „Karl“ lautet, sollte den Suchfilter in einfache Anführungszeichen einschließen, um eine Expansion zu verhindern.

Zur weiteren Verfeinerung besteht die Möglichkeit, mehrere Suchfilter durch Und- und Oder-Bedingungen zu verknüpfen: (|(cn=Karl*)(employeeNumber=1234)) findet beispielsweise jedes Objekt im Baum, dessen cn-Attribut mit Karl beginnt oder das die Mitarbeiternummer 1234 hat.

Analog findet (&(cn=Karl*)(employeeNumber=1234)) nur Objekte, für die beide Bedingungen gleichzeitig gelten. ! negiert den Filter: (!(cn=Karl*)) findet also alle Mitarbeiter, die nicht „Karl“ heißen. Suchfilter lassen sich prinzipiell beliebig verschachteln, wobei darauf zu achten ist, dass ein Klammerpaar die zu verkettenden Filter umschließt und dass der Verkettungsoperator das erste Zeichen nach der öffnenden Klammer ist.

Ob der Server zum Beispiel Groß- und Kleinschreibung beim Suchen unterscheidet, legt die Definition des jeweiligen Attributs fest. Möglichst genaue Kriterien verbessern die Performance von Suchoperationen. Eine Hilfe bietet unter anderem das Festlegen der Attribute, für die der Server einen Index erstellt. In vielen Default-Konfigurationsdateien (slapd.conf) findet sich dafür folgende Zeile:

index   objectClass eq

Sie bedeutet, dass der Server für die Objektklassen einen Index auf Gleichheit (equality) pflegt. Suchen Anwender in einem Baum häufig auf Basis des Common Name (cn), bietet es sich an, per index cn eq auch einen Index über das cn-Feld erstellen zu lassen. Nebst dem Indizieren auf Gleichheit gibt es pres (Presence, das bloße Vorhandensein des Attributs), sub (Indizierung für Substring-Suchen) und approx (approximate, ungefähre Gleichheit). Als Spezialfall besteht mit none die Möglichkeit, ein Attribut von der Indizierung explizit auszuschließen.

Nach dem Eintragen neu zu indizierender Attribute muss der Datenbankindex neu erstellt werden. Dies lässt sich durch einen Neustart des Servers oder auch durch den Einsatz des Tools slapindex bewerkstelligen.

Wie man Daten auf mehrere Server verteilt und LDAP zur Authentifizierung von Unix-Clients nutzt, erfahren Sie in der aktuellen Print-Ausgabe.

Teil 1: LDAP-Grundlagen, Directory Information Tree, Datenimport, Kommandozeilen-Werkzeuge

Teil 3: Replikation von Daten, Samba-Anbindung, Logging und Fehlersuche, Sicherheit (ck)