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.
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.
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.
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.
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.

Danach 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.


Danach 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.

Funktioniert 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.
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.


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.
Ü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.

Gegebenenfalls kommt eine Passwortabfrage wenn man auf Other Contacts geht.

Danach kann man mit den Buchstaben am rechten Rand sein Adressbuch durchsuchen.

Mö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.


Nach 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.
Es gibt eine Menge Software, die wichtig sind für ein LDAP Adressbuch, die ich hier mal aufzählen möchte.
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.