LDAP unter Mac OS X 10.5 Leopard (Client)

LDAP ist ein Verzeichnisdienst, der vielfältige Einsatzmöglichkeiten bietet. Generell sollte LDAP beim Thema Identitätsmanagement ganz oben auf der Liste der einzusetzenden Technologien stehen, wenn man ein neues System aufsetzen möchte. Besonders, wenn einheitliche Passwörter und Nutzerdaten im Netzwerk zum Einsatz kommen sollen, ist LDAPdie Wunderwaffe. Selbst das Active Directory, welches Windowsbenutzer zur Authentifizierung kennen, ist “nur” ein LDAP.

LDAP in OS X 10.5 Client

LDAP unter Mac OS X 10.5.x ist nicht sonderlich kompliziert, aber gut versteckt. Zwar existiert ein OpenLDAP-Server unter OS X, aber dieser startet nicht standardmäßig beim Systemstart mit. Die einfachste Möglichkeit LDAP unter OS X.5 (Client, nicht Server) zu aktivieren ist LDAP Enabler for Leopard. Allerdings kann es hierbei zu Problemen kommen, die letztlich nur mit Handarbeit zu lösen sind.

Manuelle Konfiguration des slapd unter OS X 10.5 Client

Manuell lässt sich der in OS X.5 enthaltene slapd ebenfalls verhältnismäßig leicht konfigurieren und starten.

Der erste Schritt ist das Setzen des Root-Passworts für slapd bzw. den LDAP-Server:

$ sudo slappasswd
Password: MySudoPassword
New password: newldaprootpassword
Re-enter new password: newldaprootpassword
{SSHA}rlYHUT5vSc2iBj51HzGat0oAc0pGa5/5

Jetzt wird die Konfiguration des LDAP-Server angepasst:

$ sudo cp /etc/openldap/slapd.conf.default /etc/openldap/slapd.conf
$ sudo vi /etc/openldap/slapd.conf

Die Datei beinhaltet neben einigen include-Anweisungen auch die Logindaten für den Root-Account zur LDAP-Verwaltung. Hier wird der im ersten Schritt erzeugte Hash notwendig. Der entsprechende Teil der Datei /etc/openldap/slapd.conf sieht auf meinem Rechner (Rechnername imac.local) so aus:

suffix "dc=imac,dc=local"
rootdn "cn=root,dc=imac,dc=local"
rootpw {SSHA}ZaKCjx6ZtEXdDd7NsAKBn9avxFT7l6uK

Da ich gerne, wenn ich als priviligierter Admin unterwegs bin, dies auch sehen möchte, nenne ich den Root-Account entsprechend auch root.

Exkurs SSL-Zertifikate

In Leopard kam ein neues Sicherheitsfeature hinzu, welches sich in /etc/openldap/ldap.conf erkennen läßt:

TLS_REQCERT always

Verbindungen werden also nur dann zugelassen, wenn sie auch ein entsprechendes SSL-Zertifikat vorweisen können. Der einfache Weg, dies zu umgehen, wäre always durch never zu ersetzen. Der bessere Weg ist, ein SSL-Zertifikat einzubinden. Erzeugt wird dies zum Beispiel mittels der Anwendung Schlüsselbund. Eine einfache Step-by-Step-Erklärung zeigt /dev/klog.

Datenbank für slapd

Um den Server starten zu können, muss ein Verzeichnis namens /var/db/openldap/openldap-data/ existieren. Falls es dieses nicht gibt, muss man es gegebenenfalls anlegen. Unter OS X 10.5.6 scheint es das Verzeichnis jedoch bereits zu geben:

$ ls -l /var/db/openldap/
total 0
drwxr-xr-x 3 root wheel 102 10 Okt 2007 openldap-data
drwxr-xr-x 2 root wheel 68 10 Okt 2007 openldap-slurp
drwxr-xr-x 2 root wheel 68 10 Okt 2007 run

Startup-Item für launchd

org.openldap.slapd.xml wird benötigt, um diese mittels launchd nutzen zu können. launchd ist in OS X 10.5 quasi das neue und verbesserte StartupItems oder /etc/hostconfig. Die Datei muss heruntergeladen werden und nach /Library/LaunchDaemons/org.openldap.slapd.xml kopiert werden.

Start des LDAP-Servers:

$ sudo launchctl load /Library/LaunchDaemons/org.openldap.slapd.xml

Test, ob der Service läuft:

$ sudo launchctl list | grep ‘slapd’
Password:
38540 – org.openldap.slapd

Stoppen des Service

$ sudo launchctl unload /Library/LaunchDaemons/org.openldap.slapd.xml

Test der Installation

Es reicht nicht, dass der LDAP-Server läuft, er soll auch zeigen, dass man sich mit ihm verbinden kann. Dies geht zum Beispiel über folgende Suche:

$ ldapsearch -x -b ‘’ -s base ‘(objectclass=*)’ namingContexts

Die nächsten Schritte sind jetzt das Anlegen der (Firmen-)Struktur. via *.ldif-Dateien und ldapadd lassen sich Benutzer/Knoten in das System einbringen.

Author image
Blogging since 2003 about life, tech, yoga. Passionate about the details and eager to know more. Systems theory meets empathy.
Bochum. Germany.
top