<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Lightweight_Directory_Access_Protocol</id>
	<title>Lightweight Directory Access Protocol - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Lightweight_Directory_Access_Protocol"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Lightweight_Directory_Access_Protocol&amp;action=history"/>
	<updated>2026-05-17T23:01:59Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Lightweight_Directory_Access_Protocol&amp;diff=21249&amp;oldid=prev</id>
		<title>imported&gt;Wassermaus: /* Anwendungen */ link</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Lightweight_Directory_Access_Protocol&amp;diff=21249&amp;oldid=prev"/>
		<updated>2025-09-28T07:05:57Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Anwendungen: &lt;/span&gt; link&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Netzwerk-TCP-UDP-IP-Anwendungsprotokoll|LDAP}}&lt;br /&gt;
&lt;br /&gt;
Das &amp;#039;&amp;#039;&amp;#039;Lightweight Directory Access Protocol&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;LDAP&amp;#039;&amp;#039;&amp;#039;), deutsch etwa &amp;#039;&amp;#039;Leichtgewichtiges Verzeichniszugriffsprotokoll&amp;#039;&amp;#039;, ist ein [[Netzwerkprotokoll]] zur Abfrage und Änderung von Informationen verteilter [[Verzeichnisdienst]]e. Seine aktuelle und dritte Version ist in [[Request for Comments|RFC]]&amp;amp;nbsp;4510 bis &amp;lt;nowiki&amp;gt;RFC&amp;amp;nbsp;4532&amp;lt;/nowiki&amp;gt; spezifiziert, das eigentliche Protokoll in &amp;lt;nowiki&amp;gt;RFC&amp;amp;nbsp;4511&amp;lt;/nowiki&amp;gt;.&amp;lt;ref&amp;gt;{{RFC-Internet |Autor=Jim Sermersheim |RFC=4511 |Titel=Lightweight Directory Access Protocol (LDAP): The Protocol |Datum=2006-06 |Obsoletes=3771 |Errata=1}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
LDAP ist der [[De-facto-Standard|De-facto-Industriestandard]] für [[Authentifizierung]], [[Autorisierung]] sowie Adress- und [[Benutzerverzeichnis]]se. Die meisten Softwareprodukte, die mit Benutzerdaten umgehen müssen und am Markt relevant sind, unterstützen LDAP.&lt;br /&gt;
&lt;br /&gt;
Die [[Port (Netzwerkadresse)|Standardports]] sind:&lt;br /&gt;
* &amp;#039;&amp;#039;389&amp;#039;&amp;#039; für ungesicherte oder mit [[STARTTLS]] gesicherte Verbindungen&amp;lt;ref&amp;gt;{{RFC-Internet |RFC=4513 |Titel=Lightweight Directory Access Protocol (LDAP): Authentication Methods and Security Mechanisms |Datum=}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;636&amp;#039;&amp;#039; für mit [[Transport Layer Security|TLS]] gesicherte Verbindungen (LDAPS).&amp;lt;ref&amp;gt;{{Internetquelle |url=https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt |titel=Service Name and Transport Protocol Port Number Registry |hrsg=IANA |datum= |abruf=2023-06-16}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verbindungsloses LDAP via [[User Datagram Protocol|UDP]] erfuhr nie eine weite Verbreitung und befindet sich mittlerweile außerhalb der Standardisierung.&amp;lt;ref&amp;gt;{{RFC-Internet |RFC=3352 |Titel=Connection-less Lightweight Directory Access Protocol (CLDAP) to Historic Status |Datum=2003-03 |Autor=K. Zeilenga}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Überblick ==&lt;br /&gt;
LDAP basiert auf dem [[Client-Server-Modell]]&amp;lt;ref&amp;gt;{{Internetquelle |autor=Justin Parisi |url=https://whyistheinternetbroken.wordpress.com/2015/07/29/ldap-servers-clients/ |titel=LDAP::LDAP Servers and Clients – Part 5 |werk=Why Is The Internet Broken? |datum=2015-07-29 |sprache=en |abruf=2018-02-26}}&amp;lt;/ref&amp;gt; und wird bei Verzeichnisdiensten ({{enS|directories}} oder &amp;#039;&amp;#039;directory services&amp;#039;&amp;#039;) eingesetzt.&amp;lt;ref&amp;gt;{{Internetquelle |url=https://www.novell.com/documentation/suse92/pdfdoc/admin92-screen/admin92-screen.pdf |titel=Suse Linux Administration Guide 9.2 |titelerg=22.9 LDAP&amp;amp;nbsp;– A Directory Service |werk=novell.com |hrsg=Novell |datum=2004 |seiten=464 f |format=PDF; 6,7&amp;amp;nbsp;MB |sprache=en |abruf=2018-02-26}}&amp;lt;/ref&amp;gt; Es beschreibt die Kommunikation zwischen dem &amp;#039;&amp;#039;LDAP-Client&amp;#039;&amp;#039; und dem &amp;#039;&amp;#039;Verzeichnis-&amp;#039;&amp;#039;(&amp;#039;&amp;#039;Directory-&amp;#039;&amp;#039;)Server. Aus einem solchen Verzeichnis können objektbezogene Daten, z.&amp;amp;nbsp;B. [[Personendaten]] oder [[Konfiguration (Computer)|Rechnerkonfigurationen]], ausgelesen werden.&amp;lt;ref&amp;gt;{{Internetquelle |autor=Frank-Michael Schlede, Thomas Bär / Andreas Donner |url=https://www.ip-insider.de/was-ist-ldap-lightweight-directory-access-protocol-a-581204/ |titel=Was ist LDAP (Lightweight Directory Access Protocol)? |werk=IP Insider |datum=2017-08-01 |abruf=2018-02-26}}&amp;lt;/ref&amp;gt; Die Kommunikation erfolgt auf Basis von Abfragen.&amp;lt;ref&amp;gt;{{Internetquelle |autor=Holger Kattner |url=https://www.tecchannel.de/a/ldap-abfragen-erstellen,464680 |titel=LDAP-Abfragen erstellen |werk=Computerwoche - TEC Workshop |datum=2006-09-01 |abruf=2018-02-26}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein „[[Verzeichnis]]“ in diesem Sinne wäre beispielsweise ein Telefon- oder Adressbuch und &amp;#039;&amp;#039;nicht&amp;#039;&amp;#039; gleichbedeutend mit einem „Dateiordner“.&lt;br /&gt;
&lt;br /&gt;
Bei einem Adressbuch könnte sich also folgende Beispielsituation ergeben: In seinem [[E-Mail-Programm|E-Mail-Client]] stößt ein Nutzer die Aktion &amp;#039;&amp;#039;Suche die Mailadresse von Joe User&amp;#039;&amp;#039; an. Der E-Mail-Client formuliert eine LDAP-Abfrage an das Verzeichnis, das die Adressinformationen bereitstellt. Das Verzeichnis formuliert die Antwort und übermittelt sie an den Client: &amp;#039;&amp;#039;joe.user@example.org&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
LDAP bietet alle Funktionen, die für eine solche Kommunikation notwendig sind:&lt;br /&gt;
* Anmeldung am Server (&amp;#039;&amp;#039;bind&amp;#039;&amp;#039;)&lt;br /&gt;
* die Suchabfrage (&amp;#039;&amp;#039;Suche mir bitte alle Informationen zum Benutzer mit dem Namen „Joe&amp;amp;nbsp;User“&amp;#039;&amp;#039;)&lt;br /&gt;
* die Modifikation der Daten (&amp;#039;&amp;#039;Ändere das Passwort des Benutzers Joe&amp;amp;nbsp;User&amp;#039;&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
Mittlerweile hat sich im [[Systemadministrator|administrativen]] Sprachgebrauch eingebürgert, dass man von einem &amp;#039;&amp;#039;LDAP-Server&amp;#039;&amp;#039; spricht,&amp;lt;ref&amp;gt;{{Internetquelle |url=https://www.ldap.com/choosing-an-ldap-server |titel=Choosing an LDAP Server |werk=LDAP.com |hrsg=UnboundID |datum=2015 |sprache=en |offline=1 |archiv-url=https://web.archive.org/web/20180227040005/https://www.ldap.com/choosing-an-ldap-server |archiv-datum=2018-02-27 |abruf=2018-02-26}}&amp;lt;/ref&amp;gt; wenn man einen Directory-Server meint, dessen Datenstruktur der LDAP-Spezifikation entspricht und der über das LDAPv3-Protokoll, das in &amp;lt;nowiki&amp;gt;RFC&amp;amp;nbsp;2251&amp;lt;/nowiki&amp;gt;&amp;lt;ref name=&amp;quot;RFC2251&amp;quot; /&amp;gt; festgelegt wurde, Daten austauschen kann.&lt;br /&gt;
&lt;br /&gt;
Neuere [[Implementierung #Softwaretechnik|Implementierungen]], die über &amp;lt;nowiki&amp;gt;RFC&amp;amp;nbsp;2251&amp;lt;/nowiki&amp;gt;&amp;lt;ref name=&amp;quot;RFC2251&amp;quot; /&amp;gt; hinausgehen, indem sie zusätzlich die [[Replikation (Datenverarbeitung)|Replikation]] der Daten zwischen verschiedenen Verzeichnissen berücksichtigen, sind Gegenstand für eine mögliche Erweiterung des Protokolls.&amp;lt;ref&amp;gt;{{Internetquelle |url=https://openldap.org/doc/admin24/replication.html |titel=18. Replication |werk=OpenLDAP |hrsg=OpenLDAP Foundation |datum=2011 |sprache=en |abruf=2018-02-26}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Geschichte ==&lt;br /&gt;
LDAP wurde an der [[University of Michigan|Universität von Michigan]] (UMich) entwickelt und 1993 erstmals im &amp;lt;nowiki&amp;gt;RFC&amp;amp;nbsp;1487&amp;lt;/nowiki&amp;gt;&amp;lt;ref&amp;gt;{{RFC-Internet |RFC=1487 |Titel=X.500 Lightweight Directory Access Protocol |Datum=1993-07}}&amp;lt;/ref&amp;gt; vorgeschlagen.&amp;lt;ref&amp;gt;{{Internetquelle |url=https://idmdude.com/2012/04/13/the-most-complete-history-of-directory-services-you-will-ever-find/ |titel=The Most Complete History of Directory Services You Will Ever Find |datum=2012-04-13 |sprache=en |abruf=2018-02-26}}&amp;lt;/ref&amp;gt; Gleichzeitig stellte die UMich die erste Serverimplementierung vor, die heute als „UMich-LDAP“ bekannt ist.&lt;br /&gt;
&lt;br /&gt;
LDAP ist eine vereinfachte (&amp;quot;&amp;#039;&amp;#039;lightweight&amp;#039;&amp;#039;&amp;quot;) Alternative zum Directory Access Protocol (DAP), das als Teil des [[X.500]]-Standard spezifiziert ist.&amp;lt;ref&amp;gt;{{Internetquelle |autor=Petra Haberer |url=http://www.mitlinx.de/ldap/index.html?http://www.mitlinx.de/ldap/ldap_geschichte.htm |titel=Geschichte und Versionen von LDAP – ‘Leightweight’-Zugang zu X.500 |werk=LDAP verstehen |hrsg=MitLinX Internetdienstleistungen |abruf=2018-02-26}}&amp;lt;/ref&amp;gt; Der X.500-Standard ist sehr umfangreich und setzt auf einem vollständigen [[OSI-Modell|ISO/OSI-Stack]] auf, was die Implementierung schwierig und hardwareintensiv machte.&lt;br /&gt;
&lt;br /&gt;
LDAP wurde mit dem Ziel entwickelt, Verzeichnisdienste einfacher und somit populärer zu machen. LDAP setzt auf einen [[TCP/IP-Referenzmodell|TCP/IP-Stack]] auf und implementiert nur eine Auswahl der DAP-Funktionen und -[[Datentyp]]en.&amp;lt;ref&amp;gt;{{Internetquelle |url=https://msdn.microsoft.com/en-us/library/aa367036(v=vs.85).aspx |titel=About Lightweight Directory Access Protocol – What is LDAP? |werk=Microsoft Developer Network (MSDN) |hrsg=Microsoft |sprache=en |abruf=2018-02-26}}&amp;lt;/ref&amp;gt; Dadurch ließ sich LDAP auch auf [[Arbeitsplatzrechner]]n der frühen 1990er Jahre implementieren und gewann eine breite Anwendungsbasis.&lt;br /&gt;
&lt;br /&gt;
== LDAP und X.500 ==&lt;br /&gt;
LDAP ist ein [[Speicherzugriff|Zugriffsmechanismus]] gemäß [[X.500]] und äußerlich auf dessen Dienst- und [[Datenmodell]]e festgelegt.&amp;lt;ref name=&amp;quot;RFC4510&amp;quot;&amp;gt;{{RFC-Internet |Autor=Kurt Zeilenga |RFC=4510 |Titel=Lightweight Directory Access Protocol (LDAP): Technical Specification Road Map |Datum=2006-06 |Abschnitt=2 |Abschnittstitel=Relationship to X.500 |Obsoletes=3771}}&amp;lt;/ref&amp;gt; Im Hintergrund jedoch lässt LDAP alles offen und jegliches Verzeichnissystem zu. Es gibt auch keine Festlegung vom LDAP auf einen bestimmten [[Front-End und Back-End|Unterbau]] wie [[Transmission Control Protocol|TCP]] oder&amp;amp;nbsp;[[Internet Protocol|IP]].&lt;br /&gt;
&lt;br /&gt;
Wo X.500 in seinem Directory Access Protocol (DAP) mehrere aufeinander aufbauende Nachrichten erfordert, kann im LDAP eine einzige zusammengefasste Nachricht genügen.&amp;lt;ref name=&amp;quot;RFC4511&amp;quot;&amp;gt;{{RFC-Internet |Autor=Jim Sermersheim |RFC=4511 |Titel=Lightweight Directory Access Protocol (LDAP): The Protocol |Datum=2006-06 |Abschnitt=3 |Abschnittstitel=Protocol Model |Obsoletes=3771 |Errata=1}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Funktionsweise ==&lt;br /&gt;
[[Datei:Ldapentry.gif|mini|LDAP-Directory-Eintrag]]&lt;br /&gt;
&lt;br /&gt;
Um eine Übersicht über die Funktionsweise einer LDAP-Architektur zu bekommen, ist es notwendig, dass man zwischen der Organisation des &amp;#039;&amp;#039;LDAP-Verzeichnisses&amp;#039;&amp;#039; und dem Protokoll &amp;#039;&amp;#039;LDAP&amp;#039;&amp;#039; unterscheidet.&lt;br /&gt;
&lt;br /&gt;
=== LDAP-Verzeichnis ===&lt;br /&gt;
Die [[Datenstruktur]] eines LDAP-Verzeichnisses ist durch einen [[Baum (Graphentheorie)|hierarchischen Baum]] mit [[Wurzel (Graphentheorie)|Wurzeln]], Zweigen und [[Blätter und innere Knoten in der Graphentheorie|Blättern]] gegeben.&amp;lt;ref&amp;gt;{{Internetquelle |autor=Margaret Rouse |url=http://www.searchnetworking.de/definition/LDAP-Lightweight-Directory-Access-Protocol |titel=LDAP (Lightweight Directory Access Protocol) |werk=SearchNetworking.de |hrsg=TechTarget Germany |datum=2014-06 |archiv-url=https://web.archive.org/web/20150921191103/http://www.searchnetworking.de/definition/LDAP-Lightweight-Directory-Access-Protocol |archiv-datum=2015-09-21 |abruf=2018-02-26}}&amp;lt;/ref&amp;gt; Dieser Baum wird auch &amp;#039;&amp;#039;Directory Information Tree&amp;#039;&amp;#039; (DIT) genannt.&amp;lt;ref&amp;gt;{{Internetquelle |url=https://docs.oracle.com/cd/E19455-01/806-5580/6jej518p7/index.html |titel=Directory Information Tree |werk=LDAP Setup and Configuration Guide |hrsg=Oracle Corporation |datum=2010 |sprache=en |abruf=2018-02-26}}&amp;lt;/ref&amp;gt; Die Wurzel (&amp;#039;&amp;#039;root&amp;#039;&amp;#039;, &amp;#039;&amp;#039;suffix&amp;#039;&amp;#039;) ist das oberste Daten[[Objekt (Programmierung)|objekt]], unter ihm verzweigen sich die höheren Strukturen.&amp;lt;ref&amp;gt;{{Internetquelle |url=https://www.ldap.com/the-directory-information-tree |titel=DIT and the LDAP Root DSE |werk=LDAP.com |hrsg=UnboundID |datum=2015 |sprache=en |offline=1 |archiv-url=https://web.archive.org/web/20180227035951/https://www.ldap.com/the-directory-information-tree |archiv-datum=2018-02-27 |abruf=2018-02-26}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beispiel: Wird ein LDAP-Verzeichnis in einem Unternehmen mit dem Namen &amp;#039;&amp;#039;[[ACME]]&amp;#039;&amp;#039; eingesetzt, so kann die &amp;#039;&amp;#039;Organisation&amp;#039;&amp;#039; als Wurzel definiert werden: &amp;#039;&amp;#039;o=acme&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Personen können in Zweigen unterhalb dieser Wurzel hinterlegt werden: &amp;#039;&amp;#039;ou=Personen,o=acme&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Gruppen können in anderen Zweigen unterhalb der Wurzel hinterlegt werden: &amp;#039;&amp;#039;ou=Gruppen,o=acme&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Damit die Organisation der Daten nicht willkürlich geschieht, verwendet jedes LDAP-Verzeichnis eine bestimmte, genormte und gegebenenfalls erweiterte Struktur. Die Struktur wird durch das verwendete [[Schema (Informatik)|Schema]] definiert.&amp;lt;ref&amp;gt;{{Internetquelle |autor=Petra Haberer |url=http://www.mitlinx.de/ldap/index.html?http://mitlinx.de/ldap/ldap_schema.htm |titel=Schema, Objektklassen und Verzeichniseinträge |werk=LDAP Objektklassen und Schemas |hrsg=mitlinx.de |abruf=2018-02-28}}&amp;lt;/ref&amp;gt; Ein LDAP-Schema definiert jeweils Objekt-[[Klasse (Objektorientierung)|Klassen]] mit ihren [[Attribut (Programmierung)|Attributen]], z.&amp;amp;nbsp;B. die Klasse &amp;#039;&amp;#039;person&amp;#039;&amp;#039; oder die Klasse &amp;#039;&amp;#039;organisation&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Die Verzeichniseinträge heißen LDAP-&amp;#039;&amp;#039;Objekte&amp;#039;&amp;#039;.&amp;lt;ref&amp;gt;{{Internetquelle |autor=Philipp Föckeler |url=http://www.selfadsi.de/search.htm |titel=LDAP Objekte im Verzeichnis suchen (ADO) |werk=SelfADSI - SelfADSI ADSI Scripting / LDAP Scripting Tutorial |abruf=2018-03-01}}&amp;lt;/ref&amp;gt; Jedes Objekt gehört zu mindestens einer, in der Regel aber zu mehreren Klassen.&amp;lt;ref&amp;gt;{{Internetquelle |autor=Thomas Bendler, Steffen Dettmer |url=http://www.selflinux.org/selflinux/html/ldap02.html |titel=2 Eine kleine Einführung in LDAP |werk=Das Lightweight Directory Access Protocol |archiv-url=https://web.archive.org/web/20220524045950/https://www.selflinux.org/selflinux/html/ldap02.html |archiv-datum=2022-05-24 |abruf=2018-03-01}}&amp;lt;/ref&amp;gt; So sind für die Daten einer Person, ihrer E-Mail-Adresse und ihrer Passwörter nicht etwa drei Objekte notwendig, sondern dasselbe Objekt gehört zu drei Klassen. Diese könnten in diesem Beispiel person, inetOrgPerson und [[Portable Operating System Interface|POSIX]]-[[Benutzerkonto]] heißen.&lt;br /&gt;
&lt;br /&gt;
Es gibt drei Arten von Objektklassen:&lt;br /&gt;
# Da ein Objekt zu mindestens einer &amp;#039;&amp;#039;strukturellen Klasse&amp;#039;&amp;#039; gehören muss, ist dies die Standardeinstellung.&lt;br /&gt;
# Daneben gibt es noch &amp;#039;&amp;#039;Hilfsklassen&amp;#039;&amp;#039;, welche verschiedenartigen Objekten gleiche Attribute zuweisen.&lt;br /&gt;
# Zu guter Letzt existieren noch [[Abstrakte Klasse|abstrakte]] [[Basisklasse]]n, von denen keine Objekte, sondern nur untergeordnete Basisklassen erzeugt werden können.&lt;br /&gt;
&lt;br /&gt;
Jedes Objekt ist eigenständig und aus Attributen zusammengesetzt.&amp;lt;ref&amp;gt;{{Internetquelle |autor=Philipp Föckeler |url=http://www.selfadsi.de/read.htm |titel=LDAP Objekt-Attribute lesen |werk=SelfADSI - SelfADSI ADSI Scripting / LDAP Scripting Tutorial |abruf=2018-03-01}}&amp;lt;/ref&amp;gt; Ein einzelnes Objekt wird eindeutig durch den &amp;#039;&amp;#039;Distinguished Name&amp;#039;&amp;#039; (DN) identifiziert,&amp;lt;ref&amp;gt;{{Internetquelle |autor=Philipp Föckeler |url=http://www.selfadsi.de/ldap-path.htm |titel=LDAP Pfadnamen - Distinguished Names |werk=SelfADSI - SelfADSI ADSI Scripting / LDAP Scripting Tutorial |abruf=2018-03-01}}&amp;lt;/ref&amp;gt; z.&amp;amp;nbsp;B. &amp;#039;&amp;#039;uid=juser,ou=People,ou=webdesign,c=de,o=acme&amp;#039;&amp;#039;. Dieser setzt sich aus einzelnen &amp;#039;&amp;#039;Relative Distinguished Names&amp;#039;&amp;#039; (RDN) zusammen.&amp;lt;ref&amp;gt;{{Internetquelle |autor=Oracle |url=https://docs.oracle.com/cd/E19182-01/820-6573/ghusi/index.html |titel=Distinguished Names and Relative Distinguished Names |werk=Understanding the LDAP Binding Component |sprache=en |abruf=2018-03-02}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eine andere Schreibweise für den DN ist der &amp;#039;&amp;#039;[[Kanonischer Name|canonical name]]&amp;#039;&amp;#039;, der keine Attribut-Tags wie &amp;#039;&amp;#039;ou&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;c&amp;#039;&amp;#039; enthält und bei dem die Trennung zwischen den RDNs durch Schrägstriche erfolgt;&amp;lt;ref&amp;gt;{{Internetquelle |autor=Microsoft |url=https://msdn.microsoft.com/de-de/library/ms675436(v=vs.85).aspx |titel=Canonical-Name attribute |werk=Micorosoft Developer Network (MSDN) |sprache=en |abruf=2018-03-02}}&amp;lt;/ref&amp;gt; außerdem beginnt die Reihenfolge, im Gegensatz zum DN, mit dem obersten Eintrag, also z.&amp;amp;nbsp;B. &amp;#039;&amp;#039;acme/de/webdesign/People/juser&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Jedes Attribut eines Objekts hat einen bestimmten [[Datentyp|Typ]] und einen oder mehrere Werte. Die Typenbezeichnungen der Attribute sind meist einfach zu merkende Kürzel, z.&amp;amp;nbsp;B.:&lt;br /&gt;
* &amp;#039;&amp;#039;cn&amp;#039;&amp;#039; für &amp;#039;&amp;#039;common name&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;sn&amp;#039;&amp;#039; für &amp;#039;&amp;#039;surname&amp;#039;&amp;#039; (Nachname)&lt;br /&gt;
* &amp;#039;&amp;#039;ou&amp;#039;&amp;#039; für &amp;#039;&amp;#039;organizational unit&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;st&amp;#039;&amp;#039; für &amp;#039;&amp;#039;state&amp;#039;&amp;#039; (Bundesstaat / -land)&lt;br /&gt;
* &amp;#039;&amp;#039;c&amp;#039;&amp;#039; für &amp;#039;&amp;#039;country&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;mail&amp;#039;&amp;#039; für &amp;#039;&amp;#039;e-mail address&amp;#039;&amp;#039;.&lt;br /&gt;
Die erlaubten Werte eines Attributs sind vom Typ abhängig. So könnte ein &amp;#039;&amp;#039;mail&amp;#039;&amp;#039;-Attribut die Adresse &amp;#039;&amp;#039;hans.wurst@example.com&amp;#039;&amp;#039; enthalten, ein &amp;#039;&amp;#039;jpegPhoto&amp;#039;&amp;#039;-Attribut dagegen würde ein Foto als [[Binärdatei|binäre]] Daten im [[JPEG File Interchange Format|JPEG-Format]] speichern. Die in der Objektklasse definierten Attribute können entweder obligatorisch (&amp;#039;&amp;#039;mandatory&amp;#039;&amp;#039;) oder optional sein.&lt;br /&gt;
&lt;br /&gt;
Die Objekte werden in einer hierarchischen Struktur gespeichert, die politische, geographische oder organisatorische Grenzen widerspiegelt. Die größten Einheiten werden an die Wurzel des [[Verzeichnisbaum]]es gestellt, der sich nach unten immer weiter auffächert. Während Objekte, die selbst Objekte enthalten, als &amp;#039;&amp;#039;Containerobjekte&amp;#039;&amp;#039; bezeichnet werden, heißen die „Enden“ des Baumes &amp;#039;&amp;#039;Blattobjekte&amp;#039;&amp;#039;.&amp;lt;ref&amp;gt;{{Internetquelle |autor=Patrick Schnabel |url=https://www.elektronik-kompendium.de/sites/net/0905011.htm |titel=Verzeichnisdienste (X.500) - Objekte (X.500) |werk=Elektronik Kompendium |abruf=2018-03-02}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:datenstruktur.png|mini|Baumstruktur der LDAP-Inhalte]]&lt;br /&gt;
&lt;br /&gt;
Wenn einzelne LDAP-Server für einzelne Teile des Verzeichnisbaumes zuständig sind, spricht man von &amp;#039;&amp;#039;Partitionen&amp;#039;&amp;#039;.&amp;lt;ref&amp;gt;{{Internetquelle |autor=The Apache Software Foundation |url=http://directory.apache.org/apacheds/basic-ug/1.4.3-adding-partition.html |titel=1.4.3 - Adding your own partition |werk=Apache Directory |datum=2018 |abruf=2018-03-02}}&amp;lt;/ref&amp;gt; Stellt ein Client eine Anfrage, für die der Server nicht zuständig ist, so kann der Server den Client an einen anderen Server verweisen.&lt;br /&gt;
&lt;br /&gt;
LDAP-Server lassen sich [[Redundanz (Technik)|redundant]] aufbauen. Hierzu wird oft eine [[Master-Slave]]-Konfiguration verwendet. Versucht ein Client, Daten auf einem Slave-Server zu ändern, so wird er an den Master verwiesen; die Änderungen auf dem Master-Server werden dann an alle Slave-Server weitergegeben.&lt;br /&gt;
&lt;br /&gt;
Da viele verschiedene Schemata in verschiedenen Versionen in Benutzung sind, ist die Vorstellung eines „globalen“ alles umfassenden LDAP-Verzeichnisses nicht real. LDAP-Server werden als zentraler Verzeichnisdienst für verschiedene Zwecke in verschiedenen Größen eingesetzt, die Objekthierarchie bleibt aber in der Regel auf eine Organisation beschränkt.&lt;br /&gt;
&lt;br /&gt;
=== Protokoll ===&lt;br /&gt;
LDAP ist ein Protokoll der Anwendungsschicht (&amp;#039;&amp;#039;Applicationlayer&amp;#039;&amp;#039;) nach dem für TCP verwendeten [[DoD-Schichtenmodell|DoD-Vier-Schichten-Modell]] und arbeitet mittels genau spezifizierter Zugriffs-Prozesse:&lt;br /&gt;
&lt;br /&gt;
; bind&lt;br /&gt;
: Mit der &amp;#039;&amp;#039;bind&amp;#039;&amp;#039;-Direktive vermittelt man dem Directory-Server über einen DN, wer den Zugriff durchführen möchte (entweder anonym, per Passwort-[[Authentifizierung]] oder anders)&lt;br /&gt;
; baseDN&lt;br /&gt;
: Die BaseDN definiert, wo im Verzeichnisbaum abwärts die Suche nach bestimmten Objekten gestartet werden soll. Die Suche kann festgelegt werden auf eine Suche über&lt;br /&gt;
:* genau dieses Objekt (&amp;#039;&amp;#039;base&amp;#039;&amp;#039;)&lt;br /&gt;
:* dieses Objekt und alles darunter (&amp;#039;&amp;#039;sub&amp;#039;&amp;#039;)&lt;br /&gt;
:* eine Ebene unterhalb des BaseDNs (&amp;#039;&amp;#039;one&amp;#039;&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
Ansonsten gelten die notwendigen Such-Spezifikationen wie Suchoperator (Beispiel &amp;#039;&amp;#039;(&amp;amp;amp;(mail=joe*)(ou=people))&amp;#039;&amp;#039;), Server-Benennung (z.&amp;amp;nbsp;B. &amp;#039;&amp;#039;ldap.acme.com&amp;#039;&amp;#039;) oder Port-Benennung.&lt;br /&gt;
&lt;br /&gt;
==== Beispiel ====&lt;br /&gt;
Beispiel für eine LDAP-Suchanfrage durch ein Kommandozeilenprogramm:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ldapsearch -h ldap.acme.com -p 389 -s sub -D &amp;quot;cn=Directory Manager,o=acme&amp;quot; -W -b &amp;quot;ou=people,o=acme&amp;quot; &amp;quot;(&amp;amp;amp;(mail=joe*)(c=de))&amp;quot; mail&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erklärung: Das Kommandozeilenprogramm kontaktiert über LDAP&lt;br /&gt;
* den Directory-Server (d.&amp;amp;nbsp;h. den [[Hostrechner|Host]], deswegen das&amp;amp;nbsp;-h) &amp;lt;code&amp;gt;ldap.acme.com&amp;lt;/code&amp;gt;&lt;br /&gt;
* auf [[Port (Netzwerkadresse)|Port]] &amp;lt;code&amp;gt;389&amp;lt;/code&amp;gt;&lt;br /&gt;
* und meldet sich über das [[Benutzerkonto]] des &amp;lt;code&amp;gt;Directory Managers&amp;lt;/code&amp;gt; an diesem System an;&lt;br /&gt;
* das Passwort wird [[interaktiv]] abgefragt (&amp;lt;code&amp;gt;-W&amp;lt;/code&amp;gt;).&lt;br /&gt;
* Die Anfrage zielt auf alle Benutzereinträge (&amp;lt;code&amp;gt;-s sub&amp;lt;/code&amp;gt;, d.&amp;amp;nbsp;h. unterhalb, des Zweiges (englisch &amp;#039;&amp;#039;branch&amp;#039;&amp;#039;, daher das&amp;amp;nbsp;-b) &amp;lt;code&amp;gt;ou=people,o=acme&amp;lt;/code&amp;gt;)&lt;br /&gt;
* und sucht nach Personen aus Deutschland, deren Mailadresse mit &amp;lt;code&amp;gt;joe&amp;lt;/code&amp;gt; beginnt (&amp;lt;code&amp;gt;(&amp;amp;amp;(mail=joe*)(c=de))&amp;lt;/code&amp;gt;).&lt;br /&gt;
* Werden Personen gefunden, auf die dieser [[Filter (Software)|Filter]] passt, so wird deren Mailadresse zurückgegeben (&amp;lt;code&amp;gt;mail&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Anwendungen ==&lt;br /&gt;
LDAP wird heutzutage in vielen Bereichen eingesetzt, beispielsweise:&lt;br /&gt;
* in Adressbuch-Software wie [[Apple Adressbuch]], [[HCL Notes]], [[Microsoft Outlook]], [[Mozilla Thunderbird]], [[Novell Evolution]], der [[OpenOffice.org]]- und [[LibreOffice]]-[[Serienbrief]]&amp;lt;nowiki /&amp;gt;erstellung und dem Mailprogramm [[The Bat]]&lt;br /&gt;
* in [[Benutzerverwaltung]]s-Software wie [[NetIQ eDirectory]], [[Apple Open Directory]], [[Portable Operating System Interface|POSIX]]-Benutzerkonten, Microsoft [[Active Directory Service]]&lt;br /&gt;
* in Authentifizierungs-Software wie [[Pluggable Authentication Modules|PAM]]&lt;br /&gt;
* zur Verwaltung von Benutzerdaten für [[SMTP]]-, [[Post Office Protocol|POP]]- und [[Internet Message Access Protocol|IMAP]]-Server sowie in folgenden [[Mailserver]]n: [[Postfix (Mail Transfer Agent)|postfix]], [[qmail]], [[exim]], [[Lotus Domino]], [[sendmail]], [[Cyrus (Server)|Cyrus]], [[Courier Mail Server|Courier]]; auch in den dazugehörigen [[Spam#Gegenmaßnahmen|Antispam]]-Aufsätzen [[SpamAssassin]] und [[Amavisd]].&lt;br /&gt;
&lt;br /&gt;
=== LDAP und hierarchische Datenbanken ===&lt;br /&gt;
LDAP agiert als [[Front-End und Back-End|Frontend]] zu [[Hierarchisches Datenbankmodell|hierarchischen Datenbanken]]. LDAP an sich ist keine Datenbank, sondern lediglich das Protokoll zur Kommunikation.&lt;br /&gt;
&lt;br /&gt;
=== Potentielle Probleme ===&lt;br /&gt;
==== Keine Normalformen ====&lt;br /&gt;
Hierarchische Datenbanken erzwingen keine [[Normalisierung (Datenbank)|Normalformen]], z.&amp;amp;nbsp;B. können &amp;#039;&amp;#039;multivalued attributes&amp;#039;&amp;#039; erlaubt sein.&lt;br /&gt;
&lt;br /&gt;
==== Abfragesprache ====&lt;br /&gt;
LDAP unterstützt nicht alle [[Relationale Algebra|relationalen Operationen]]:&lt;br /&gt;
* [[Relationale Algebra #Projektion|Projektion]] (Spaltenauswahl): wird unterstützt, allerdings nur ohne Erzeugung errechneter Attribute&lt;br /&gt;
* [[Relationale Algebra #Selektion|Selektion]] (Zeilenauswahl): wird unterstützt&lt;br /&gt;
* [[Relationale Algebra #Kartesisches Produkt (Kreuzprodukt)|Kreuzprodukt]] ([[Relationale Algebra #Join|JOIN]]): wird nicht unterstützt&lt;br /&gt;
* Spaltenumbenennung (Rename, AS): wird nicht unterstützt (es gibt keinen „[[Dereferenzierung|Dereferenziere]] diesen DN“-Operator, damit existiert auch kein &amp;#039;&amp;#039;Selfjoin&amp;#039;&amp;#039;)&lt;br /&gt;
* [[Aggregation (Informatik)#Datenbank|Aggregation]] (GROUP BY): muss mit [[Schleife (Programmierung)|Schleifen]] im Client auscodiert werden.&lt;br /&gt;
&lt;br /&gt;
Anders als [[SQL]] ist die LDAP-[[Abfragesprache]] keine [[Algebra]], weil ihr die [[Abgeschlossenheit (algebraische Struktur)|Abgeschlossenheit]] fehlt: Abfrageergebnisse von LDAP-Anfragen sind keine LDAP-Bäume, sondern [[Knotenmenge]]n; daher ist die LDAP-Abfragesprache auch nicht auf LDAP-Ergebnisse anwendbar, um sie zu verfeinern.&lt;br /&gt;
&lt;br /&gt;
=== Stärken ===&lt;br /&gt;
==== Autorisierung und Authentifizierung ====&lt;br /&gt;
Das Protokoll und LDAP-Server sind auf Authentifizierung (Passwortprüfung), Autorisierung (Rechteprüfung) und Adressbuch-Suchen optimiert. Der schnelle Verbindungsauf- und -abbau, das einfach strukturierte Protokoll und die knappe Abfragesprache sorgen für eine schnelle Verarbeitung.&lt;br /&gt;
&lt;br /&gt;
==== Schneller Lesezugriff ====&lt;br /&gt;
Durch seine nicht normalisierte Datenspeicherung kann auf alle Daten eines LDAP-Datensatzes sehr schnell zugegriffen werden, weil alle Daten sofort mit einem einzigen [[Lesezugriff]] ausgelesen werden können.&lt;br /&gt;
&lt;br /&gt;
==== Verteilte Datenhaltung ====&lt;br /&gt;
LDAP bietet [[Mehrrechner-Datenbanksystem|verteilte]] Datenhaltung, z.&amp;amp;nbsp;B. redundante lokale Datenspeicherung an verteilten Standorten, [[Lose Kopplung|lose gekoppelte]] [[Replikation (Datenverarbeitung)|Replikation]] zum [[Datenabgleich]] zwischen den Standorten und [[Hochverfügbarkeit|extrem hohe Verfügbarkeit]] ohne komplexe Konfiguration oder hohe Kosten.&lt;br /&gt;
&lt;br /&gt;
==== Flexibles, voll objektorientiertes Datenmodell ====&lt;br /&gt;
LDAP erbt vom X.500-Standard das [[Objektorientierung|objektorientierte]] Datenmodell. Damit können LDAP-Verzeichnisse flexibel an volatile Anforderungen angepasst werden, ohne dass bereits im Verzeichnis implementierte Funktionalität verlorengeht.&lt;br /&gt;
&lt;br /&gt;
== LDAP-Software ==&lt;br /&gt;
=== LDAP-Server ===&lt;br /&gt;
Viele Hersteller bieten LDAP-Server, beispielsweise:&lt;br /&gt;
* [[Apache Software Foundation]] ([[Free/Libre Open Source Software|FLOSS]]-Variante [[Apache Directory Server]])&lt;br /&gt;
* [[Apple]] (durch [[Apple Open Directory|Open Directory]])&lt;br /&gt;
* [[Atos SE|Atos]] (durch DirX Directory Server; übernommen von [[Siemens]] IT Solutions and Services)&lt;br /&gt;
* [[ForgeRock]] (Weiterentwicklung eines Sun-Forks seit der Übernahme von [[Sun Microsystems|Sun]] durch [[Oracle]] 2010)&lt;br /&gt;
* [[HCL Technologies]] (durch Tivoli Directory Server bzw. HCL Domino Server mit LDAP-Task)&lt;br /&gt;
* [[Microsoft]] (durch [[Active Directory]] beziehungsweise ADAM) (Service wird installiert, wenn Windows zum [[Domain Controller]] wird)&lt;br /&gt;
* [[Novell]] (durch [[Novell Directory Services|eDirectory]])&lt;br /&gt;
* [[OpenLDAP]] (FLOSS-Variante für eine Vielzahl unterschiedlicher [[Plattform (Computer)|Plattformen]])&lt;br /&gt;
* [[Oracle]] (durch &amp;#039;&amp;#039;Oracle Internet Directory&amp;#039;&amp;#039;)&lt;br /&gt;
* [[Red Hat]] (FLOSS-Variante [[389 Directory Server]])&lt;br /&gt;
* [[Sun Microsystems|Sun]] (durch Sun Java System Directory Server; übernommen durch Oracle)&lt;br /&gt;
* [[Univention Corporate Server|Univention]] (durch Univention Corporate Server (UCS) mit [[OpenLDAP]])&lt;br /&gt;
&lt;br /&gt;
=== LDAP-Clients ===&lt;br /&gt;
Client-Software erlaubt den Zugriff auf die Verzeichnisdaten, zum Beispiel:&lt;br /&gt;
* [[cURL]]: quelloffenes Kommandozeilenwerkzeug, das auch LDAP unterstützt.&amp;lt;ref&amp;gt;{{RFC-Internet |RFC=1959 |Titel=An LDAP URL Format |Datum=}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* [https://technet.microsoft.com/en-us/sysinternals/bb963907.aspx Active Directory Explorer]: Ein kostenloser LDAP-Client von [[Sysinternals]] für [[Microsoft Windows|Windows]]&lt;br /&gt;
* [[JXplorer]]: quelloffener Client, der in Java entwickelt wurde.&lt;br /&gt;
* [http://www.ldapbrowser.com/download.htm LDAP Browser]: Ein kostenloser LDAP-Client für Windows&lt;br /&gt;
* [http://www.ldapadministrator.com/download.htm LDAP Administrator]: Ein erweitertes LDAP-Verwaltungstool, das zur Arbeit mit fast allen LDAP-Servern entwickelt wurde einschließlich Active Directory, Novell Directory Services, Netscape/iPlanet usw.&lt;br /&gt;
* [http://ldapadmin.sourceforge.net/ LDAP Admin]: LDAP-Client, der zur Arbeit unter Windows entwickelt wurde.&lt;br /&gt;
* [http://directory.apache.org/studio/ {{lang|en|Apache Directory Studio}}]: Ein plattformübergreifender Client, der in Java von Apache Software Foundation entwickelt wurde.&lt;br /&gt;
* [http://sourceforge.net/projects/gqclient/ GQ]: Client, der in GTK+/GTK2 unter GPL für [[GNU/Linux]] entwickelt wurde.&lt;br /&gt;
* [[LDAP Account Manager]]: Webfrontend für die Verwaltung diverser Kontotypen in einem LDAP-Verzeichnis. Es wurde in [[PHP]] geschrieben.&lt;br /&gt;
* [http://luma.sourceforge.net/ Luma]: QT4-basierter Client für Linux. Der Einsatz von Plugins ermöglicht eine einfache Verwaltung von Benutzerkonten, Adressbücher usw.&lt;br /&gt;
* [http://phpldapadmin.sourceforge.net/ phpLDAPadmin]: Ein plattformübergreifender webbasierter Client, der unter GPL in PHP zur einfachen Verwaltung von LDAP-Verzeichnissen entwickelt wurde.&lt;br /&gt;
* [http://www.fusiondirectory.org/ FusionDirectory]: GPL-lizenzierte Web-Anwendung, die in PHP zum einfachen Verwalten von LDAP-Verzeichnissen und allen dazugehörenden Diensten entwickelt wurde. Es hat sich zu einem [[Identitätsmanagement|IDM]] entwickelt.&amp;lt;ref&amp;gt;{{Internetquelle |url=https://www.fusiondirectory.org/quest-ce-que-fusiondirectory/ |titel=Qu’est-ce que FusionDirectory ? |werk=Fusiondirectory est une solution de gestion des identités |sprache=fr |archiv-url=https://web.archive.org/web/20200804075315/https://www.fusiondirectory.org/quest-ce-que-fusiondirectory/ |archiv-datum=2020-08-04 |abruf=2021-01-29}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* [http://ldap-csvexport.sourceforge.net/ ldap-csvexport]: GPL-lizenziertes, Perl-Kommandozeilentool für den Export von LDAP-Daten als CSV mit vielen Features.&lt;br /&gt;
* [http://ldap-re-replace.sourceforge.net/ ldap-preg_replace]: GPL-lizenziertes, Perl-Kommandozeilentool für das massenhafte Ändern von Attributen mit [[Regexp|regulären Ausdrücken]].&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Kerberos (Protokoll)|Kerberos]]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* {{Literatur&lt;br /&gt;
   |Autor=Dieter Klünter, Jochen Laser&lt;br /&gt;
   |Titel=LDAP verstehen, OpenLDAP einsetzen&lt;br /&gt;
   |TitelErg=Grundlagen und Praxiseinsatz&lt;br /&gt;
   |Verlag=dpunkt.verlag&lt;br /&gt;
   |Ort=Heidelberg&lt;br /&gt;
   |Datum=2007&lt;br /&gt;
   |ISBN=978-3-89864-263-7}}&lt;br /&gt;
* {{Literatur&lt;br /&gt;
   |Autor=Gerald Carter&lt;br /&gt;
   |Titel=LDAP System Administration&lt;br /&gt;
   |Verlag=O’Reilly&lt;br /&gt;
   |Datum=2003}}&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://quark.humbug.org.au/publications/ldap/ldap_tut_v2.pdf Introduction to LDAP.] (PDF; 2,4&amp;amp;nbsp;MB) quark.humbug.org.au&lt;br /&gt;
* [http://www.linux-magazin.de/heft_abo/ausgaben/2001/05/straffe_verwaltung Einführender Artikel zu OpenLDAP.] In: &amp;#039;&amp;#039;Linux Magazin&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references responsive&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;RFC2251&amp;quot;&amp;gt;&lt;br /&gt;
{{RFC-Internet |RFC=2251 |Titel=Lightweight Directory Access Protocol (v3) |Datum=1997-12}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Normdaten|TYP=s|GND=4537748-0|LCCN=sh2001008354}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Internet-Anwendungsprotokoll]]&lt;br /&gt;
[[Kategorie:Open Group]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Wassermaus</name></author>
	</entry>
</feed>