Grundlegendes zum LDAP-Protokoll, zur Datenhierarchie und zu den Eintragskomponenten

Einführung

LDAP (Lightweight Directory Access Protocol) ist ein offenes Protokoll zum Speichern und Abrufen von Daten aus einer hierarchischen Verzeichnisstruktur. LDAP wird häufig zum Speichern von Informationen über ein Unternehmen, seine Ressourcen und Benutzer verwendet und ist eine flexible Lösung zum Definieren aller Arten von Entitäten und ihrer Eigenschaften.

Für viele Benutzer ist LDAP möglicherweise schwer zu verstehen, da es sich auf eine spezielle Terminologie stützt, einige ungewöhnliche Abkürzungen verwendet und häufig als Bestandteil eines größeren Systems interagierender Teile implementiert wird. In diesem Handbuch stellen wir Ihnen einige der LDAP-Grundlagen vor, damit Sie eine gute Grundlage für die Arbeit mit der Technologie haben.

Was ist ein Verzeichnisdienst?

Ein Verzeichnisdienst wird zum Speichern, Organisieren und Präsentieren von Daten in einem Schlüsselwertformat verwendet. In der Regel werden Verzeichnisse für Such-, Such- und Leseoperationen gegenüber Schreiboperationen optimiert, sodass sie für Daten, auf die häufig verwiesen wird, die sich jedoch selten ändern, sehr gut funktionieren.

Die in einem Verzeichnisdienst gespeicherten Daten haben häufig einen beschreibenden Charakter und werden zur Definition der Eigenschaften einer Entität verwendet. Ein Beispiel für ein physisches Objekt, das in einem Verzeichnisdienst gut dargestellt wird, ist ein Adressbuch. Jede Person könnte durch einen Eintrag im Verzeichnis dargestellt werden, wobei Schlüssel-Wert-Paare ihre Kontaktinformationen, ihren Geschäftssitz usw. beschreiben. Verzeichnisdienste sind in vielen Szenarien nützlich, in denen Sie qualitative, beschreibende Informationen zugänglich machen möchten.

Was ist LDAP?

LDAP (Lightweight Directory Access Protocol) ist ein Kommunikationsprotokoll, das die Methoden definiert, mit denen auf einen Verzeichnisdienst zugegriffen werden kann. Allgemein formuliert LDAP die Art und Weise, wie die Daten in einem Verzeichnisdienst für Benutzer dargestellt werden sollen, definiert Anforderungen an die Komponenten, die zum Erstellen von Dateneinträgen in einem Verzeichnisdienst verwendet werden, und umreißt die Art und Weise, wie verschiedene primitive Elemente zum Erstellen von Einträgen verwendet werden.

Da LDAP ein offenes Protokoll ist, stehen viele verschiedene Implementierungen zur Verfügung. Das OpenLDAP-Projekt ist eine der am besten unterstützten Open Source-Varianten.

Grundlegende LDAP-Datenkomponenten

Wir haben oben diskutiert, wie LDAP ein Protokoll ist, das zur Kommunikation mit einer Verzeichnisdatenbank verwendet wird, um Informationen abzufragen, hinzuzufügen oder zu ändern. Diese einfache Definition stellt jedoch die Komplexität der Systeme dar, die dieses Protokoll unterstützen. Die Art und Weise, wie LDAP Daten für Benutzer anzeigt, hängt stark von der Interaktion und der Beziehung zwischen bestimmten definierten Strukturkomponenten ab.

Attribute

Die Daten selbst in einem LDAP-System werden hauptsächlich in Elementen gespeichert, die als * Attribute * bezeichnet werden. Attribute sind grundsätzlich Schlüssel-Wert-Paare. Im Gegensatz zu einigen anderen Systemen haben die Schlüssel vordefinierte Namen, die von den für die Eingabe ausgewählten objectClasses vorgegeben werden (wir werden dies gleich diskutieren). Darüber hinaus müssen die Daten in einem Attribut mit dem in der ursprünglichen Definition des Attributs definierten Typ übereinstimmen.

