IT-Academy Logo
Sign Up Login Help
Home - Betriebssysteme - Linux - Server/Internet/Netzwerk - LDAP-Basics



LDAP-Basics

In diesem Dokument wird LDAP überblicksmässig definiert und erklärt. Ein muss für alle Einsteiger.


Autor: Franz Schaefer (mond)
Datum: 28-04-2002, 10:23:37
Referenzen: http://www.tldp.org/HOWTO/LDAP-HOWTO.html
http://www.OpenLDAP.org/
http://ldapman.org/
http://ldap.akbkhome.com/
http://www.pinds.com/software/ldap-in-general
http://www.yolinux.com/TUTORIALS/LinuxTutorialLDAP.html
http://www.heise.de/ix/artikel/1997/08/118/
Schwierigkeit: Fortgeschrittene
Ansichten: 9376x
Rating: 8 (3x bewertet)

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



Übersicht

In größeren Netzwerken ergibt sich oft das Problem, dass man an zentraler
Stelle Login-Namen, Telefonnummern, Zugriffsrechte, Passwörter, E-Mail-
Adressen, etc, etc.. speichern will und diese Informationen sollen von
verschiedensten Systemen aus erreichbar sein.

Die Lösung für solch ein Problem stellt ein "directory service" dar. Ein
Verzeichnissdienst. Proprietäre Lösungen dafür gibt es von
verschiedensten Herstellern. z.b. Novell oder Microsoft. Aber gerade
dieser Bereich ist höchst sensibel, da man mit einem proprietären
directory service in ein sehr tiefes Abhängigkeitsverhältniss gerät.

Eine offene, standardisierte Alternative zu proprietären directory
services, die sich immer mehr durchsetzt, ist LDAP. LDAP steht für
"light-weighted directory protokoll" und ist der kleine Bruder von X500.
X500 ist ein sehr komplexes und kompliziertes directory system, dass sich
kaum durchsetzt. LDAP schränkt die Funktionen auf das Nötigste ein und
ist dafür leichter verständlich und praxisgerechter.

LDAP erlaubt eine baumartige Hierarchie an Einträgen. Jeder Eintrag
hat einen eindeutigen Namen. Der eindeutige Name wird "dn" (distinguished
name) gennant. z.b.:

"cn=der pate, o=Mafia, c=IT"

obiger Eintrag würde z.B. zu einer Person namens "der pate" aus
dem land (country, c=) Italien bezeichnen, der zu einer Organisation (o=)
Mafia gehören würde. (die Namen sind hier natürlich frei erfunden)

Jeder Eintrag kann verschiedenste Attribute haben. E-Mail-Adresse,
Passwörter, Telefonnummern, etc... bzw. man kann sich auch eigene Attribute
definieren. Welche Attribute ein Eintrag haben kann, wird durch ein Attribut
namens "objectClass" festgelegt. Zu jeder "objectClass" gehören
verschiedene Attribute. Ein Attribut kann auch mehrere Werte haben und somit
ein Eintrag auch mehreren objectClass angehören.

Neben der Hierarchie die einteilt in c= (country) o= (organisation),
könnte man z.b. darunter ou= (organisational unit) haben und darin
verschiedene Einträge die z.B. anhand von cn= oder uid= Einträgen
unterschieden werden.

"ou" müssen natürlich nicht wirklich Abteilungen sein. Man könnte z.B.
eine ou=schueler und eine ou=lehrer und eine ou=drucker haben.

Anstelle der c=, o=, ... Hierarchie verwendet man heute meist eine
Hierarchie, die sich an Internet-Domain-Namen orientiert. Man verwendet
dabei das Attribut dc (domain context). z.b.:

dn: uid=maxmeier,dc=irgendwo,dc=at
objectclass: posixAccount
uid: maxmeier
cn: max meier
cn: max a. meier
uidNumber: 1007
gidNumber: 120
homeDirectory: /home/maxmeier
userPassword: {crypt}gH89kO.kLrewn

Die hintereinander gereihten dc= Einträge repräsentieren den Domain-Namen.
Hier z.B. "irgendwo.at".

Obiger Eintrag hat den type "posixAccount", der in etwa das /etc/passwd
file ersetzt und den die meisten Programme voraussetzen, die ein Login auf
einem Unix-System via LDAP erlauben.

Eine Übersicht über die gebräuchlichsten objectclassen findet man auf:
http://ldap.akbkhome.com/

Z.B. die objectClass namens "person" mit der man Personen beschreibt,
wovon es Unterklassen gibt, z.B. "netOrgPerson" die eine Person beschreibt,
die mit einem Unternehmen in Verbindung steht. Oder aber eine
"residentialPerson" die eher auf den Wohnort bezogen ist.

