LDAP

Willemers Informatik-Ecke


Weitere Bücher des Autors:
C++ Der Einstieg
Python
Java
Coding for fun mit C++
2017-01-13
LDAP (Lightweight Directory Access Protocol) hat seinen häufigsten Einsatz, wenn Benutzer und Passwörter system- und anwendungsübergreifend verwaltet werden sollen.

Vorbereitungen

Ein LDAP-Server arbeitet für eine Netzwerk-Domain. Darum sollte der Host entsprechend vorbereitet sein. Der Domainname wird durch den Eintrag in der /etc/hosts definiert.
127.0.1.1     ldap.willemer.edu   ldap
Wenn der Hostname ldap sein soll, dann würde diese Zeile die Standarddomain als willemer.edu definieren. Für die weiteren Beispiele wird von dieser Situation ausgegangen.

Installation eines LDAP-Servers

Unter Debian heißt das Paket slapd. Für die Bearbeitung werden LDAP-Tools benötigt, die im Paket ldap-utils enthalten sind. Darum wird das Paket automatisch mitinstalliert.
apt-get install slapd
Es wird das neue Kennwort für den Administrator root erfragt, der unabhängig vom Administrator des Betriebssystems ist. Darüber hinaus werden auch die Domain noch einmal hinterfragt.

Für den Fall, dass hier noch einmal nachgearbeitet werden muss, empfielt sich der folgende Befehl:

dpkg-reconfigure slapd

Konfiguration

Im Verzeichnis /etc/ldap wird der LDAP-Client konfiguriert. Dieses Verzeichnis, das die Datei ldap.conf enthält, besitzt jeder Linux-Rechner, auch wenn er keinen LDAP-Server hat.

Für die Konfiguration des Servers wurde lange Zeit eine Datei /etc/ldap/slapd.conf verwendet. Stattdessen wird in neueren Installationen ein Verzeichnis /etc/ldap/slapd.d verwendet.

Der LDAP-Server kommt bereits vorkonfiguriert. Er verwendet die Domain des Hosts, wie sie in der Datei /etc/hosts für den Rechner 127.0.1.1 vorgegeben ist.

Daten einfügen

Zunächst wird eine Datei angelegt, die alle Daten enthält, die eingefügt werden sollen. Diese Dateien wird als LDIF-Dateien bezeichnet.
dn: ou=People,dc=willemer,dc=edu
objectClass: organizationalUnit
ou: People

dn: ou=Groups,dc=willemer,dc=edu
objectClass: organizationalUnit
ou: Groups

dn: cn=miners,ou=Groups,dc=willemer,dc=edu
objectClass: posixGroup
cn: miners
gidNumber: 5000

dn: uid=john,ou=People,dc=willemer,dc=edu
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: john
sn: Doe
givenName: John
cn: John Doe
displayName: John Doe
uidNumber: 10000
gidNumber: 5000
userPassword: johnldap
gecos: John Doe
loginShell: /bin/bash
homeDirectory: /home/john
Nachdem die Daten eingetragen wurden, können sie mit dem Befehl ldapadd eingefügt werden.
ldapadd -x -D cn=admin,dc=willemer,dc=edu -W -f add_content.ldif
Beim Starten des Befehls wird ein Passwort abgefragt. Dieses ist das Passwort des LDAP-Administrators, der bei der Einrichtung von slapd angegeben wurde.

Wird der Befehl fehlermeldungsfrei abgesetzt, sind die Daten übernommen worden. Wenn man das nicht nur glauben will, fragt man die Daten ab. Dazu dient der Befehl ldapsearch.

ldapsearch -x -LLL -b dc=willemer,dc=edu 'uid=john' displayName gidNumber homeDirectory
Es wird zunächst die Domain spezifiert und dann das Suchkriterium, hier der eindeutige Schlüssel, der sich durch die uid ergibt. Es folgen die Felder, die ausgegeben werden sollen. Das ist hier der Anzeigename, die Gruppennummer und der Pfad des Heimatverzeichnisses.

Tools

PHP-LDAP-Admin

Das Paket phpldapadmin stellt ein Web-Interface für einen LDAP-Server zur Verfügung.

LAT: LDAP Administration Tool

Das Paket lat stellt ein grafisches Tool zur Verfügung, mit dem man einen LDAP-Server auch remote warten kann. Es ist möglich, Elemente einzugeben oder die bestehenden Strukturen anzuschauen.

Das Programm wird in den Linux-Desktops unter der Rubrik Internet in das Programmmenü installiert.

Java LDAP Browser

Das Paket jxplorer stellt einen in Java Swing entwickelten LDAP-Explorer zur Verfügung, der Möglichkeiten zur Baumkopie anbietet.

Links


Homepage (C) Copyright 2017 Arnold Willemer