Das Festlegen des Werts für ein Attribut erfolgt mit dem Attributnamen und dem Attributwert, die durch einen Doppelpunkt und ein Leerzeichen getrennt sind. Ein Beispiel für ein Attribut mit dem Namen "+ mail +", das eine E-Mail-Adresse definiert, sieht folgendermaßen aus:

Wenn Sie auf ein Attribut und seine Daten verweisen (wenn Sie es nicht festlegen), werden die beiden Seiten stattdessen durch ein Gleichheitszeichen verbunden:

mail=example.com

Die Attributwerte enthalten die meisten tatsächlichen Daten, die Sie in einem LDAP-System speichern und auf die Sie zugreifen möchten. Die anderen Elemente in LDAP werden für Struktur, Organisation usw. verwendet.

Einträge

Attribute an sich sind nicht sehr nützlich. Um einen Sinn zu haben, müssen sie mit etwas verbunden sein. Innerhalb von LDAP verwenden Sie Attribute innerhalb eines * Eintrags *. Ein Eintrag ist im Grunde eine Sammlung von Attributen unter einem Namen, mit dem etwas beschrieben wird.

Beispielsweise können Sie einen Eintrag für einen Benutzer in Ihrem System oder für jeden Artikel in einem Inventar haben. Dies ist ungefähr analog zu einer Zeile in einem relationalen Datenbanksystem oder zu einer einzelnen Seite in einem Adressbuch (die Attribute hier würden die verschiedenen Felder in jedem dieser Modelle darstellen). Während ein Attribut eine Qualität oder ein Merkmal von etwas definiert, beschreibt ein Eintrag das Element selbst, indem er diese Attribute einfach unter einem Namen sammelt.

Ein Beispieleintrag, wie er im LDIF-Format (LDAP Data Interchange Format) angezeigt wird, sieht folgendermaßen aus:

dn: sn=Ellingwood,ou=people,dc=digitalocean,dc=com
objectclass: person
sn: Ellingwood
cn: Justin Ellingwood

Das obige Beispiel könnte ein gültiger Eintrag in einem LDAP-System sein.

DIT

Wenn Sie sich mit LDAP vertraut machen, ist es leicht zu erkennen, dass die durch Attribute definierten Daten nur einen Teil der verfügbaren Informationen zu einem Objekt darstellen. Der Rest ergibt sich aus der Platzierung des Eintrags im LDAP-System und den damit verbundenen Beziehungen.

Wenn es zum Beispiel möglich ist, Einträge sowohl für einen Benutzer als auch für einen Inventargegenstand zu haben, wie könnte jemand sie unterscheiden? Eine Möglichkeit, zwischen Einträgen verschiedener Typen zu unterscheiden, besteht darin, Beziehungen und Gruppen einzurichten. Dies hängt im Wesentlichen davon ab, wo der Eintrag beim Erstellen platziert wird. Einträge werden einem LDAP-System alle als Verzweigungen auf Bäumen hinzugefügt, die als * Data Information Trees * oder * DITs * bezeichnet werden.

Eine DIT stellt eine Organisationsstruktur dar, die einem Dateisystem ähnelt, in dem jeder Eintrag (mit Ausnahme des Eintrags der obersten Ebene) genau einen übergeordneten Eintrag und möglicherweise eine beliebige Anzahl von untergeordneten Einträgen enthält. Da Einträge in einem LDAP-Baum so gut wie alles darstellen können, werden einige Einträge hauptsächlich für organisatorische Zwecke verwendet, ähnlich wie Verzeichnisse in einem Dateisystem.

Auf diese Weise können Sie einen Eintrag für "Personen" und einen Eintrag für "Inventargegenstände" haben. Ihre tatsächlichen Dateneinträge können als untergeordnete Einträge erstellt werden, um deren Typ besser zu unterscheiden. Ihre Organisationseinträge können beliebig definiert werden, um Ihre Daten optimal darzustellen.

Im Beispieleintrag im letzten Abschnitt sehen wir einen Hinweis auf die DIT in der Zeile "+ dn +":