Dann gibt es z.B. noch Schemas (so nennt man die Einteilung in object
klassen) für Dinge wie

* device (hat z.b. attribute wie "serialNumber" und "owner"

* ipNetwork

* ipHost

.....

und wenn man kein passendes Schema findet, kann man sich natürlich ein
Eigenes anlegen.

Welche Software setzt man für LDAP ein?

Neben komerziellen LDAP-Systemen und LDAP-Gateways für echte X.500-Systeme,
wird vorallem openldap (http://www.openldap.org/) eingesetzt.

Die Konfiguration erfolgt im file slapd.conf (z.b in /etc/openldap/slapd.conf).

Dort kann man die Schemas angeben, die man verwenden will (man inkludiert
für jedes Schema entsprechende Files die das Schema beschreiben). Weiters
legt man die "baseDN" fest, also ab wo in der directory Hierarchie man
gültig sein will, z.B.: dc=blabla,dc=irgendwo,dc=at

Weiters die Zugriffsrechte: wer welche Attribute auf welchen Teilen des Baumes
abfragen oder ändern darf.

Die daten selbst kann openldap in einer internen Datebank speichern, oder
auf einen SQL-Server weiterleiten.

Zum Zwecke eines Backups kann man sich mit dem Tool

ldbmcat

in einem ASCII Text Format ausgeben lassen (das Format ist genormt und
heißt LDIF (für "LDAP Directory Interchange Format")).

Weiters gibt es ein Programm namens slurpd, mit dem man ein LDAP-
Verzeichniss auf einen Backup-Server replizieren kann. Fällt einer der
LDAP-Server aus, kann der andere Server die Anfragen beantworten.

Läuft openldap, so lauscht es auf Port 389 nach Anfragen von LDAP-Client-
Programmen die auf dieses directory zugreifen wollen.

* Wichtige Clients sind:

o gq (grafischer gnome client)

o java ldap browser ( http://www.iit.edu/~gawojar/ldap/ )

o web2ldap web basierter ldap browser

o kldap (KDE ldap brwoser)

...

* Programme, die es ermöglichen sich auf LDAP zu authentisieren gibt es für

o squid (ein http cache daemon)

o apache

o pam (pam ist das "plugable authentication module"), damit kann man
Logins auf Unix auf verschiedenste Arten umleiten. Hier eben auf einen
LDAP-Server.

o radius (ein protokoll das vorallem zur Authentisierung von Dialin-
Usern verwendet wird. Programme hierfür sind openradius und freeradius)

....

* Client-Programme, die in irgend einer Form LDAP benutzen können (z.B.

für Adressbücher von E-Mail-Clients oder Browsereinstellungen, etc... gibt
es extrem viele. z.B.: Netscape, Pine, Outlook (kein Mailprogramm,
sondern ein Sicherheitsrisiko), mutt (mit einem externen Perl-Script), ..

* für Programmierer gibt es Schnittstellen zu vielen Sprachen:

o perl (Net::LDAP)

o python

o C, C++

o Java

o PHP

Es ist somit leicht eigene Anwendungen mit LDAP-Unterstützung
auszustatten.

Die Grenzen von LDAP

Bei allen Möglichkeiten die LDAP bietet, sollte man allerdings auch die
Grenzen sehen. In LDAP kann man vielerlei daten speichern, aber LDAP ist
keine relationale Datenbank. Man sollte sich also überlegen, ob manche
Daten nicht besser in einer SQL-Datenbank aufgehoben sind. Vorallem wenn
es um komplexe Verknüpfungen bei Abfragen geht, ist dort eine echte
Datenbank sicher schneller und flexibler.

Sicherheit beim Zugriff auf LDAP

Normalerweise ist der LDAP-Zugriff unverschlüsselt, was in
sicherheitsrelevanten Bereichen nicht gerade ideal ist. Neuere Versionen
des LDAP-Protokolls können daher eine SSL (secure socekt layer)
Verschlüsselung aushandeln. Alternativ dazu kann man zu einem LDAP
-Transparent über einen SSL-Channel connecten, wobei man zur
Unterscheidung ein anderes Port verwendet (636). Mehr über SSL lernen wir
demnächst.

EXERCISES:

* verwende gq oder einen anderen der LDAP-Clients um einen offenen LDAP-
Server zu browsen, z.B. ldap.openldap.org, oder einen aus der Liste auf:

http://www.emailman.com/ldap/public.html

http://www.keutel.de/directory/public_ldap_servers.html

* installiere openldap und versuch mit einem der freien Clients zu connecten
und einige Einträge anzulegen.

_______________________________________________
CD ist ein service von SILVER SERVER
der inhalt unterliegt der GFDL
_______________________________________________



[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04508
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06245
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1149
Comments: 0