Leichtes Verzeichniszugriffsprotokoll
Kommunikationsprotokoll | |
Zweck | Verzeichnisdienst |
---|---|
Bezogen auf | X.500 |
Häfen) | 389 (LDAP), 636 (LDAPs) |
RFC (s) | RFC 4510, RFC 4511 |
Das Leichtes Verzeichniszugriffsprotokoll (LDAP /ˈɛldæp/) ist ein offener, verstelligneutraler Branchenstandard Anwendungsprotokoll Für den Zugriff und die Wartung verteilt Verzeichnisinformationsdienste über ein Internetprotokoll (IP) Netzwerk.[1] Verzeichnisdienste spielen eine wichtige Rolle bei der Entwicklung Intranet und Internetanwendungen, indem Informationen über Benutzer, Systeme, Netzwerke, Dienste und Anwendungen im gesamten Netzwerk geteilt werden.[2] Als Beispiele können Verzeichnisdienste alle organisierten Datensätze bereitstellen, häufig mit einer hierarchischen Struktur, wie z. B. einem Unternehmen Email Verzeichnis. Ebenso a Telefonbuch ist eine Liste von Abonnenten mit einer Adresse und einer Telefonnummer.
LDAP ist in einer Reihe von angegeben Internettechnik-Arbeitsgruppe (IETF) Standard -Track -Veröffentlichungen genannt Anfrage für Kommentare (RFCS) mit der Beschreibungssprache Asn.1. Die neueste Spezifikation ist Version 3, veröffentlicht als RFC 4511[3] (Eine Roadmap zu den technischen Spezifikationen wird von bereitgestellt RFC4510).
Eine häufige Verwendung von LDAP besteht darin, einen zentralen Ort zum Speichern von Benutzernamen und Passwörtern bereitzustellen. Auf diese Weise können viele verschiedene Anwendungen und Dienste eine Verbindung zum LDAP -Server herstellen, um Benutzer zu validieren.[4]
LDAP basiert auf einer einfacheren Teilmenge der in der enthaltenen Standards X.500 Standard. Aufgrund dieser Beziehung wird LDAP manchmal X.500-Lite genannt.[5]
Geschichte
Das Verständnis der Telekommunikationsunternehmen für Verzeichnisanforderungen wurde nach 70 Jahren der Erzeugung und Verwaltung von Telefonverzeichnissen gut entwickelt. Diese Unternehmen führten das Konzept der Verzeichnisdienste vor Informationstechnologie und Computernetzwerk, ihr Eingang leistet in der umfassenden X.500 Spezifikation,[6] Eine Reihe von Protokollen, die von der produziert werden Internationale Telekommunikationsunion (ITU) in den 1980er Jahren.
X.500 Directory Services wurden traditionell über das X.500 zugegriffen Verzeichniszugriffsprotokoll (DAP), was die erforderte Offene Systemverbindung (OSI) Protokollstapel. LDAP sollte ursprünglich ein leichtes alternatives Protokoll für den Zugriff auf X.500 -Verzeichnisdienste durch einfacher sein (und jetzt weit verbreitet) TCP/IP Protokollstapel. Dieses Modell des Verzeichniszugriffs wurde von der ausgeliehen Dixie und Verzeichnishilfedienst Protokolle.
Das Protokoll wurde ursprünglich erstellt[7] durch Tim Howes des Universität von Michigan, Steve Kille von isode begrenzt, Colin Robbins von Nexor und Wengyik Yeong von Performance Systems International, circa 1993, als Nachfolger[8] zu Dixie und Das. Mark Wahl von Critical Angle Inc., Tim Howes und Steve Kille begannen 1996 mit einer neuen Version von LDAP, LDAPV3, unter der Aegis der Internettechnik-Arbeitsgruppe (IETF). LDAPV3, das 1997 erstmals veröffentlicht wurde, ersetzte LDAPV2 und fügte Unterstützung für Erweiterbarkeit hinzu, integrierte die Einfache Authentifizierung und Sicherheitsschichtund stimmte das Protokoll besser auf die Ausgabe von X.500 aus. Weiterentwicklung der LDAPV3 -Spezifikationen selbst und zahlreiche Erweiterungen, die Features zu LDAPV3 hinzufügen, ist durch die gekommen Ietf.
In den frühen Ingenieurstadien von LDAP wurde es als bekannt als bekannt als Leichtes Verzeichnis -Browserprotokoll, oder LDBP. Es wurde mit der Ausdehnung des Umfangs des Protokolls über das durch das Verzeichnis stürmende und suchende Suchen umbenannt, um Verzeichnis -Update -Funktionen einzuschließen. Es wurde seine gegeben Leicht Name, weil es nicht so netzwerkintensiv war wie sein DAP -Vorgänger und somit aufgrund seiner relativ bescheidenen Bandbreitennutzung leichter im Internet implementiert wurde.
LDAP hat nachfolgende Internetprotokolle beeinflusst, einschließlich späterer Versionen von X.500, XML -aktiviertes Verzeichnis (Xed), Directory Service Markup Sprache (DSML), Dienstbereitstellung Markup -Sprache (SPML) und die Servicestandortprotokoll (SLP). Es wird auch als Grundlage für verwendet Microsoft's Active Directory.
Protokollübersicht
Ein Client startet eine LDAP Verzeichnissystem Agent (DSA) standardmäßig auf TCP und UDP Hafen 389 oder auf Port 636 für LDAPs (LDAP über TLS/SSL, siehe unten).[9] Der Client sendet dann eine Betriebsanforderung an den Server, und ein Server sendet die Antworten im Gegenzug. Mit einigen Ausnahmen muss der Client nicht auf eine Antwort warten, bevor die nächste Anfrage gesendet wird, und der Server kann die Antworten in jeder Reihenfolge senden. Alle Informationen werden mithilfe von übertragen Grundlegende Codierungsregeln (Ber).
Der Kunde kann die folgenden Vorgänge anfordern:
- Starttls - Verwenden Sie den LDAPV3 Transportschichtsicherheit (TLS) Erweiterung für eine sichere Verbindung
- Binden - authentifizieren und Geben Sie die LDAP -Protokollversion an
- Suche - Suchen Sie nach und/oder abrufen Verzeichniseinträge
- Vergleichen - Test, wenn ein benacherter Eintrag einen bestimmten Attributwert enthält
- Fügen Sie einen neuen Eintrag hinzu
- Einen Eintrag löschen
- Ändern Sie einen Eintrag
- Ändern Sie den Distinguished Name (DN) - verschieben oder benennen Sie einen Eintrag um
- Aufgeben - eine frühere Anfrage abbrechen
- Erweiterter Betrieb - Generischer Betrieb, der zur Definition anderer Operationen verwendet wird
- Unbind - Schließen Sie die Verbindung (nicht die Umkehrung der Bindung)
Zusätzlich kann der Server "unerwünschte Benachrichtigungen" senden, die keine Antworten auf eine Anfrage sind, z. Bevor die Verbindung zeitlich festgelegt ist.
Eine gemeinsame alternative Methode zur Sicherung der LDAP -Kommunikation ist die Verwendung eines SSL Tunnel. Der Standardport für LDAP über SSL beträgt 636. Die Verwendung von LDAP über SSL war in LDAP -Version 2 (LDAPV2) häufig, aber er war in keiner formalen Spezifikation standardisiert. Diese Verwendung wurde zusammen mit LDAPV2 veraltet, der 2003 offiziell in den Ruhestand ging.[10]
Verzeichnisaufbau
Das Protokoll bietet eine Schnittstelle mit Verzeichnissen, die der Ausgabe von 1993 von The folgen X.500 Modell:
- Ein Eintrag besteht aus einer Reihe von Attributen.
- Ein Attribut hat einen Namen (ein Attributtyp oder Attributbeschreibung) und eine oder mehrere Werte. Die Attribute sind in a definiert Schema (siehe unten).
- Jeder Eintrag hat eine eindeutige Kennung: ITS Distinguished Name (DN). Dies besteht aus seiner Relativ angesehener Name (RDN), erstellt aus einigen Attribut (en) im Eintrag, gefolgt von der DN des übergeordneten Eintrags. Stellen Sie sich den DN als das vor Vollständiger Dateipfad und die RDN als relatives Dateiname in seinem übergeordneten Ordner (z. B. wenn
/foo/bar/myFile.txt
waren dann der DN, dannmyFile.txt
wäre das RDN).
Ein DN kann sich während der Lebensdauer des Eintrags ändern, beispielsweise, wenn die Einträge innerhalb eines Baumes bewegt werden. Einträge zuverlässig und eindeutig identifizieren, a Uuid könnte im Satz des Eintrags bereitgestellt werden Betriebsattribute.
Ein Eintrag kann so aussehen, wenn sie in dargestellt werden LDAP -Datenwechselformat (LDIF) (LDAP selbst ist a Binärprotokoll):
DN: CN = John Doe, DC = Beispiel, DC = Com Cn: John Doe gegebenen Namen: John Sn: Doe Telefonnummer: +1 888 555 6789 Telefonnummer: +1 888 555 1232 Mail: [email protected] Manager: CN = Barbara DOE, DC = Beispiel, DC = Com ObjectClass: Inetorgperson ObjectClass: organisationPerson ObjectClass: Person ObjectClass: Top
"dn
"Ist der angesehene Name des Eintrags; es ist weder ein Attribut noch ein Teil des Eintrags."CN = John Doe
"Ist der RDN des Eintrags (relativ angesehener Name) und"dc = Beispiel, dc = com
"Ist der DN des übergeordneten Eintrags, wo"DC
"bezeichnet ''Domänenkomponente'. Die anderen Zeilen zeigen die Attribute im Eintrag. Attributnamen sind normalerweise mnemonische Zeichenfolgen wie "CN
"Für den gebräuchlichen Namen", "DC
"Für die Domänenkomponente", "Post
"Für E-Mail-Adresse und"sn
"Für den Nachnamen.
Ein Server enthält einen Unterbaum, der von einem bestimmten Eintrag beginnt, z. "dc = Beispiel, dc = com
"Und seine Kinder. Server können auch Hinweise auf andere Server haben, also einen Versuch, zugreifen zu können."ou = Abteilung, dc = Beispiel, dc = com
"könnte a zurückgeben Verweisung oder Fortsetzungsreferenz an einen Server, der diesen Teil des Verzeichnisbaums hält. Der Client kann dann den anderen Server kontaktieren. Einige Server unterstützen auch VerkettungDies bedeutet, dass der Server den anderen Server kontaktiert und die Ergebnisse an den Client zurückgibt.
LDAP definiert selten jede Bestellung: Der Server kann die Werte eines Attributs, die Attribute in einem Eintrag und die Einträge, die von einem Suchvorgang in jeder Reihenfolge gefunden wurden, zurückgeben. Dies folgt aus den formalen Definitionen - ein Eintrag wird als ein definiert einstellen von Attributen, und ein Attribut ist eine Reihe von Werten, und Sätze müssen nicht geordnet werden.
Operationen
Hinzufügen
Der Betrieb hinzufügen fügt einen neuen Eintrag in die Datenbank für Verzeichnisserver ein.[11] Wenn der ausgezeichnete Name in der Add -Anfrage im Verzeichnis bereits vorhanden ist, fügt der Server keinen doppelten Eintrag hinzu, sondern setzt den Ergebniscode im Add -Ergebnis auf Dezimalzahl 68, "EntryalReadyexists".[12]
- LDAP-konforme Server werden den unterschiedenen Namen niemals in der Add-Anfrage unter der Versuch, den Eintrag zu lokalisieren, dh unterschiedene Namen niemals abgestimmt.
- LDAP-konforme Server stellen sicher, dass der angesehene Name und alle Attribute den Namensstandards entsprechen.
- Der hinzugefügte Eintrag muss nicht existieren, und der unmittelbare Vorgesetzte muss existieren.
DN: uid = user, ou = people, dc = Beispiel, DC = Com Changetype: Objektklasse hinzufügen: Top-Objektklasse: Person UID: Benutzer SN: Last-Namen CN: Common-Nam-Benutzerpasswort: Passwort: Passwort
Im obigen Beispiel, uid = user, ou = people, dc = Beispiel, dc = com
muss nicht existieren und ou = people, dc = Beispiel, dc = com
Muss existieren.
Binden (authentifizieren)
Wenn eine LDAP -Sitzung erstellt wird, dh, wenn ein LDAP -Client eine Verbindung zum Server herstellt, die Authentifizierungszustand der Sitzung ist auf anonym eingestellt. Die Bind -Operation legt den Authentifizierungszustand für eine Sitzung fest.
Einfache Bindung und SASL -Ebene können den DN des Benutzers und das Passwort in Senden Klartext, also sollten die Verbindungen, die entweder einfach oder SASL -Ebene verwenden, verschlüsselt werden Transportschichtsicherheit (TLS). Der Server überprüft das Passwort normalerweise mit dem Benutzer-Passwort
Attribut im benannten Eintrag. Anonymous Bind (mit leerem DN und Passwort) setzt die Verbindung zum anonymen Zustand zurück.
Sasl (Einfache Authentifizierung und Sicherheitsschicht) Bind bietet Authentifizierungsdienste über eine Vielzahl von Mechanismen, z. Kerberos oder der Client -Zertifikat mit TLS gesendet.[13]
Bind legt auch die LDAP -Protokollversion fest, indem eine Versionsnummer in Form einer Ganzzahl gesendet wird. Wenn der Client eine Version anfordert, die der Server nicht unterstützt, muss der Server den Ergebniscode in der BIND -Antwort auf den Code für einen Protokollfehler festlegen. Normalerweise sollten Clients LDAPV3 verwenden, was die Standardeinstellung im Protokoll ist, jedoch nicht immer in LDAP -Bibliotheken.
Bind musste die erste Operation in einer Sitzung in LDAPV2 sein, ist jedoch ab LDAPV3 nicht erforderlich. In LDAPV3 ändert jede erfolgreiche BIND -Anforderung den Authentifizierungsstatus der Sitzung und jede erfolglose Bindungsanforderung setzt den Authentifizierungsstatus der Sitzung zurück.
Löschen
Um einen Eintrag zu löschen, überträgt ein LDAP -Client eine ordnungsgemäß gebildete Löschenanforderung an den Server.[14]
- Eine Löschanforderung muss den ausgezeichneten Namen des zu gelöschten Eintrags enthalten
- Anforderungssteuerelemente können auch an die Anforderung gelöscht werden
- Server sind bei der Bearbeitung einer Löschanforderung keine Aliase
- Nur Blatteinträge (Einträge ohne Untergebene) können durch eine Löschanforderung gelöscht werden. Einige Server unterstützen ein operatives Attribut
Hassubordinaten
deren Wert zeigt an, ob ein Eintrag untergeordnete Einträge hat, und einige Server unterstützen ein operatives Attributnumsubordinaten
[15] Angeben der Anzahl der Einträge, die dem Eintrag untergeordnet sind, der die enthältnumsubordinaten
Attribut. - Einige Server unterstützen die Steuerung des Subtree -Löschanforderungen, die die Löschung des DN und alle Objekte, die dem DN untergeordnet sind, zulässt, unterliegt den Zugriffskontrollen. Löschanfragen unterliegen den Zugriffskontrollen, dh ob eine Verbindung mit einem bestimmten Authentifizierungsstatus zugelassen ist, einen bestimmten Eintrag zu löschen.
Suchen und vergleichen
Die Suchoperation wird verwendet, um sowohl nach Einträgen zu suchen als auch zu lesen. Seine Parameter sind:
- BaseObject
- Der Name des Basisobjekteintrags (oder möglicherweise der Root) relativ, zu dem die Suche durchgeführt werden soll.
- Umfang
- Welche Elemente unter dem BasisObject zu suchen. Das kann sein
BaseObject
(Suchen Sie nur den benannten Eintrag, der normalerweise zum Lesen eines Eintrags verwendet wird.)Singlelevel
(Einträge unmittelbar unter dem Basis DN) oderWholesuBtree
(der gesamte Unterbaum an der Basis DN). - Filter
- Kriterien für die Auswahl von Elementen innerhalb des Umfangs. Zum Beispiel der Filter
(& (ObjectClass = Person) (| (gegebeneName = John) (Mail = John*)))
Wählt "Personen" (Elemente der ObjektklassePerson
) wo die Übereinstimmung Regeln fürVorname
undPost
Bestimmen Sie, ob die Werte für diese Attribute mit der Filterbehandlung übereinstimmen. Beachten Sie, dass ein häufiges Missverständnis darin besteht, dass LDAP-Daten von Fall sensitiv sind, während die Übereinstimmungsregeln und Bestellregeln die Übereinstimmungen, Vergleiche und relative Wertbeziehungen bestimmen. Wenn die Beispielfilter erforderlich waren, um den Fall des Attributwerts zu entsprechen, ist ein Erweiterbarer Übereinstimmungfilter muss zum Beispiel verwendet werden,.
- Derefalien
- Ob und wie man Alias -Einträge befolgt (Einträge, die sich auf andere Einträge beziehen),
- Attribute
- Welche Attribute in Ergebniseinträgen zurückgeben.
- Sizelimit, Timelimit
- Maximale Anzahl von Einträgen, die zurückgegeben werden sollen, und maximale Zeit, um die Suche auszuführen. Diese Werte können jedoch keine Einschränkungen überschreiben, die der Server auf Größengrenze und Frist platziert.
- typen
- Rückgabeattributtypen nur, keine Attributwerte.
Der Server gibt die übereinstimmenden Einträge und potenziell fortlaufenden Referenzen zurück. Diese können in jeder Reihenfolge zurückgegeben werden. Das Endergebnis enthält den Ergebniscode.
Die Vergleichsoperation nimmt einen DN, einen Attributnamen und einen Attributwert an und prüft, ob der benannte Eintrag dieses Attribut mit diesem Wert enthält.
Ändern
Der Änderungsvorgang wird von LDAP -Clients verwendet, um zu fordern, dass der LDAP -Server Änderungen an vorhandenen Einträgen vornimmt.[16] Versuche, Einträge zu ändern, die nicht existieren, schließen fehl. Ändern von Anforderungen unterliegen den vom Server implementierten Zugriffskontrollen.
Die Änderung der Änderung erfordert, dass der ausgezeichnete Name (DN) des Eintrags angegeben wird und eine Abfolge von Änderungen. Jede Änderung der Sequenz muss einer von: sein:
- Fügen Sie hinzu (fügen Sie einen neuen Wert hinzu, der im Attribut noch nicht vorhanden sein darf)
- Löschen (einen vorhandenen Wert löschen)
- Ersetzen (ersetzen Sie einen vorhandenen Wert durch einen neuen Wert)
Ldif Beispiel für das Hinzufügen eines Wertes zu einem Attribut:
DN: DC = Beispiel, DC = COM Changetype: Modify Add: CN CN: The New-CN-Wert zu-BE-Added-
Verwenden Sie das Wert eines vorhandenen Attributs, um den Wert eines vorhandenen Attributs zu ersetzen ersetzen
Stichwort. Wenn das Attribut mehrfach bewertet ist, muss der Client den Wert des zu aktualisierenden Attributs angeben.
Verwenden Sie das Schlüsselwort, um ein Attribut aus einem Eintrag zu löschen löschen
und der Changetype -Bezeichner ändern
. Wenn das Attribut mehrfach bewertet ist, muss der Client den Wert des zu löschenden Attributs angeben.
Es gibt auch eine Modify-Increment-Erweiterung[17] Dadurch kann ein inkrementierbarer Attributwert durch einen bestimmten Betrag erhöht werden. Das folgende Beispiel unter Verwendung von LDIF -Inkrementen Mitarbeiternummer
durch 5
:
DN: uid = user.0, ou = people, dc = Beispiel, DC = Com Changetype: Ändern Sie Inkrement: EmployeNumber EmployeEnumber: 5 -
Wenn sich LDAP-Server in einer replizierten Topologie befinden, sollten LDAP-Clients in Betracht ziehen, die Post-Read-Steuerung zu verwenden, um Updates anstelle einer Suche nach einem Update zu überprüfen.[18] Die Post-Lead-Steuerung ist so konzipiert, dass Anwendungen nach einem Update keine Suchanforderung ausstellen müssen. Es ist ein schlecht eventuelle Konsistenz Modell. Ein LDAP-Client sollte nicht davon ausgehen, dass er für jede Anforderung eine Verbindung zum selben Verzeichnisserver herstellt, da Architekten möglicherweise Lastballer oder LDAP-Proxys oder beide zwischen LDAP-Clients und Servern platziert haben.
Ändern Sie DN
Ändern Sie den DN (MOVE/Umbenennen). Nimmt den neuen RDN (relativ ausgezeichneter Name), optional den DN des neuen Elternteils und ein Flag an, das angibt, ob der Wert (en) in dem Eintrag, der mit dem alten RDN übereinstimmt, löschen soll. Der Server kann die Umbenennung von gesamten Verzeichnis -Unterbäumen unterstützen.
Ein Aktualisierungsvorgang ist atomic: Andere Operationen werden entweder den neuen oder den alten Eintrag sehen. Andererseits definiert LDAP keine Transaktionen mehrerer Vorgänge: Wenn Sie einen Eintrag lesen und ihn dann ändern, hat ein anderer Client den Eintrag möglicherweise in der Zwischenzeit aktualisiert. Server können Erweiterungen implementieren[19] Das unterstützt dies jedoch.
Erweiterte Operationen
Der erweiterte Betrieb ist ein generischer LDAP -Betrieb, der neue Operationen definieren kann, die nicht Teil der ursprünglichen Protokollspezifikation waren. Starttls ist eine der wichtigsten Erweiterungen. Weitere Beispiele sind Abbrechen und Passwort ändern.
Starttls
Die Starttls -Operation legt fest Transportschichtsicherheit (der Nachkomme von SSL) auf der Verbindung. Es kann die Vertraulichkeit der Daten (zum Schutz von Daten vor der Beobachtung von Dritten) und/oder Datenintegritätsschutz (der die Daten vor Manipulationen schützt) bereitstellen. Während der TLS -Verhandlung sendet der Server seine X.509 Zertifikat, um seine Identität zu beweisen. Der Kunde kann auch ein Zertifikat senden, um seine Identität zu beweisen. Danach kann der Kunde dann verwenden Sasl/Extern. Durch die Verwendung des SASL/Externales fordert der Client den Server an, seine Identität aus Anmeldeinformationen auf einer niedrigeren Ebene (z. B. TLS) abzuleiten. Obwohl technisch der Server alle auf einer niedrigeren Ebene festgelegten Identitätsinformationen verwenden kann, verwendet der Server normalerweise die von TLS festgelegten Identitätsinformationen.
Server unterstützen häufig auch die nicht standardmäßigen "LDAPs" ("Secure LDAP", allgemein als "LDAP Over SSL") Protokoll auf einem separaten Port bekannt, standardmäßig 636. LDAPs unterscheidet Client und Server leiten TLS fest, bevor LDAP -Nachrichten übertragen werden (ohne Starttls) und 2) und 2), die LDAPS -Verbindung nach dem TLS -Abschluss geschlossen werden muss.
Einige "LDAPs" -Clientbibliotheken verschlüsseln nur die Kommunikation. Sie überprüfen den Hostnamen nicht gegen den Namen im angegebenen Zertifikat.[20]
Aufgeben
Die Operation des Aufhörens fordert, dass der Server eine von einer Nachrichten -ID benannte Operation abbricht. Der Server muss die Anfrage nicht ehren. Weder Hingabe noch eine erfolgreich aufgegebene Operation senden eine Antwort. Ein ähnlicher erweiterter Operation von Abbrechen sendet Antworten, aber nicht alle Implementierungen unterstützen dies.
Lösen
Die Unbind -Operation verlässt alle ausstehenden Operationen und schließt die Verbindung. Es hat keine Antwort. Der Name ist historischer Herkunft und ist nicht das Gegenteil der Bindungsoperation.[21]
Clients können eine Sitzung abbrechen, indem sie einfach die Verbindung schließen, sollten jedoch Unbind verwenden.[22] UnBind ermöglicht es dem Server, die Verbindung und freie Ressourcen, die er ansonsten für einige Zeit halten würde, bis er feststellt, dass der Client die Verbindung aufgegeben hat. Außerdem wird der Server angewiesen, Operationen zu stornieren, die storniert werden können, und keine Antworten für Operationen zu senden, die nicht storniert werden können.[23]
URI -Schema
Ein LDAP Einheitliche Ressourcenkennung (URI) Das Programm gibt es, das Kunden in unterschiedlichem Maße unterstützen, und die Server kehren in Empfehlungen und Fortsetzungsreferenzen zurück (siehe RFC 4516):
ldap: // host: port/dn? Attribute? Scope? Filter? Erweiterungen
Die meisten der unten beschriebenen Komponenten sind optional.
- Gastgeber ist der Fqdn oder IP -Adresse des LDAP -Servers zu suchen.
- Hafen ist der Netzwerkanschluss (Standardport 389) des LDAP -Servers.
- Dn ist der angesehene Name als Suchbasis.
- Attribute ist eine von Kommas getrennte Liste von Attributen zum Abrufen.
- Umfang Gibt den Suchbereich an und kann "Basis" (die Standardeinstellung), "eins" oder "Sub" sein.
- Filter ist ein Suchfilter. Zum Beispiel,
(Objektklasse =*)
wie in RFC 4515 definiert. - Erweiterungen sind Erweiterungen zum LDAP -URL -Format.
Zum Beispiel, "ldap: //ldap.example.com/cn=john%20doe,dc=example,dc=com
"Bezieht sich auf alle Benutzerattribute in John Does Eintrag in ldap.example.com
, während "LDAP: /// DC = Beispiel, dc = com? Sub? (GiveName = John)
"Suchen Sie nach dem Eintrag auf dem Standardserver (beachten Sie den Triple Slash, weglassen des Hosts und das Doppelfragebereich, die Attribute weglassen). Wie in anderen URLs müssen Sonderzeichen sein prozentualcodiert.
Es gibt einen ähnlichen nicht standardmäßigen LDAPs
URI -Schema für LDAP über SSL. Dies sollte nicht mit LDAP mit TLS verwechselt werden, was mit dem StartTLS -Vorgang mit dem Standard erreicht wird LDAP
planen.
Schema
Der Inhalt der Einträge in einem Subtree unterliegt a Verzeichnisschema, eine Reihe von Definitionen und Einschränkungen in Bezug auf die Struktur des Verzeichnisinformationsbaums (DIT).
Das Schema eines Verzeichnisservers definiert eine Reihe von Regeln, die die Art von Informationen regeln, die der Server aufnehmen kann. Es hat eine Reihe von Elementen, darunter:
- Attributsyntaxe - Informationen zu den Informationen über die Art von Informationen, die in einem Attribut gespeichert werden können.
- Übereinstimmende Regeln - Bereitstellung von Informationen darüber, wie Vergleiche mit Attributwerten hergestellt werden können.
- Übereinstimmende Regel verwendet - Indikat, welche Attributtypen in Verbindung mit einer bestimmten Übereinstimmungsregel verwendet werden können.
- Attributtypen - definieren Sie an Objektkennung (OID) und eine Reihe von Namen, die sich auf ein bestimmtes Attribut beziehen können, und Mitarbeiter, die mit einer Syntax und einer Reihe von Übereinstimmungsregeln zuschreiben.
- Objektklassen - definieren Sie benannte Sammlungen von Attributen und klassifizieren sie in Sätze von erforderlichen und optionalen Attributen.
- Namensformulare - Definieren Sie Regeln für die Reihe von Attributen, die für einen Eintrag in der RDN enthalten sein sollten.
- Inhaltsregeln - Definieren Sie zusätzliche Einschränkungen zu den Objektklassen und Attributen, die in Verbindung mit einem Eintrag verwendet werden können.
- Strukturregel - Definieren Sie Regeln, die die Arten der untergeordneten Einträge regeln, die ein bestimmter Eintrag haben kann.
Attribute sind die Elemente, die für das Speichern von Informationen in einem Verzeichnis verantwortlich sind, und das Schema definiert die Regeln, für die Attribute in einem Eintrag verwendet werden können, die Arten von Werten, die diese Attribute haben könnten, und wie Clients mit diesen Werten interagieren können.
Clients können sich über die Schemaelemente informieren, die der Server unterstützt, indem sie eine geeignete Untereinträge von Unterschemen abrufen.
Das Schema definiert Objektklassen. Jeder Eintrag muss über ein Objektklassenattribut verfügen, das benannte Klassen enthält, die im Schema definiert sind. Die Schema -Definition der Klassen eines Eintrags definiert, welche Art von Objekt der Eintrag darstellt kann - z. eine Person, Organisation oder Domäne. Die Objektklassendefinitionen definieren auch die Liste der Attribute, die Werte und die Liste der Attribute enthalten müssen, die Werte enthalten können.
Zum Beispiel kann ein Eintrag, der eine Person darstellt, zu den Klassen "Top" und "Person" gehören. Die Mitgliedschaft in der "Person" -Klasse erfordert, dass der Eintrag die Attribute "SN" und "CN" enthalten und dem Eintrag auch "Benutzerpasswort", "Telefonnummer" und andere Attribute enthalten können. Da Einträge möglicherweise mehrere Objektklassenwerte haben, hat jeder Eintrag einen Komplex für optionale und obligatorische Attributsätze, die aus der Vereinigung der von ihm dargestellten Objektklassen gebildet werden. Objektklassen können vererbt werden, und ein einzelner Eintrag kann mehrere Objektklassenwerte haben, die die verfügbaren und erforderlichen Attribute des Eintrags selbst definieren. Eine Parallele zum Schema einer Objektklasse ist a Klasse Definition und an Beispiel in Objekt orientierte ProgrammierungDarstellung von LDAP -Objektklassen bzw. LDAP -Eintrag.
Verzeichnisserver können das Verzeichnisschema veröffentlichen, das einen Eintrag an einem Basis -DN steuert, das durch das Subschemasubentry -Betriebsattribut des Eintrags gegeben wird. (Ein Betriebsattribut beschreibt den Betrieb des Verzeichnisses und nicht die Benutzerinformationen und wird nur von einer Suche zurückgegeben, wenn es ausdrücklich angefordert wird.)
Serveradministratoren können zusätzlich zu den bereitgestellten Schemaelementen zusätzliche Schemaeinträge hinzufügen. Ein Schema zur Vertretung einzelner Personen in Organisationen wird als a bezeichnet Weißes Seitenschema.
Variationen
Ein Großteil des Serverbetriebs bleibt dem Implementierer oder Administrator überlassen. Dementsprechend können Server eingerichtet werden, um eine Vielzahl von Szenarien zu unterstützen.
Beispielsweise wird der Datenspeicher auf dem Server nicht angegeben - der Server kann Flatendateien und Datenbanken verwenden oder einfach ein Gateway für einen anderen Server sein. Die Zugangskontrolle ist nicht standardisiert, obwohl es daran gearbeitet wurde und häufig verwendete Modelle sind. Benutzerkennwörter können in ihren Einträgen oder anderswo gespeichert werden. Der Server kann sich weigern, Operationen auszuführen, wenn er wünscht, und verschiedene Grenzen auferlegen.
Die meisten Teile von LDAP sind erweiterbar. Beispiele: Man kann neue Operationen definieren. Kontrollen kann Anfragen und Antworten ändern, z. um sortierte Suchergebnisse anzufordern. Neue Suchbereiche und Bindungsmethoden können definiert werden. Attribute können haben Optionen Das kann ihre Semantik ändern.
Andere Datenmodelle
Da LDAP an Dynamik gewonnen hat, haben die Anbieter es als Zugangsprotokoll für andere Dienste bereitgestellt. Die Implementierung setzt dann die Daten um, um das LDAP/X.500 -Modell nachzuahmen, aber wie genau dieses Modell befolgt wird, variiert. Zum Beispiel gibt es Software zum Zugriff Sql Datenbanken über LDAP, obwohl sich LDAP nicht ohne weiteres dafür eignen.[24] X.500 -Server können auch LDAP unterstützen.
In ähnlicher Weise werden Daten, die zuvor in anderen Arten von Datenspeichern gehalten wurden, manchmal in LDAP -Verzeichnisse verschoben. Beispielsweise können Unix -Benutzer- und Gruppeninformationen in LDAP gespeichert und über übertragen werden Pam und NSS Module. LDAP wird häufig von anderen Diensten zur Authentifizierung und/oder Autorisierung verwendet (welche Aktionen ein gegebener bereits authentifizierter Benutzer können mit welchem Service ausführen). Zum Beispiel wird in Active Directory Kerberos im Authentifizierungsschritt verwendet, während LDAP im Autorisierungsschritt verwendet wird.
Ein Beispiel für ein solches Datenmodell ist das Leimschema,[25] Dies wird in einem verteilten Informationssystem verwendet, das auf LDAP basiert, mit dem Benutzer, Anwendungen und Dienste feststellen können, welche Dienste in einer Gitterinfrastruktur vorhanden sind, und weitere Informationen über ihre Struktur und ihren Zustand.
Verwendungszweck
Ein LDAP -Server kann Empfehlungen an andere Server zurückgeben, um Anfragen zu erhalten, die es sich nicht selbst erfüllen kann. Dies erfordert eine Namenstruktur für LDAP -Einträge, sodass man einen Server mit einem bestimmten Distinguished Name (DN) befindet, ein Konzept, das im X.500 -Verzeichnis definiert und auch in LDAP verwendet wird. Eine andere Möglichkeit, LDAP -Server für eine Organisation zu lokalisieren, ist ein DNS Serverdatensatz (SRV).
Eine Organisation mit dem Domain Beispiel.org kann den obersten LDAP -DN verwenden dc = Beispiel, dc = org
(wo DC bedeutet Domänenkomponente). Wenn der LDAP -Server auch als ldap.example.org bezeichnet wird, wird die LDAP -URL der Organisation der Organisation ldap: //ldap.example.org/dc=example,dc=org
.
In erster Linie werden sowohl in X.500 [2008] als auch in LDAPV3 zwei häufige Namensstile verwendet. Diese sind in den ITU -Spezifikationen und IETF -RFCs dokumentiert. Die ursprüngliche Form nimmt das oberste Objekt als Landobjekt an, wie z. C = uns
, c = fr
. Das Domänenkomponentenmodell verwendet das oben beschriebene Modell. Ein Beispiel für eine länderbasierte Benennung könnte sein L = LOOLALITY, OU = eine Organisationseinheit, o = eine Organisation, c = FR
, oder in den USA: CN = gebräuchlicher Name, L = Localität, OU = eine Organisationseinheit, o = eine Organisation, ST = CA, C = uns
.
Siehe auch
- Mehrdeutige Namensauflösung
- CCSO NAMESERVER
- Föderierte Namensdienst
- Hesiod (Name Service)
- Hierarchisches Datenbankmodell
- Schlüsselserver (kryptografisch)
- LDAP -Anwendungsprogrammschnittstelle
- Liste der LDAP -Software
- Einfache Authentifizierung und Sicherheitsschicht (SASL)
Verweise
- ^ "Netzwerkarbeitsgruppe RFC 4511". Ietf.org. 2006-06-01. Abgerufen 2014-04-04.
- ^ "Directory Services LDAP". Oracle.com. Abgerufen 2014-04-04.
- ^ Was ist LDAP?. Gracion.com. Abgerufen am 2013-07-17.
- ^ "Einführung in die OpenLDAP -Verzeichnisdienste". Openldap. Abgerufen 1. Februar 2016.
- ^ "LDAP - Protokoll des leichten Verzeichniszugriffs". Webopedia.com. 4. Dezember 1996. Abgerufen 2014-04-05.
- ^ Das X.500 Serie - itu -t rec. X.500 bis X.521
- ^ Howes, Tim. "Das leichte Verzeichnis -Zugangsprotokoll: X.500 Lite" (PDF). Abgerufen 26. Dezember 2012.
- ^ "Vorgeschichte von LDAP". Cyber ist wichtig. 2013-04-09. Abgerufen 5. Oktober 2014.
- ^ "Service Name und Transportprotokoll -Portnummer Registrierung". Iana. Abgerufen 24. März 2021.
- ^ RFC3494
- ^ Fügen Sie den Abschnitt von RFC4511 hinzu
- ^ LDAP -Ergebniscodes
- ^ SASL -Mechanismen bei Iana
- ^ RFC4511: Anfrage löschen
- ^ Boreham Draft (Numsubordinates)
- ^ Ändern Sie den Abschnitt von RFC4511
- ^ Zeilenga, K. LDAP Modify-Increment-Erweiterung. doi:10.17487/rfc4525. RFC 4525.
- ^ Zeilenga, K. LEFAP (Leichtgewicht. Ietf. doi:10.17487/RFC4527. RFC 4527.
- ^ Internet-Draft-LDAP-Transaktionen Draft-Zeilenga-ldap-txn-15.txt
- ^ Shibboleth Security Alert 20120227
- ^ Tools.ietf.org
- ^ Tools.ietf.org
- ^ Tools.ietf.org
- ^ Openldap.org
- ^ Open Grid Forum: Projekthaus
Quellen
- Itu-t rec. X.680, "Abstract Syntax Notation One (Asn.1) - Spezifikation der Grundnotation", 1994
- Grundlegende Codierungsregeln (Ber) - itu -t rec. X.690, "Spezifikation der ASN.1 -Codierungsregeln: Grundlegende, kanonische und angesehene Codierungsregeln", 1994
- RFC3641 - Generische String -Codierungsregeln (Gser) für ASN.1 -Typen
- RFC4346 - Das Tls Protokollversion 1.1
- RFC4422 - Einfache Authentifizierung und Sicherheitsschicht (Sasl)
- SASL -Mechanismen, die bei IANA registriert sind
Weitere Lektüre
- Arkills, B (2003). LDAP -Verzeichnisse erläutert: Eine Einführung und Analyse. Addison-Wesley Professional. ISBN 978-0-201-78792-4.
- Carter, G (2003). LDAP -Systemverwaltung. O'Reilly Media. ISBN 978-1-56592-491-8.
- Donley, C (2002). LDAP -Programmierung, Management und Integration. Manning Publications. ISBN 978-1-930110-40-3.
- Howes, t; Smith, M; Gut, G (2003). Verständnis und Bereitstellung von LDAP -Verzeichnisdiensten. Addison-Wesley Professional. ISBN 978-0-672-32316-4.
- Rhoton, J (1999). Programmierhandbuch zu Internet Mail: SMTP, Pop, IMAP und LDAP. Elsevier. ISBN 978-1-55558-212-8.
- Voglmaier, R (2003). Die ABCs von LDAP: So installieren, ausführen und verwalten Sie LDAP -Dienste. Auerbach Publications. ISBN 978-0-8493-1346-2.
Externe Links
- Liste der öffentlichen LDAP -Server (2013): "LDAPWIKI: Öffentliche LDAP -Server". ldapwiki.com. 2013. Abgerufen 2020-01-18.