dn: sn=Ellingwood,ou=people,dc=digitalocean,dc=com

Diese Zeile wird als definierter Name des Eintrags bezeichnet (dazu später mehr) und dient zur Identifizierung des Eintrags. Es funktioniert wie ein vollständiger Pfad zurück zur Wurzel des DIT. In diesem Fall haben wir einen Eintrag mit dem Namen "+ sn = Ellingwood ", den wir erstellen. Das direkte übergeordnete Element ist ein Eintrag mit dem Namen " ou = people ", der wahrscheinlich als Container für Einträge verwendet wird, die Personen beschreiben. Die Eltern dieses Eintrags leiten sich vom Domain-Namen " digitalocean.com +" ab, der als Stamm unseres DIT fungiert.

LDAP-Datenkomponenten definieren

Im letzten Abschnitt haben wir erläutert, wie Daten in einem LDAP-System dargestellt werden. Wir müssen jedoch auch darüber sprechen, wie die Komponenten definiert werden, in denen Daten gespeichert werden. Beispielsweise haben wir erwähnt, dass Daten mit dem für jedes Attribut definierten Typ übereinstimmen müssen. Woher kommen diese Definitionen? Lassen Sie uns in Bezug auf die Komplexität wieder von unten beginnen und uns nach oben arbeiten.

Attributdefinitionen

Attribute werden mit einer ziemlich komplizierten Syntax definiert. Sie müssen den Namen eines Attributs, alle anderen Namen, die zur Bezugnahme auf das Attribut verwendet werden können, den Typ der Daten, die eingegeben werden können, sowie eine Vielzahl anderer Metadaten angeben. Diese Metadaten können das Attribut beschreiben, LDAP mitteilen, wie der Wert des Attributs sortiert oder verglichen werden soll, und angeben, in welcher Beziehung er zu anderen Attributen steht.

Dies ist beispielsweise die Definition für das Attribut "+ name +":

attributetype ( 2.5.4.41 NAME 'name' DESC 'RFC4519: common supertype of name attributes'
       EQUALITY caseIgnoreMatch
       SUBSTR caseIgnoreSubstringsMatch
       SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )

Das "" Name "" ist der Name des Attributs. Die Nummer in der ersten Zeile ist eine global eindeutige OID (Objekt-ID), die dem Attribut zugewiesen wird, um es von jedem anderen Attribut zu unterscheiden. Der Rest des Eintrags definiert, wie der Eintrag während der Suche verglichen werden kann, und weist einen Zeiger auf, der angibt, wo Informationen zu den Datentypanforderungen des Attributs zu finden sind.

Ein wichtiger Bestandteil einer Attributdefinition ist, ob das Attribut in einem Eintrag mehr als einmal definiert werden darf. Zum Beispiel kann die Definition definieren, dass ein Nachname nur einmal pro Eintrag definiert werden darf, aber ein Attribut für "Nichte" kann ermöglichen, dass dieses Attribut in einem einzelnen Eintrag mehrmals definiert wird. Attribute sind standardmäßig mehrwertig und müssen das Flag "+ EINZELWERT +" enthalten, wenn sie nur einmal pro Eintrag festgelegt werden dürfen.

Attributdefinitionen sind viel komplizierter als das Verwenden und Festlegen von Attributen. Glücklicherweise müssen Sie zum größten Teil keine eigenen Attribute definieren, da die gängigsten in den meisten LDAP-Implementierungen enthalten sind und andere problemlos importiert werden können.

ObjectClass-Definitionen

Attribute werden in Entitäten mit dem Namen * objectClasses * gesammelt. ObjectClasses sind einfach Gruppierungen von zugeordneten Attributen, die zur Beschreibung einer bestimmten Sache nützlich sind. Beispielsweise ist "Person" eine objectClass.

