Nach der Installation und Konfiguration des LDAP Servers muß dieser mit Daten gefüttert werden. Das folgende Beispiel erklärt den LDAP Server anhand einer fiktiven Firma mit mehreren Abteilungen. Die einzelnen Felder müssen den lokalen Gegebenheiten nur angepaßt werden, um eine simple Konfiguration aufzusetzten.
Für das folgende Beispiel wird im Verzeichnis /etc/openldap das Unterverzeichnis ldif/ angelegt. In diesem Verzeichnis kann mit jedem x-beliebigen Editor, der ASCII unterstützt, eine Datei mit dem Namen firmenstruktur.ldif erstellt werden. Der Name und das Verzeichnis für die Beispiel LDIF-Dateien sind beliebig. Es müssen für den Fall, das andere Namen oder Pfade verwendet werden, diese nur an die lokalen Gegebenheiten angepaßt werden.
Das Beispiel erstellt den DIT (Directory Information Tree) für die fiktive Firma Structure Net in Deutschland; hoffentlich gibts die wirklich nicht. Die Firma Structure Net bekommt drei Abteilungen spendiert: Sales, Development und Support. Jeder Abteilung werden zwei Mitarbeiter zugeordnet. Daraus ergibt sich folgende Struktur:
DE | +- Structure Net --+ | +-- Sales --+-- Mitarbeiter 1 (Axel Hueser) | | | +-- Mitarbeiter 2 (Jared Wiener) | +-- Development --+-- Mitarbeiter 3 (Thomas Bendler) | | | +-- Mitarbeiter 4 (Thomas Lippert) | +-- Support --+-- Mitarbeiter 5 (Elmar Mueller) | +-- Mitarbeiter 6 (Enrico Lemke)
Um das Beispiel übersichtlich zu gestalten und dem Nutzer zu zeigen, welche Einträge für was verantwortlich sind, habe ich die Beispiel LDIF in eine Datei für die Firmenstruktur und in eine Datei pro Abteilung aufgeteilt. Der admin Account muß natürlich schon in der Firmenstrukur angegeben werden, da sonst keine weiteren Einträge über ldapadd möglich sind; doch dazu später mehr.
Beispiel LDIF firmenstruktur.ldif
dn: dc=structure-net, dc=de objectclass: organization objectclass: top o: Structure Net l: Hamburg postalcode: 21033 streetadress: Billwiese 22 dn: ou=Sales, dc=structure-net, dc=de objectclass: organizationalunit ou: Sales description: Verkauf telephonenumber: 040-7654321 facsmiletelephonenumber: 040-7654321 dn: ou=Development, dc=structure-net, dc=de objectclass: organizationalunit ou: Development description: Verkauf telephonenumber: 040-7654321 facsmiletelephonenumber: 040-7654321 dn: ou=Support, dc=structure-net, dc=de objectclass: organizationalunit ou: Support description: Verkauf telephonenumber: 040-7654321 facsmiletelephonenumber: 040-7654321 dn: uid=admin, dc=structure-net, dc=de objectclass: person objectclass: organizationalperson objectclass: inetorgperson cn: admin cn: Systemverwalter cn: Thomas Bendler sn: Bendler uid: admin mail: tbendler@structure-net.de l: Hamburg postalcode: 21033 streetadress: billwiese 22 telephonenumber: 040-7654321 facsmiletelephonenumber: 040-7654321
Beispiel LDIF sales.ldif
dn: uid=ahueser, ou=Sales, dc=structure-net, dc=de objectclass: person objectclass: organizationalperson cn: Axel Hueser sn: Hueser uid: ahueser mail: ahueser@structure-net.de l: Hamburg postalcode: 21033 streetadress: billwiese 22 telephonenumber: 040-7654321 facsmiletelephonenumber: 040-7654321 dn: uid=jwiener, ou=Sales, dc=structure-net, dc=de objectclass: person objectclass: organizationalperson cn: Jared Wiener sn: Wiener uid: jwiener mail: jwiener@structure-net.de l: Hamburg postalcode: 21033 streetadress: billwiese 22 telephonenumber: 040-7654321 facsmiletelephonenumber: 040-7654321
etc.
Die vorgestellte Datenbank ist natürlich weder sonderlich umfangreich noch besonders trickreich. Doppelte Datensätze wie z.B. Admin und Bendler, die sich auf die selbe Person beziehen, können auch über Verweise aufgelöst werden. So kann man z.B. eine Gruppe People erstellen, in der man alle bekannten Personen unterbringt. In den Gruppen Sales, Development und Support trägt man dann Verweise auf diese Personen ein.
Copyright
o.g. Ausschnitt wurde aus Thomas Bendlers Linux LDAP-HOWTO zitiert.
Das Copyright liegt bei Thomas Bendler und darf darf gemäß der GNU General Public License verbreitet werden wenn der Copyright Hinweis nicht entfernt wird. (Copyright Hinweis)