Inhalt

6. Erstellen eines Beispielverzeichnisses

6.1 Erstellen der LDIF Dateien

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

Beispiel LDIF development.ldif

dn: uid=tbendler, ou=Development, dc=structure-net, dc=de
objectclass: person
objectclass: organizationalperson
objectclass: inetorgperson
cn: tbendler
cn: Systemverwalter
cn: Thomas Bendler
sn: Bendler
uid: tbendler
mail: tbendler@structure-net.de
l: Hamburg
postalcode: 21033
streetadress: billwiese 22
telephonenumber: 040-7654321
facsmiletelephonenumber: 040-7654321

dn: uid=tlippert, ou=Development, dc=structure-net, dc=de
objectclass: person
objectclass: organizationalperson
cn: Thomas Lippert
sn: Lippert
uid: tlippert
mail: tlippert@structure-net.de
l: Hamburg
postalcode: 21033
streetadress: billwiese 22
telephonenumber: 040-7654321
facsmiletelephonenumber: 040-7654321

Beispiel LDIF support.ldif

dn: uid=emueller, ou=Support, dc=structure-net, dc=de
objectclass: person
objectclass: organizationalperson
cn: Elmar Mueller
sn: Mueller
uid: emueller
mail: emueller@structure-net.de
l: Hamburg
postalcode: 21033
streetadress: billwiese 22
telephonenumber: 040-7654321
facsmiletelephonenumber: 040-7654321

dn: uid=elemke, ou=Support, dc=structure-net, dc=de
objectclass: person
objectclass: organizationalperson
cn: Enrico Lemke
sn: Lemke
uid: elemke
mail: elemke@structure-net.de
l: Hamburg
postalcode: 21033
streetadress: billwiese 22
telephonenumber: 040-7654321
facsmiletelephonenumber: 040-7654321

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.

6.2 Umwandeln der LDIF Datei in das LDBM Format

Als nächstes muß die LDIF Datei ins LDBM Format konvertiert werden. Dazu dient der Befehl ldif2ldbm. In der SuSE Distribution ist dieser unter /usr/sbin/ zu finden. Der Befehl lautet also:

ldif2ldbm -i /etc/openldap/ldif/firmenstruktur.ldif \
          -f /etc/openldap/slapd.conf

Sollten sich irgendwelche Dateien nicht in den Standardpfaden befinden, so kann man so nach den Dateien suchen lassen:

find / -name <Dateiname> 

Ist die LDIF Datei konvertiert, muß der LDAP Server gestartet werden. SuSE stellt dafür ein init-Skript zur Verfügung:

/sbin/init.d/ldap start

Wenn der LDAP Server wunschgemäß läuft, kann dieser auch automatisch gestartet werden, indem man die Variable START_LDAP in der rc.config auf yes setzt.

Ist kein Startskript vorhanden, wird der LDAP Server mit folgendem Kommando gestartet:

slapd -f /usr/local/etc/openldap/slapd.conf

6.3 Testen des LDAP Servers

Um den LDAP Server zu testen, kann man jetzt eine Anfrage an selbigen schicken. Dies geschieht mit folgendem Befehl:

ldapsearch objectclass=\*

Der Server sollte nun eine Struktur, wie in der Datei firmenstruktur.ldif beschrieben, als Rückantwort übergeben.

6.4 Hinzufügen von Datensätzen

Nun gehts an das Hinzufügen von Datensätzen. Dazu werden die bereits erstellten LDIF Dateien benutzt. Das Hinzufügen geschieht mit Hilfe des Befehls ldapadd. Dies geschieht folgendermaßen:

ldapadd -v -D dn="uid=admin,dc=structure-net,dc=de" \
        -w secret -f /etc/openldap/ldif/sales.ldif
ldapadd -v -D dn="uid=admin,dc=structure-net,dc=de" \
        -w secret -f /etc/openldap/ldif/development.ldif
ldapadd -v -D dn="uid=admin,dc=structure-net,dc=de" \
        -w secret -f /etc/openldap/ldif/support.ldif

Auf diese Weise können auch weitere Einträge hinzugefügt werden. Eine etwas komfortablere Variante stellt das X.500 Webgateway, da welches als Frontend beschrieben wird.


Inhalt