Einträge erhalten die Möglichkeit, die Attribute einer objectClass zu verwenden, indem Sie ein spezielles Attribut namens "+ objectClass " festlegen, das die zu verwendende objectClass benennt. Tatsächlich ist ` objectClass +` das einzige Attribut, das Sie in einem Eintrag festlegen können, ohne eine weitere objectClass anzugeben.

Wenn Sie also einen Eintrag zur Beschreibung einer Person erstellen, einschließlich "+ objectClass person +" (oder einer der spezifischeren von der Person abgeleiteten Person objectClasses - wir werden uns später darum kümmern), können Sie alle Attribute in dieser objectClass verwenden:

dn: . . .
objectClass: person

Sie haben dann die Möglichkeit, diese Attribute innerhalb des Eintrags festzulegen:

  • * cn *: Allgemeiner Name

  • * description *: Vom Menschen lesbare Beschreibung des Eintrags

  • * seeAlso *: Verweis auf verwandte Einträge

  • * sn *: Nachname

  • * telephoneNumber *: Eine Telefonnummer

  • * userPassword *: Ein Passwort für den Benutzer

Das Attribut + objectClass + kann mehrfach verwendet werden, wenn Sie Attribute aus verschiedenen objectClasses benötigen, es gibt jedoch Regeln, die festlegen, was zulässig ist. ObjectClasses werden als einer von mehreren "Typen" definiert.

Die beiden Haupttypen von ObjectClasses sind * strukturelle * oder * Hilfs *. Ein Eintrag * muss * genau eine Strukturklasse haben, kann jedoch keine oder mehrere Hilfsklassen enthalten, mit denen die für die Klasse verfügbaren Attribute erweitert werden. Eine strukturelle objectClass wird zum Erstellen und Definieren des Eintrags verwendet, während die zusätzlichen objectClasses durch zusätzliche Attribute zusätzliche Funktionen hinzufügen.

ObjectClass-Definitionen legen fest, ob die von ihnen bereitgestellten Attribute erforderlich (angegeben durch eine "+ MUST " - Spezifikation) oder optional (angegeben durch eine " MAY +" - Spezifikation) sind. Mehrere objectClasses können dieselben Attribute bereitstellen und die Kategorisierung eines Attributs kann von objectClass zu objectClass variieren.

Als Beispiel wird die Objektklasse "+ person +" folgendermaßen definiert:

objectclass ( 2.5.6.6 NAME 'person' DESC 'RFC2256: a person' SUP top STRUCTURAL
 MUST ( sn $ cn )
 MAY ( userPassword $ telephoneNumber $ seeAlso $ description ) )

Dies ist als strukturelle objectClass definiert, dh, sie kann zum Erstellen eines Eintrags verwendet werden. Der erstellte Eintrag muss die Attribute "+ Nachname " und " Kommonname " setzen und kann wählen, ob die Attribute " Benutzerpasswort ", " Telefonnummer ", " siehe auch " oder " Beschreibung +" gesetzt werden sollen.

Schemata

ObjectClass-Definitionen und Attributdefinitionen sind wiederum in einem Konstrukt zusammengefasst, das als * schema * bezeichnet wird. Im Gegensatz zu herkömmlichen relationalen Datenbanken sind Schemas in LDAP einfach Sammlungen verwandter objectClasses und Attribute. Ein einzelnes DIT kann über viele verschiedene Schemata verfügen, sodass die erforderlichen Einträge und Attribute erstellt werden können.

Schemata enthalten häufig zusätzliche Attributdefinitionen und erfordern möglicherweise die in anderen Schemata definierten Attribute. Für die oben beschriebene Objektklasse "+ Person " muss beispielsweise das Attribut " Nachname " oder " Sn " für alle Einträge mit der Objektklasse " Person +" festgelegt werden. Wenn diese nicht auf dem LDAP-Server selbst definiert sind, können Sie diese Definitionen mithilfe eines Schemas, das diese Definitionen enthält, dem Vokabular des Servers hinzufügen.

Das Format eines Schemas ist im Grunde genommen nur eine Kombination der obigen Einträge:

. . .

