Adressbuch in einem LDAP-Server speichern
Vorwort
Bei einem Adressbuch unterscheidet man zwei Varianten. Die erste ist das globale Adressbuch, wo der Nutzer ein öffentliches Adressbuch durchsuchen, aber nicht ändern kann. Dieses Adressbuch kommt meistens in großen Firmen vor, wo man die E-Mail- und Post- Adressen von allen Mitarbeitern speichert.
Die Zweite ist das private Adressbuch, wo der Nutzer seine Privaten Adressen
hinzufügen, löschen und ändern kann.
Zu beachten ist die Rechtevergabe bei den beiden Adressbüchern. Das Globale
Adressbuch sollte für alle Nutzer, die sich am LDAP Server angemeldet
haben, verfügbar sein, und das Private darf nur für den jeweiligen Nutzer verfügbar
sein.
Voraussetzungen
Man benötigt einen funktionierenden LDAP Server, wo schon ein paar Nutzer eingetragen sind und sich anmelden können. Möchte man nur ein globales Adressbuch nutzen, dann benötigt man die Anmeldung am LDAP Server nicht.
Einrichten des Servers - Globales Adressbuch
Je nach Linux Distribution findet man im /etc Verzeichnis einen Ordner ldap oder slapd. In diesem Ordner sollte eine slapd.conf zu finden sein. Ist dies nicht der Fall, kann man mit dem Befehl
>> find / -name ''*ldap.conf''danach suchen.
Folgende include Zeilen sollten in dieser Datei enthalten sein.
| /etc/ldap/slapd.conf |
include /etc/ldap/schema/core.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/nis.schema include /etc/ldap/schema/inetorgperson.schema |
Jetzt benötigt man nur noch einen geeigneten Ordner, wo alle Adressen gespeichert werden können. Am besten man fügt einen eigenen Ordner im Root hinzu. Man kann sich dazu eine Datei erstellen, die man später dem LDAP Server hinzufügt. Die folgende Datei erstellt einen Ordner im Root und fügt einen User hinzu.
| /etc/ldap/global.ldif |
dn: ou=global-addressbook objectclass: organizationalUnit dn: cn=alburg,ou=global-addressbook cn: alburg sn: marcel mail: no-spam@spam.de departmentNumber: pr14 preferredLanguage: german homePhone: 01231234567 homePostalAddress: hauptstrasse 1 roomNumber: 301 mobile: 0170 1234567 |
Nach dem Abspeichern der Datei kann man diese Daten dem LDAP Server mit dem Befehl
>> ldapadd -x -D ''[root-dn]'' -W -f global.ldifund nach Eingabe des LDAP Root Passwortes hinzufügen.
Das war es eigentlich auch schon. Wer kein privates Adressbuch benötigt, kann dann dan nächsten Punkt überspringen und bei den Einrichtung der Clients weiterlesen.
Einrichten des Servers - Privates Adressbuch
Ein privates Adressbuch sollte von keinen anderen Nutzer gesehen werden, und deshalb ist der Aufwand bei dem Server etwas höher.
Nehmen wir mal an, dass man folgende Struktur im LDAP hat:
+ dc=root + ou=user | - uid=alburg + ou=groups | - cn=users + global-addessbook | - cn=alburgDann kann man unter dem User alburg noch einen Ordner anlegen, wo er dann seine privaten Adressen hinzufügen kann.
Dazu legt man sich eine Datei an, die man später dem LDAP Server hinzufügt.
| /etc/ldap/private.ldif |
dn: ou=private-addressbook,uid=alburg,ou=user,dc=root objectclass: organizationalUnit dn: cn=alburg2,ou=private-addressbook,uid=alburg,ou=user,dc=root cn: alburg2 sn: marcel mail: no-spam@spam.de departmentNumber: pr14 preferredLanguage: german homePhone: 01231234567 homePostalAddress: hauptstrasse 1 roomNumber: 301 mobile: 0170 1234567 |
Nach dem Abspeichern der Datei kann man diese Daten den LDAP Server mit dem Befehl
>> ldapadd -x -D ''[root-dn]'' -W -f private.ldifund nach Eingabe des LDAP Root Passwortes hinzufügen.
Die Baumstruktur sollte dann folgendermaßen aussehen:
+ dc=root + ou=user | - uid=alburg | + ou=private-addressbook | - cn=alburg2 + ou=groups | - cn=users + global-addessbook | - cn=alburgDamit ein User nicht in den Ordner eines anderen User schauen und die privaten Adressen auslesen kann, sollte man so etwas verhindern.
In einigen Fällen nutzen Personen den LDAP Server nicht nur als Adressserver, sondern auch als Anmelde- oder Userserver. Dabei kann es zu einem Problem führen, dass das Attribut mail in dem einen Ordner beschreibbar sein muss und in dem anderen Ordner darf es nur zum Lesen freigegeben werden.
Zum Beispiel:
In dem Ordner uid=alburg,ou=user,dc=root muss das Attribut
mail nur zum lesen sein, denn sonst könnte der User selbst seine
E-Mail Adresse verändern. Wobei hingegen in dem Ordner
*.ou=private-addressbook,uid=alburg,ou=user,dc=root das Attribut
mail für die Mail-Adresse des Adressbuches zuständig ist, und deshalb
benötigt der User darauf Schreibrechte.
Dazu fügt man in der slapd.conf Datei folgende Zeilen hinzu:
| /etc/ldap/slapd.conf |
# hinzufügen der Schreibrechte im Privaten Adressbuch auf das Attribut Mail
access to dn=".*,o=private-addressbook,uid=(.*),ou=user,dc=root" attr=mail
by dn="uid=$1,ou=user,dc=root" write
by dn="cn=manager,dc=alkronet,dc=de" write
by * none
# Setzen der Leserechte auf das Attribut im UserOrdner
access to dn="uid=(.*),ou=user,dc=root" attr=mail
by dn="uid=$1,ou=user,dc=root" read
by dn="cn=manager,dc=alkronet,dc=de" write
by * none
# Damit der User auch in diese Ordnerebene reinschauen kann, muss man ihm
# diese Rechte auch noch geben
access to dn="uid=(.*),ou=user,dc=root"
by dn="uid=$1,ou=user,dc=root" write
by dn="uid=admin,ou=auth_user,o=webmail,dc=alkronet,dc=de" read
by anonymous auth
by * none
access to dn="ou=user,dc=alkronet,dc=de"
by dn="cn=manager,dc=alkronet,dc=de" write
by anonymous auth
by * read
# Evolution hat sich etwas zickig verhalten, wenn diese Zeilen nicht mit
# drin stehen, denn dann kann man keine neuen Kontakte hinzufügen
# ACHTUNG: Diese Zeilen sollten ganz am Ende stehen, da sonst andere Access-
# listen ausgehebelt werden könnten
access to attr=objectClass
by anonymous auth
by * search
access to attr=entry,subschemaSubentry,objectClasses
by anonymous auth
by * read
|
Nach einem Neustart des LDAP Servers sollten die Rechte vergeben sein, und man kann mit einem Client auf das Adressbuch zugreifen.
Einrichten der Clients
- Einrichten von Outlook Express
Das Einrichten eines LDAP Adressbuches in Outlook Express gestaltet sich relativ einfach.
Nach dem Öffnen von Outlook drückt man oben auf den Button Adressbuch.
Outlook Express EinrichtungDanach drückt man auf Extras -> Konten und fügt ein Verzeichnisdienstkonto hinzu.
Je nachdem, ob man sich am LDAP Server anmelden muss oder nicht, muss das Häkchen bei "Anmeldung am LDAP Server erforderlich" angeklickt sein.
Hat man alle Felder ausgefüllt, könnte es zum Beispiel wie folgt aussehen.
Allgemeine Einstellungen in Outlook
Spezielle Einstellungen in OutlookDanach sollte das Adressbuch schon funktionieren. Dies kann man testen, indem man auf Suchen drückt und einen Namen eingibt, der in dem Adressbuch gespeichert ist.

