Lightweight Directory Access Protocol

Werbung
1
Lightweight Directory Access Protocol
Jian Hua
Student im Master Elektrotechnik/Informationstechnik
Zusammenfassung—Lightweight Directory Access Protocol(LDAP) ist ein offenes Industrieprotokoll für den
Zugriff und die Verwaltung der Verzeichnisinformationsdienste über ein IP Netzwerk[1]. Ein Verzeichnis ähnelt
einer Datenbank, neigt aber mehr zu beschreibender und
attributbasierter Informationen zu enthalten. Verzeichnisse eignen sich besser, um schnell auf eine Unzahl
von Suchoperationen zu reagieren. Sie können die Fähigkeit haben, Informationen weit zu replizieren, um die
Verfügbarkeit und Zuverlässigkeit zu erhöhen und die
Reaktionszeit zu reduzieren. LDAP läuft über TCP/IP
oder andere verbindungsorientierte Übertragungsdienste.
Jetzt ist LDAP definiert in RFC4511 “The Lightweight
Directory Access Protocol (v3)”.
Index Terms—Internet,
Anwendungsschicht.
Verzeichniszugriffsprotokoll,
I. Ü BERSICHT
L
Das heißt, dass man nur die Namen bereitstellen kann,
um Resource zu suchen.
LDAP ist eine vereinfachte Alternative zum Directory
Access Protocol(DAP), das als Teil des X.500Standard spezifiziert ist. X.500-Verzeichnisdienste
wurden traditionell über das X.500 Directory Access
Protocol(DAP) aufgerufen, das den Open Systems
Interconnection(OSI) -Protokollstapel erforderte. LDAP
war ursprünglich ein leichtes alternatives Protokoll
für den Zugriff auf X.500-Verzeichnisdienste durch
den einfacheren TCP/IP-Protokollstapel. Dieses Modell
des Verzeichniszugriffs wurde von den DIXIE- und
DAS-Protokollen entlehnt. Aufgrund dieser Beziehung
wird LDAP manchmal als X.500-lite bezeichnet.
DAP wird im Internet auf der Anwendungsschicht
durchgeführt(Siehe Abbildung 1).
Anwendungsprotokoll
TCP
UDP
II. P ROTOKOLLMECHANISMEN
A. Kommunikationsmodell
Innerhalb einer LDAP-Kommunikation baut ein
Client eine TCP-Verbindung zu einem Verzeichnisserver
auf(siehe Abbildung 2). Gemäß X.500 Gewohnheiten
wird der Server auch DSA (Directory Service
Agent) genannt. Gibt es Implementierungen eines
verbindungslosen LDAP-Protokolls, bei dem Abfragen
direkt über UDP gesendet werden.
IP
Netzzugangsprotokoll
Abbildung 1.
Das Internet-Schichtenmodell.
Ein Verzeichnisdienst ist eine kritische Komponente
eines Netzwerkbetriebssystems. Es ist eine gemeinsame
Informationsinfrastruktur zum Auffinden, Verwalten und
Organisieren von Alltagsgegenständen und Netzwerkressourcen, die Volumen, Ordner, Dateien, Drucker, Benutzer, Gruppen, Geräte, Telefonnummern und andere Objekte umfassen können[2]. Wenn ein Verzeichnisdienst
verwendet wird, muss sich ein Benutzer nicht an die
physikalische Adresse einer Netzwerkressource erinnern.
Abbildung 2.
Verbindungsaufbau
2
Der Server kann einen Client auf einen anderen Server
verweisen. Dieser Verweis wurde in LDAP Version 3
erstellt und erlaubt die Lastverteilung in größeren Verzeichnissystemen, die von verschiedenen Servern bereitgestellt werden.
Während der Kommunikation überträgt der Client
eine oder mehrere Anforderungen an den Server.
Gleichzeitig gibt der Server die Antwort. Die Anfrage
eines einzelnen Clients kann auch mit mehreren
Meldungen vom Server beantwortet werden.
B. Attribute
Die Daten selbst in einem LDAP-System werden
hauptsächlich in Elementen gespeichert, die als Attributes bezeichnet werden. Attributes sind grundsätzlich
Schlüsselwertpaare. Im Gegensatz zu anderen Systeme,
die Schlüssel haben schon vordefinierte Namen, die
von der Objektklasse diktiert werden, wurden für Entry
ausgewählt[5]. Darüber hinaus müssen die Daten in
einem Attribute mit dem Typ übereinstimmen, der in der
Anfangsdefinition des Attributs definiert ist.
Das Setzen des Werts für ein Attribut erfolgt mit
dem Attributnamen und dem Attributwert, getrennt durch
einen Doppelpunkt und ein Leerzeichen. Ein Beispiel
für ein Attribut namens Mail, das eine E-Mail-Adresse
definiert, würde so aussehen:
Mail: [email protected]
Wenn man sich auf ein Attribut und seine Daten bezieht
(wenn es nicht gesetzt wird), werden die beiden Seiten
stattdessen durch ein Gleichheitszeichen verbunden:
Mail=it123.com
Die Attributwerte enthalten die meisten tatsächlichen
Daten, die Sie speichern und in einem LDAP-System
aufrufen möchten. Die anderen Elemente innerhalb von
LDAP werden für Struktur, Organisation usw. verwendet.
etwas definiert, beschreibt ein Eintrag das Element
selbst, indem es einfach diese Attribute unter einem
Namen sammelt.Ein Beispiel für Entry sieht so aus:
dn: sn =Hua, ou = people, dc = it123, dc = com
objectclass: person
sn: Hua
cn: Jian
D. ObjectClass und Schema
1) ObjectClass: Attribute werden in Entitäten gesammelt, die objectClasses genannt werden. ObjectClasses
sind einfach Gruppierungen von zugeordneten Attributen, die bei der Beschreibung einer bestimmten Sache
nützlich sind. Zum Beispiel ist “Person” ein ObjectClass.
Entries erhalten die Möglichkeit, die Attribute einer
objectClass zu verwenden, indem sie ein spezielles Attribut namens objectClass definieren, das die zu verwendende objectClass benennt. Tatsächlich ist objectClass
das einzige Attribut, das Sie in einem Entry setzen
können, ohne eine weitere objectClass anzugeben.
Das objectClass-Attribut kann mehrfach verwendet
werden, wenn Sie Attribute aus verschiedenen objectClasses benötigen, aber es gibt Regeln, die bestimmen,
was akzeptabel ist.
ObjectClass-Definitionen bestimmen, ob die von
ihnen bereitgestellten Attribute erforderlich sind
(MUST) oder optional (MAY). Mehrere objectClasses
können die gleichen Attribute bereitstellen und die
MAY- oder MUSS-Kategorisierung eines Attributes
kann von objectClass zu objectClass variieren.
C. Entry
Attribute selbst sind nicht nützlich. Um Bedeutung zu
haben, müssen sie mit etwas verbunden sein. Innerhalb
von LDAP verwendet man Attribute innerhalb eines
Entrys. Ein Entry ist im Grunde eine Sammlung von
Attributen unter einem Namen, der verwendet wird, um
etwas zu beschreiben.
Zum Beispiel können Sie einen Entry für einen
Benutzer in Ihrem System oder für jedes Element in
einem Inventar haben. Dies ist etwa analog zu einer
Zeile in einem relationalen Datenbanksystem oder einer
einzelnen Seite innerhalb eines Adressbuchs[3]. Wenn
ein Attribut eine Eigenschaft oder ein Merkmal von
Abbildung 3.
ObjectClass
2) Schema: Das Schema eines Directory Servers
definiert einen Satz von Regeln, die die Arten von
Informationen regeln, die der Server halten kann.
Attributes sind die Elemente, die für das Speichern
3
von Informationen in einem Verzeichnis verantwortlich
sind, und das Schema legt die Regeln fest, für die
Attribute in einem Eintrag verwendet werden können
, Die Arten von Werten, die diese Attribute haben
können und wie Clients mit diesen Werten interagieren
können[4]. Schema in LDAP sind einfach Sammlungen
von verwandten ObjectClasses und Attributen. Ein
einzelnes DIT kann viele verschiedene Schemata haben,
so dass es die Entries und Attribute, die es benötigt,
erstellen kann. Das Schema definiert ObjectClass. Jeder
Entry muss über ein objectClass-Attribut verfügen, das
im Schema definierte Klassen enthält.
E. Directory Information Tree
Ein LDAP-Verzeichnis hat eine Baumstruktur. Alle
Objekte des Verzeichnisses haben eine definierte
Position innerhalb dieser Hierarchie. Diese Hierarchie
wird als Directory Information Tree(DIT) Oder
Verzeichnisinformationsbaum
bezeichnet.
Der
vollständige Pfad zum gewünschten Objekte, der
ihn eindeutig identifiziert, heißt Distinguished Name
oder DN[5]. Ein einzelner Knoten entlang des Pfades
zu diesem Eintrag wird als relative distinguished name
oder RDN bezeichnet. Objekte können generell einem
von zwei möglichen Typen zugeordnet werden:
2) Leaf: Diese Objekte sitzen am Ende eines Zweiges
und haben keine untergeordneten Objekte. Die Oberseite
der Verzeichnis-Hierarchie hat ein Root-Element root.
Dies kann c(country), dc(domain component), oder
o(organization) als untergeordnete Elemente enthalten.
F. Operationen
Bind: Die Funktion des Bind-Vorgangs besteht darin,
dass Authentifizierungsinformationen zwischen dem
Client und dem Server ausgetauscht werden. Die
Bind-Operation sollte als die “authenticate” Operation
gedacht werden.
Unbind: Die Funktion des Unbind-Vorgangs besteht
darin, eine LDAP-Sitzung zu beenden. Die UnbindOperation ist nicht die Antithese der Bind-Operation, wie
der Name andeutet. Die Benennung dieser Operationen
ist historisch. Der Unbind-Vorgang sollte als der “Quit”
-Betrieb gedacht werden.
Search: Dieser Befehl sucht nach einem oder mehreren
Objekten innerhalb des Verzeichnisses, in dem mehrere
Attribute zurückgegeben werden, die der Client in der
Suchanforderung übergeben kann[6]. Ein LDAP-Filter
wird mit der Anforderung als Suchkriterium übergeben.
Der Client kann auch den Verzeichniscontainer
definieren, mit dem die Suche beginnen soll: Die
sogenannte BaseDN. Darüber hinaus kann über einen
Bereichsparameter bestimmt werden, ob die Suche auch
auf vorhandene Subcontainer erweitert werden soll.
Modify: Dieser Befehl ermöglicht den Zugriff auf
Attribute eines Objekts. Die Verwendung von ADD-,
REPLACE- und DELETE-Operationen ist möglich,
diese Möglichkeiten beziehen sich jedoch nicht auf das
gesamte Objekt, sondern nur auf die Attribute innerhalb
des Objekts.
Abbildung 4.
Directory Information Tree
1) Container: Diese Objekte können selbst weitere
Objekte enthalten. Solche Objektklassen sind root (das
Root-Element des Verzeichnisbaums, das nicht wirklich
existiert), c(country), ou(organizational unit), und
dc(domain component). Dieses Modell ist vergleichbar
mit den Verzeichnissen (Ordnern) in einem Dateisystem.
Add: Die Add-Operation ermöglicht es einem Client,
die Hinzufügung eines Entrys in das Verzeichnis
anzufordern.
Delete: Der Löschvorgang ermöglicht es einem
Client, das Entfernen eines Entrys aus dem Verzeichnis
anzufordern.
Modify DN: Die Modify DN-Operation ermöglicht es
einem Client, den Relative Distinguished Name (RDN)
eines Entrys im Verzeichnis zu ändern und/oder einen
4
Teilbaum von Entries an einen neuen Speicherort im
Verzeichnis zu verschieben.
Compare: Die Compare-Operation ermöglicht es
einem Client, einen Assertionswert mit den Werten
eines bestimmten Attributs in einem bestimmten Entry
im Verzeichnis zu vergleichen.
Abondon: Die Funktion des Abandon-Operation besteht
darin, dass ein Client einen nicht abgeschlossenen
Befehl zwischen Client und Server abbrechen kann.
Extended–Die Extended-Operation ist eine generische
LDAP-Operation, die neue Operationen definieren kann,
die nicht Teil der ursprünglichen Protokollspezifikation
waren.
III. B EWERTUNG
A. X.500 und LDAP
Um das komplexe X.500-Protokoll zu vereinfachen
und die hohe Belastung der Clients für die Unterstützung
von Directory Access Protocol (DAP) zu verringern,
wurde Lightweight Directory Access Protocol (LDAP)
entwickelt[7]. Ursprünglich wurde LDAP als Alternative
zum clientseitigen Protokoll von X.500 (DAP) konzipiert. Es ermöglichte Clients, einfache TCP / IPNetzwerke für die Verbindung zu Zwischenservern zu
verwenden. Diese Zwischenserver würden dann eine
Verbindung zu X.500-Servern über DSP über OSINetzwerke herstellen. Das LDAP-Protokoll wurde später
erweitert, um auch die Serverseite (DSP) des X.500Protokolls zu ersetzen.
B. Vorteile
Im Vergleich zu X.500 hat LDAP viele Vorteile. LDAP
verwendet die verbreitet TCP/IP-Referenzmodell, wobei
X.500 die weniger häufige OSI-Modell verwendet[8].
LDAP ist auch schneller und günstiger.
C. LDAPv3
Die neueste Version von LDAP ist LDAPv3. Die
wichtigsten Elemente dieses neuen Protokolls sind[9]:
1) Zugriff auf X.500 Funktionen: Dadurch kann
ein LDAPv3-Client auf die neuen Verzeichnisdienste
zugreifen, die in X.500 definiert sind.
2) Sicherheitsfunktionen:
Dies beinhaltet den
Zugriff auf die X.500 DUA / DSA PeerAuthentifizierungsdienste und die Vertraulichkeit
der Daten durch das Internet Secure Socket Layer (SSL)
-Protokoll. Es enthält keinen Zugriff auf X.500 signierte
Operationen.
3) Erweiterungsmechanismen: Dadurch können neue
Operationen hinzugefügt werden, ohne das Kernprotokoll zu ändern.
4) Verweise: Das ursprüngliche LDAP verband einen
LDAP-Client mit einem einzelnen Server. Der neue
LDAP ermöglicht einem LDAP-Server, einen LDAPClient umzuleiten, um einen anderen LDAP-Server zu
kontaktieren.
IV. Z USAMMENFASSUNG UND AUSBLICK
Lightweight Directory Access Protocol (LDAP) ist
ein Protokoll für das Editieren und das Lesen von
Verzeichnissen über IP-Netzwerke. Wie der Name
schon sagt, ist es ein leichtes Protokoll für den
Zugriff auf Verzeichnisdienste, speziell X.500-basierte
Verzeichnisdienste. LDAP läuft über TCP/IP oder
andere verbindungsorientierte Übertragungsdienste.
wegen der Flexibilität bleibt LDAP der Kern vieler
Verzeichnisdienste heute. Und es wird so bleiben für
die absehbare Zukunft.
L ITERATUR
[1] Wengyik Yeong, Tim Howes, and Steve Kille.
Lightweight directory access protocol. Technical
report, 1995.
[2] K Zeilenga. Lightweight directory access protocol
(ldap): Directory information models. 2006.
[3] Vassiliki Koutsonikola and Athena Vakali. Ldap:
framework, practices, and trends. IEEE Internet
Computing, 8(5):66–72, 2004.
[4] Andrew Sciberras. Lightweight directory access
protocol (ldap): Schema for user applications.
2006.
[5] Timothy A Howes, Mark C Smith, and Gordon S
Good. Understanding and deploying LDAP
directory services. Addison-Wesley Longman
Publishing Co., Inc., 2003.
[6] Jim Sermersheim. Lightweight directory access
protocol (ldap): The protocol. 2006.
[7] David Chadwick. Understanding X. 500: the
directory. Chapman & Hall, Ltd., 1994.
[8] Sara Radicati. X-500 Directory Services:
Technology and Deployment. John Wiley & Sons,
Inc., 1994.
[9] M. Wahl, T. Howes, and S. Kille. Lightweight
directory access protocol(v3). December 1997.
Herunterladen