objectclass ( 2.5.6.6 NAME 'person' DESC 'RFC2256: a person' SUP top STRUCTURAL
 MUST ( sn $ cn )
 MAY ( userPassword $ telephoneNumber $ seeAlso $ description ) )

attributetype ( 2.5.4.4 NAME ( 'sn' 'surname' )
 DESC 'RFC2256: last (family) name(s) for which the entity is known by' SUP name )

attributetype ( 2.5.4.4 NAME ( 'cn' 'commonName' )
 DESC 'RFC4519: common name(s) for which the entity is known by' SUP name )

. . .

Datenorganisation

Wir haben die allgemeinen Elemente behandelt, die zum Erstellen von Einträgen in einem LDAP-System verwendet werden, und wir haben darüber gesprochen, wie diese Bausteine ​​im System definiert werden. Wir haben jedoch noch nicht viel darüber gesprochen, wie die Informationen selbst in einem LDAP-DIT organisiert und strukturiert sind.

Einträge innerhalb des DIT platzieren

Ein DIT ist einfach die Hierarchie, die die Beziehung bestehender Einträge beschreibt. Bei der Erstellung muss sich jeder neue Eintrag in die vorhandene DIT "einhängen", indem er sich selbst als untergeordnetes Element eines vorhandenen Eintrags platziert. Dadurch wird eine baumartige Struktur erstellt, mit der Beziehungen definiert und Bedeutungen zugewiesen werden.

Die Spitze der DIT ist die breiteste Kategorisierung, unter der jeder nachfolgende Knoten in irgendeiner Weise abstammt. In der Regel wird der oberste Eintrag einfach als Etikett verwendet, das die Organisation angibt, für die die DIT verwendet wird. Diese Einträge können aus beliebigen objectClasses bestehen, werden jedoch normalerweise mithilfe von Domänenkomponenten (+ dc = Beispiel, dc = com + für LDAP-Verwaltungsinformationen in Verbindung mit + example.com +) und Standorten (+ l = new_york) erstellt , c = us + `für eine Organisation oder ein Segment in NY) oder organisatorische Segmente ( + ou = Marketing, o = Example_Co + `).

Einträge, die für die Organisation verwendet werden (werden wie Ordner verwendet), verwenden häufig die objectClass organisationUnit, die die Verwendung einer einfachen beschreibenden Attributbezeichnung mit dem Namen "+ ou = " ermöglicht. Diese werden häufig für die allgemeinen Kategorien unter dem DIT-Eintrag der obersten Ebene verwendet (Dinge wie " ou = Personen ", " ou = Gruppen " und " ou = Inventar +" sind üblich). LDAP ist für das seitliche Auffinden von Informationen entlang des Baums und nicht auf und ab innerhalb des Baums optimiert. Daher ist es häufig am besten, die DIT-Hierarchie flach zu halten, wobei allgemeine organisatorische Zweige und eine weitere Unterteilung durch die Zuweisung bestimmter Attribute angegeben werden.

Einträge innerhalb des DIT benennen und referenzieren

Wir verweisen auf Einträge durch ihre Attribute. Dies bedeutet, dass jeder Eintrag ein Attribut oder eine Gruppe von Attributen haben muss, die auf seiner Ebene in der DIT-Hierarchie eindeutig sind. Dieses Attribut oder diese Attributgruppe wird als * relativer definierter Name * oder * RDN * des Eintrags bezeichnet und funktioniert wie ein Dateiname.

Um eindeutig auf einen Eintrag zu verweisen, verwenden Sie die RDN des Eintrags in Kombination mit allen RDNs der übergeordneten Einträge. Diese Kette von RDNs führt zurück an die Spitze der DIT-Hierarchie und bietet einen eindeutigen Pfad zum betreffenden Eintrag. Wir bezeichnen diese RDN-Kette als * Distinguished Name * oder * DN * des Eintrags. Sie müssen den DN für einen Eintrag während der Erstellung angeben, damit das LDAP-System weiß, wo der neue Eintrag platziert werden soll, und sicherstellen kann, dass der RDN des Eintrags nicht bereits von einem anderen Eintrag verwendet wird.