Suchen in OutlookFunktioniert es nicht, kann es sein, dass die Suchbasis oder die Anmeldebasis falsch ist.
Leider kann Outlook Express keine neuen Adressen in das LDAP Adressbuch hinzufügen, so dass man notgedrungen neue Adressen per Hand hinzufügen muss. - Einrichten von Mozilla Mail
Bei Mozilla ist die Einrichtung fast genau so wie bei Outlook Express, nur das die Wege zur Konfiguration anders sind.
Nachdem man in Mozilla (Mail, Composer oder Browser) drin ist, geht man auf Window->Address Book oder drückt Ctrl + 5. Danach befindet man sich im Adressbuch von Mozilla.Nach Drücken auf Edit -> Preferences gelangt man in das Menü Einstellungen. Dort geht man in die Kategorie Mail & Newsgroups -> Addressing, und bei Directory Server fügt man einen neuen Server hinzu.

Einstellungen in Mozilla Adressbuch
Danach kann man die Konfiguration testen, indem man einen User sucht, der in dem Adressbuch vorhanden ist. Je nach Konfiguration des LDAP Servers kann es zu einer Passwortabfrage kommen.
Funktioniert die Suche nicht, kann es daran liegen, dass die BindDN oder die BaseDN falsch ist.
Mozilla kann, wie Outlook Express, ebenfalls keine Daten in den LDAP Server hinzufügen.
- Einrichten von Evolution
Um gleich was voraus zu sagen, Evolution ist der einzige MailClient (von den hier aufgeführten), der Adressen in den LDAP Server speichern kann.Über Tools -> Settings kommt man in das Konfigurationsmenü, wo man bei Directory Server einen LDAP Server hinzufügen kann. Nachdem man auf Add gedrückt hat, kommt der LDAP Einrichtungsassistent. Nachdem Ausfüllen der notwendigen Felder ist das Adressbuch schon eingerichtet, und es steht dann in Evolution unter Other Contacts zur Verfügung.

