Open Source im professionellen Einsatz
Linux-Magazin 05/2001

OpenLDAP-Praxis

Straffe Verwaltung

Der Verzeichnisdienst Lightweight Directory Access Protocol bringt Struktur und Übersicht in den Wirrwarr der Server-Administration. Mit OpenLDAP und Linux kommt der Administrator sogar Lizenzkosten-neutral in diesen Genuss.

902

Das Thema einer einheitlichen zentralen Benutzerverwaltung beschäftigt die IT-Welt seit jeher und ist heute durch Entwicklungen wie Single Sign On und Public Key Infrastructures aktueller als je zuvor. Um eine einheitliche Benutzerverwaltung zu gewährleisten, nimmt der Administrator heutzutage NIS oder Yellow Pages.

Sind Ihre Anforderungen allerdings größer und Sie möchten gar Applikationen in ein zentrales Benutzerdaten-Konzept einbeziehen, dann hilft nur noch eine skalierbare Lösung weiter. Hierzu gehören Möglichkeiten für das Replizieren der Daten sowie zur Schaffung von verteilten Architekturen. LDAP (Lightweight Directory Access Protocol) bietet den Unterbau für solche Lösungen in seiner Rolle als zentraler Informationsdienst im Netzwerk.

LDAP ist in NDS (Novell Directory Services) und in Microsofts Active Directory integriert. Es ist ein offener Standard für einen Informationsdienst auf Basis einer baumähnlichen Datenbankstruktur. Gegenüber einer normalen Datenbank ist der Hauptvorteil die attributsbezogene Speicherung. LDAP ist aus X.500DAP entstanden, benutzt aber statt des OSI-Stacks den TCP/IP-Stack. Die Entwickler haben versucht den Datenaufbau im Vergleich zu X.500 zu vereinfachen, was sich beispielsweise in der Ablage von Daten im Klartext bemerkbar macht. Eine Ablage in dieser Form vereinfacht auch die Abfrage eines LDAP-Baums, da die Client-Seite nach einer Abfrage nicht mit umständlichen Encodings zurechtkommen muss.

LDAP schlägt die Brücke zu X.500 und minimiert zudem den Aufwand für Netzwerk und Netzwerksoftware (Clients). LDAP wurde in der Version 1 von der Universität Michigan ins Leben gerufen. Erst seit Version 2 besteht die Möglichkeit, LDAP im klassischen Client-Server-Modell zu benutzen, ohne dass Hauptlast auf die so genannten Clients verteilt wird. Mittlerweile liegt auch schon das Konzept für die Version 3 vor, deren Grundlagen im Wesentlichen bereits in die LDAP-Implementationen Einzug halten und Verbesserungen im Datenmodell mit sich bringen.

Datenaufbau

Im LDAP-Datenaufbau definiert eine Objektklasse eine Sammlung aus verschiedenen Attributen, die dazu benutzt werden können, einen Verzeichniseintrag zu beschreiben. Es existieren vordefinierte Objektklassen, die man für die Definition von Lokationen, Organisationen beziehungsweise Firmen, Personen oder Gruppen benutzen kann.

Mittels einer Objektklasse lässt sich ein Eintrag erzeugen. Ein typischer Eintrag in einen LDAP-Baum sieht etwa so aus:

cn=Volker Schwaberow, ou=IT, o=MyCompany, c=DE

Das wäre ein so genannter Distinguished Name (DN) beziehungsweise der eindeutige Name in einem LDAP-Baum (siehe Abbildung 1). Der Eintrag zeigt uns die Attribute cn, ou, o und c.

Auf den ersten Blick ist zu erkennen, dass das LDAP-Konzept hierarchisch aufgebaut ist. In Form des DN liest es sich von rechts nach links, vergleichbar mit dem Aufbau des Domain Name Service im Internet. Wie bereits erwähnt wird innerhalb eines DN mit Attributen gearbeitet. Oft gewählte Attribute im Standard-LDAP-Schema sind: Common Name (CN), Organizational Unit (OU), State (S) und Country (C).

Diese Attribute werden jeweils einer Objektklasse durch Definition zugeteilt. Häufig eingesetzte Objektklassen sind beispielsweise wieder Organization, organizationalUnit, Person, organizationalPerson und Country. Die definierten Objektklassen entscheiden darüber, was ein Eintrag enthalten kann. Der Eintrag einer Person in den LDAP-Baum kann zum Beispiel die Telefonnummer einer Person enthalten, ihren General Public Key oder nach Wunsch sogar ein JPEG-Bild, das von einem LDAP-Client dargestellt wird. Die Möglichkeiten sind schier unbegrenzt, sie hängen nur von der jeweiligen Anwendung ab und müssen, falls die Lösung der Anforderung nicht bereits in Form eines existierenden Attributs oder einer Klasse vorhanden ist, in das LDAP-Schema des Servers eingepflegt werden.