Als Analogie können Sie sich eine RDN als relativen Datei- oder Verzeichnisnamen vorstellen, wie Sie es in einem Dateisystem sehen würden. Der DN hingegen ist analog zum absoluten Pfad. Ein wichtiger Unterschied besteht darin, dass LDAP-DNs den spezifischsten Wert auf der linken Seite enthalten, während Dateipfade die spezifischsten Informationen auf der rechten Seite enthalten. DNs trennen die RDN-Werte durch ein Komma.

Beispielsweise kann ein Eintrag für eine Person namens John Smith unter einem Eintrag "Personen" für eine Organisation unter "+ example.com +" platziert werden. Da sich möglicherweise mehrere John Smiths in der Organisation befinden, ist eine Benutzer-ID möglicherweise die bessere Wahl für die RDN des Eintrags. Der Eintrag könnte folgendermaßen angegeben werden:

dn: uid=jsmith1,ou=People,dc=example,dc=com
objectClass: inetOrgPerson
cn: John Smith
sn: Smith
uid: jsmith1

In diesem Fall mussten wir die Objektklasse "+ inetOrgPerson " verwenden, um Zugriff auf das Attribut " uid " zu erhalten (wir haben weiterhin Zugriff auf alle in der Objektklasse " person +" definierten Attribute, wie wir im nächsten Abschnitt sehen werden). .

LDAP-Vererbung

Wenn es darauf ankommt, hängt ein Großteil der Art und Weise, wie Daten in einem LDAP-System miteinander in Beziehung stehen, von Hierarchien, Vererbung und Verschachtelung ab. LDAP erscheint vielen Leuten zunächst ungewöhnlich, weil es einige objektorientierte Konzepte in sein Design implementiert. Dies hängt hauptsächlich mit der Verwendung von Klassen zusammen, wie wir zuvor besprochen haben, und der Verfügbarkeit von Vererbung, über die wir jetzt sprechen werden.

ObjectClass-Vererbung

Jede objectClass ist eine Klasse, die die Merkmale von Objekten dieses Typs beschreibt.

Im Gegensatz zur einfachen Vererbung können Objekte in LDAP jedoch Instanzen mehrerer Klassen sein und sind es häufig (einige Programmiersprachen bieten ähnliche Funktionen durch Mehrfachvererbung). Dies ist möglich, da die LDAP-Konzeption einer Klasse einfach eine Sammlung von Attributen ist, die sie haben MUSS oder KANN. Dies ermöglicht die Angabe mehrerer Klassen für einen Eintrag (obwohl nur eine "+ STRUCTURAL +" - Objektklasse vorhanden sein kann und muss), was dazu führt, dass das Objekt einfach Zugriff auf die zusammengeführte Auflistung von Attributen hat, wobei die strengste MUST- oder MAY-Deklaration Vorrang hat.

In seiner Definition kann eine objectClass eine übergeordnete objectClass angeben, von der ihre Attribute geerbt werden sollen. Dies geschieht mit + SUP + gefolgt von der objectClass, von der geerbt werden soll. Zum Beispiel beginnt die Objektklasse "+ organisationalPerson +" folgendermaßen:

