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.