Benutzerdaten oder Organisationsdaten lassen sich über Textdateien im LDI-Format in dieses Schema einpflegen. LDIF (Lightweight Data Interchange Format) kann für sehr viele unterschiedliche Zwecke verwendet werden. Eintragungen vornehmen ist ein Beispiel, ein anderes der Export eines bestehenden LDAP-Baums in eine LDIF-Datei. Dank des LDI-Formats ist es leicht, LDAP-Daten zu bearbeiten. Eine nützliche Übersicht über LDIF gibt es bei [7]. Sie bezieht sich zwar auf den Directory Server von Netscape, man kann aber grundsätzliche Dinge ableiten.

Abb. 1: Der LDAP-Baum des Beispiels als Diagramm.

Nach den LDAP-Grundlagen aber nun zum Kern: OpenLDAP. Das Open-Source-Projekt ging vor einigen Jahren aus einem Server-Projekt der Universität Michigan [5] hervor. OpenLDAP besteht aus einem skalierbaren Server mit passenden LDAP-Clients und unterstützt seit Version 2 endlich auch die Protokolle der LDAP-(Konzept-)Version 3.

Installation von OpenLDAP

Nach dem Download der aktuellen Source-Distribution von [6] müssen noch einige Voraussetzungen erfüllt sein, bevor Sie kompilieren können. Hierzu gehört eine zur LDAP-eigenen LDBM kompatible Datenbank. LDBM-kompatibel sind zum Beispiel die Berkeley DB2 oder GDBM (GNU Data Base Manager). Übrigens kann OpenLDAP auch andere Back-Ends nutzen. Da alle Distributionen über eine von beiden oben genannten Datenbanken verfügen, sollte es keine großen Schwierigkeiten geben.

Somit können Sie auch gleich die Quellen entpacken:

tar xvfz openldap-stable-DATUM.tgz

Sie wechseln dazu in das Verzeichnis mit dem entpackten Source und führen

./configure -prefix=/usr/local/

aus. Hat das geklappt, folgen die Befehle:

make depend
make

Nachdem OpenLDAP kompiliert wurde, sollten Sie die Funktionalitätstests ausführen lassen. Hierzu wechseln Sie in das Directory tests unterhalb des Source-Baums und starten make.

Falls die Tests (Datenbank, Serverfunktionalität und so weiter) erfolgreich abgeschlossen sind, können Sie die OpenLDAP-Server und -Clients mit dem gewohnten Befehl

make install

installieren. Unter /usr/local liegt nun Folgendes: in libexec der slapd und der Replication Dämon slurpd sowie Gateways für X.500 (Fax, Mail und so weiter).

Unter bin liegen die OpenLDAP-Clients. Hier sind besonders diese drei Kommandos interessant:

Die Befehle funktionieren sowohl lokal als auch remote mit Zugriff auf einen entfernten LDAP-Server.

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Bäumchen repliziere dich

    Der baumartig organisierte Verzeichnisdienst OpenLDAP bildet das Rückgrat vieler Infrastrukturen. Wirft eine plötzliche Böe den LDAP-Server um, kann nur eine verteilte Struktur mit Slave-Servern die Katastrophe verhindern. Eine Anleitung.

  • LDAP-Replikation

    Replikation stellt sicher, dass der Verzeichnisdienst LDAP verfügbar ist. Seit Version 2.4 funktioniert sie auch dann, wenn ein Master ausfällt. Das Zauberwort heißt Multimaster-Replikation.

  • Zentrale Meldestelle

    Einen Account unter Linux, Windows und anderen Plattformen nutzen: Mit LDAP als Basis sowie NSS, PAM und Samba als Helfer gelingt die zentrale Benutzerverwaltung.

  • Sicherheitslücken in OpenLDAP

    Die Entwickler Toby Blake und Thomas Sesselmann haben je eine Sicherheitslücke in OpenLDAP aufgedeckt, die sich für Denial-of-Service-Angriffe ausnutzen lässt.

  • Verbindliche Auskünfte

    Mit einigen Konfigurationsarbeiten lassen sich Zope und der Verzeichnisdienst LDAP verbinden. Ab sofort benutzt und verwaltet der Applicationserver nicht mehr seine eigene Userdatenbank, sondern die zentrale von LDAP - der anfallende Pflegeaufwand sinkt.

comments powered by Disqus

Ausgabe 01/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.