objectclass ( 2.5.6.7 NAME 'organizationalPerson' SUP  STRUCTURAL
. . .

Die auf den Bezeichner "+ SUP " folgende Objektklasse ist die übergeordnete Objektklasse. Das übergeordnete Element muss den objectClass-Typ der zu definierenden objectClass gemeinsam verwenden (z. B. " STRUCTURAL " oder " AUXILIARY +"). Die untergeordnete objectClass erbt automatisch die Attribute und Attributanforderungen der übergeordneten Klasse.

Wenn Sie eine objectClass in einem Eintrag zuweisen, müssen Sie nur den spezifischsten Nachkommen einer Vererbungskette angeben, um den vollständigen Zugriff auf die Attribute zu erhalten. Im letzten Abschnitt haben wir dies verwendet, um "+ inetOrgPerson " als einzige Objektklasse für unseren John Smith-Eintrag anzugeben, während wir weiterhin Zugriff auf die Attribute haben, die in den Objektklassen " person " und " organisatorischePerson " definiert sind. Die Vererbungshierarchie von " inetOrgPerson +" sieht folgendermaßen aus:

inetOrgPerson -> organizationalPerson -> person -> top

Fast alle objectClass-Vererbungsbäume enden mit einer speziellen objectClass mit dem Namen "top". Dies ist eine abstrakte objectClass, deren einziger Zweck darin besteht, das Setzen der objectClass selbst zu verlangen. Es wird verwendet, um den Anfang der Vererbungskette anzugeben.

Attributvererbung

In ähnlicher Weise können Attribute selbst während ihrer Definition ein übergeordnetes Attribut auflisten. Das Attribut erbt dann die Eigenschaften, die im übergeordneten Attribut festgelegt wurden.

Dies wird häufig verwendet, um spezifischere Versionen eines allgemeinen Attributs zu erstellen. Ein Nachname ist beispielsweise eine Art von Name und kann mit denselben Methoden verglichen und auf Gleichheit überprüft werden. Es kann diese Eigenschaften erben, um die allgemeine Form eines Namensattributs zu erhalten. Tatsächlich enthält die Definition des tatsächlichen Nachnamens möglicherweise nur einen Zeiger auf das übergeordnete Attribut.

Dies ist nützlich, da hiermit ein bestimmtes Attribut erstellt werden kann, das für Benutzer, die das Element interpretieren, nützlich ist, auch wenn seine allgemeine Form unverändert bleibt. Die Vererbung des Attributs "+ Nachname +", das wir hier besprochen haben, erleichtert die Unterscheidung zwischen einem Nachnamen und einem allgemeineren Namen. Abgesehen von der Bedeutung des Werts besteht im LDAP-System nur ein geringer Unterschied zwischen einem Nachnamen und einem Namen.

LDAP-Protokollvariationen

Wir haben eingangs erwähnt, dass LDAP eigentlich nur das Protokoll ist, das die Kommunikationsschnittstelle für die Arbeit mit Verzeichnisdiensten definiert. Dies wird im Allgemeinen nur als LDAP- oder LDAP-Protokoll bezeichnet.

Es ist erwähnenswert, dass Sie möglicherweise einige Varianten des regulären Formats sehen:

  • * ldap: // *: Dies ist das grundlegende LDAP-Protokoll, das den strukturierten Zugriff auf einen Verzeichnisdienst ermöglicht.

  • * ldaps: // *: Mit dieser Variante wird LDAP über SSL / TLS angegeben. Normaler LDAP-Verkehr wird nicht verschlüsselt, obwohl die meisten LDAP-Implementierungen dies unterstützen. Diese Methode zum Verschlüsseln von LDAP-Verbindungen ist eigentlich veraltet. Stattdessen wird die Verwendung der STARTTLS-Verschlüsselung empfohlen. Wenn Sie LDAP über ein unsicheres Netzwerk betreiben, wird die Verschlüsselung dringend empfohlen.

  • * ldapi: // *: Dies wird verwendet, um LDAP über einen IPC anzuzeigen. Dies wird häufig verwendet, um zu Verwaltungszwecken eine sichere Verbindung mit einem lokalen LDAP-System herzustellen. Es kommuniziert über interne Sockets, anstatt einen freigelegten Netzwerkanschluss zu verwenden.

Alle drei Formate verwenden das LDAP-Protokoll, die letzten beiden enthalten jedoch zusätzliche Informationen zu dessen Verwendung.

Fazit

Sie sollten ein ziemlich gutes Verständnis des LDAP-Protokolls und der Art und Weise haben, wie Implementierungen von LDAP Daten für Benutzer darstellen. Wenn Sie wissen, wie Elemente des Systems zueinander in Beziehung stehen und woher sie ihre Eigenschaften beziehen, wird die Verwaltung und Verwendung von LDAP-Systemen einfacher und vorhersehbarer.