Verbindungseinstellungen in EvolutionGegebenenfalls kommt eine Passwortabfrage wenn man auf Other Contacts geht.

Sucheinstellungen in EvolutionDanach kann man mit den Buchstaben am rechten Rand sein Adressbuch durchsuchen.

Adressensuche in EvolutionMöchte man jetzt noch beim Verfassen einer neuen E-Mail, dass der Empfängername anhand des LDAP Adressbuches in seine E-Mail Adresse aufgelöst wird, dann muss man in der Konfiguration unter Folder Settings bei Contacts seinen LDAP Server auswählen.

Damit kann man den Namen im Adressbuch finden und durch Eintragen des Namens in der Empfänger Zeile wird automatisch seine E-Mail Adresse herausgesucht.
- Einrichten von Sylpheed
Bei Sylpheed befindet sich das Adressbuch unter Tools -> Address book und auch nur da kann man es konfigurieren.
Mit einem Mausklick auf LDAP Server und dann unter File -> New Server kann man das LDAP Adressbuch einrichten.
Basiseinstellungen bei Sylpheed
Erweiterte Einstellungen bei SylpheedNach der Konfiguration kann man die Suche testen, indem man im Adressbuch unten einen Namen eingibt, der im Adressbuch vorhanden ist, und auf Lookup drückt.

Falls das nicht funktioniert, kann es sein, dass an den Einstellungen etwas nicht stimmt. Häufiger Fehler ist es, die BaseDN oder die SearchDN falsch zu schreiben.
Nützliche Software
Es gibt eine Menge Software, die wichtig sind für ein LDAP Adressbuch, die ich hier mal aufzählen möchte.
- LDAP Browser
Ein Java Programm, womit man Daten in dem LDAP Server ansehen und ändern kann http://www.iit.edu/~gawojar/ldap - LDAP A-Book
Perl Script, womit man Daten in den LDAP Server hinzufügen kann: http://ldap-abook.sourceforge.net/ - RoloDAP
Schema Dateien für den LDAP Server, damit er mit den Programmen Outlook, Eudora und Netscape zurecht kommt http://rolodap.sourceforge.net/
Fazit
Die MailClients unterscheiden sich kaum voneinander. Möchte man aber mit dem MailClient auch Adressen in einen LDAP Server hinzufügen, dann trennt sich die Streu vom Weizen. Nur Evolution ist in der Lage neue Adressen in den LDAP Server hinzuzufügen. OutLook Expres kann ich nicht empfehlen, da er das "Mail" Attribut des LDAP Servers nicht für die E-Mail Adresse nimmt und somit wird keine E-Mail bei der Suche angezeigt.Aber vielleicht klappt es ja in der nächsten Zeit, dass man dann Adressen in den LDAP Server mit dem Mail Client hinzufügen kann. Wer weiss, was noch kommt. Aber demnächst kommt ja erst mal die Trennung des Mozilla Projektes, und vielleicht wird schon im nächsten Release diese Funktion bereitstehen.
Anmerkungen zu diesem Artikel
| [1] | LDAP Adressbuch Mozilla | juwi | 04-6-2004 |
Eigene Anmerkung eintragen