Definition

Was ist LDAP (Lightweight Directory Access Protocol)?

| Autor / Redakteur: Frank-Michael Schlede, Thomas Bär / Andreas Donner

(© aga7ta - Fotolia)

Das "Lightweight Directory Access Protocol" (LDAP) ist ein Netzwerkprotokoll zur Durchführung von Abfragen und Änderungen in einem verteilten Verzeichnisdienst. Das Protokoll aus dem TCP/IP-Protokollstapel ist in den RFCs 4510, 4511 und 4532 spezifiziert.

Eines gleich vorweg: LDAP selbst ist kein Verzeichnis, sondern das Protokoll, über das es mit einer bestimmten Syntax möglich ist, Informationen eines LDAP-Verzeichnisses abzufragen. Für eine fehlerlose Zusammenarbeit ist es bei LDAP erforderlich, dass alle beteiligten Systeme auf Port 389 für eine ungesicherte Übertragung und auf Port 636 in einer TLS gesicherten Verbindung Daten austauschen können. Historisch betrachtet geht die Entwicklung von LDAP auf die Universität von Michigan zurück. Dort wurde im Jahr 1993 erstmals ein Vorschlag für die vereinfachte Variante des DAP (Directory Access Protocol) als RFC definiert.

Die Idee hinter LDAP ist einfach: Ein über verschiedene Server verteiltes Verzeichnis in einer Baumstruktur soll einfach durchsucht werden können.

Die Baumstruktur des Verzeichnisses ist in groben Zügen vorgegeben: Der Ursprung ist stets das "Root Directory" und dieses verzweigt in Länder, Organisationen, Organisationseinheiten und Individuen. Bei den letzteren kann es sich um Benutzer, Personen, Drucker, Scanner, Computer, Server oder dergleichen handeln kann. Obwohl das System eine hohe Flexibilität bei der Abbildung von Strukturen erlaubt, ist die Definition der Elemente im Schema eher strikt.

Mögliche Anwendungsfälle für LDAP können sein:

   - Benutzerverwaltung
   - Systemverwaltung
   - Protokollzuordnung
   - RFC-Zuordnungen
   - NIS-Informationen
   - Boot-Informationen
   - Verwaltung von Mountpoints im Dateisystem
   - Organisation von Alias-Namen in E-Mail-Systemen
   - Verwaltung von DNS Zonendaten
   - Organisation von DHCP-Servern

LDAP-Implementierung Active Directory

Insgesamt war die Idee der Universität Michigan erfolgsversprechend, denn viele Firmen etablierten das Konzept in ihre Software. Die bekannteste und verbreitetste LDAP-Implementierung dürfte das Microsoft Active Directory (AD) darstellen. LDAP stellt, neben Kerberos, CIFS und DNS die vierte Hauptkomponente des Active Directory dar. Im AD stellt das LDAP-Verzeichnis die Informationen über Benutzer, Computer und deren Gruppenzugehörigkeit bereit. Aber auch andere Objekte, wie zum Beispiel die Zertifikate eines Computers, werden in dem Verzeichnis gespeichert.

Der Aufbau von LDAP

Der grundlegende Aufbau im LDAP-Datenmodell ist einfach. LDAP besteht aus Objekten und folgt weitgehend dem Ansatz der objektorientierten Programmierung mit Klassen, Vererbung, Polymorphie und den Objekten selbst. Ein Verzeichnisdiensteintrag besteht aus einer Liste von Attributen und einem "Pflichtobjekt" – der Bezeichnung des Objekts selbst, dem "Distinguished Name".

Diese Bezeichnung entspricht ein wenig einem Dateinamen und teilt sich eine Eigenschaft mit der Dateinamenkonvention: In derselben Ebene ist kein gleichlautendes Objekt mit demselben Namen möglich. Objekte mit der Bezeichnung "OU" stellen Container dar, in denen weitere Objekte erzeugt sein können. Sie bilden das Grundgerüst beim Aufbau der Struktur. Gemäß dem Standard RFC 2253 mit dem Titel "UTF-8 String Representation of Distinguished Names" existieren unter anderem folgende Attributtypen:

CN: commonName
L: localityName
ST: stateOrProvinceName
O: organizationName
OU: organizationalUnitName
C: countryName
STREET: streetAddress
DC: domainComponent
UID: userid

Das sieht auf den ersten Blick reichlich unübersichtlich und komplex aus – dass ist dem universellen Ansatz von LDAP geschuldet. Mit Blick auf eine Struktur in einem Active Directory lichtet sich die Unübersichtlichkeit jedoch rasch.

Man stelle sich ein Active Directory mit dem Namen test.local vor. Es wird ein neuer Benutzer mit dem Namen "Mustermann, Hans" während die Auswahl auf dem Wurzelverzeichnis test.local stand angelegt. In der Darstellung als distinguished Name:

CN=Hans Mustermann,DC=test,DC=local

Nun wird das Objekt in einen OU mit dem Titel "Personen“ verschoben und der DN noch einmal betrachtet:

CN=Hans Mustermann,OU=Personen,DC=test,DC=local

Innerhalb der OU Personen erstellt der Administrator nun eine weitere OU, um eine bessere Orientierung zu haben. Diese soll "Fiktive Mitarbeiter" heißen und das Benutzerobjekt von Herrn Mustermann wird dieser neuen OU zugeordnet. Somit lautet der DN:

CN=Hans Mustermann,OU=Fiktive Mitarbeiter,OU=Personen,DC=test,DC=local

Nun ergibt es sich die Logik fast schon von allein. Der commonName, die Bezeichnung des Objekts selbst, steht auf der linken Seite, während die Zuordnung von der rechten Seite ausgehend mit der Domänenstruktur local, gefolgt von test beginnt. Wieder von rechts gelesen findet der Administrator das Benutzerobjekt für Herrn Mustermann in der OU "Fiktive Mitarbeiter", die sich in der OU "Personen" befindet, die in der Wurzelstruktur der Domäne zu finden ist.

Praktischerweise gibt es eine große Anzahl von Programmen, mit denen eine Verzeichnisstruktur mithilfe von LDAP abgefragt werden kann; für Microsoft Windows ist bspw. der "LDAP Admin" von T. Karlovic eine kompakte und praktische Lösung. Auf der anderen Seite gibt es viele Script-Varianten, um via LDAP Informationen zu ermitteln.

Sehr bekannt ist hier folgendes PowerShell-Script:

$strFilter = "(&(objectCategory=User)(Department=Redaktion))"
$objDomain = New-Object System.DirectoryServices.DirectoryEntry
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = $objDomain
$objSearcher.PageSize = 1000
$objSearcher.Filter = $strFilter
$objSearcher.SearchScope = "Subtree"
$colProplist = "name"
foreach ($i in $colPropList){$objSearcher.PropertiesToLoad.Add($i)}
$colResults = $objSearcher.FindAll()
foreach ($objResult in $colResults)
   {$objItem = $objResult.Properties; $objItem.name}

Es liefert die Benutzernamen der Mitarbeiter aus der Abteilung (siehe erste Zeile Department=Redaktion). Soll das Script etwas anderes Suchen, zum Beispiel Mitarbeiter, deren Anmeldenamen eine besondere Buchstabenfolge enthält, so sieht die erste Zeile in etwa so aus:

$strFilter = "(&(objectCategory=User)( sAMAccountName=Mich*))"

Das Sternchen hinter „Mich“ fungiert hier als Jokerzeichen. Der untere Bereich dieser PS-Befehlsabfolge (stammt von der Microsoft Homepage) lässt sich somit auch für andere Einsatzzwecke recht gut nutzen. Aber, es geht auch viel, viel einfacher – mit einem Einzeiler in der PowerShell:

Get-ADUser -Filter { Name -Like "*" } -Searchbase "OU=PERSONEN,DC=test,DC=local"

Möchte der Administrator zum Beispiel noch die Telefonnummern auslesen, erweitert sich dieser eine Befehl ein wenig:

Get-ADUser -filter { Surname -Like "*" } -properties cn,telephoneNumber -SearchScope Subtree-SearchBase "OU=Personen,DC=test,DC=local" | select-object Surname,Givenname,telephoneNumber

Surname ist hier der Nachname, während Givenname den Vornamen repräsentiert.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

Updates für Windows, Edge, Office und Exchange

Microsoft Patchday Juli 2017

Updates für Windows, Edge, Office und Exchange

Der monatliche Patchday ist da. Im Juli kümmert sich Microsoft um Fehler in Windows, den eigenen Browsern, Office und Exchange. Vor allem die beiden zuletzt genannten sollten möglichst schnell installiert werden, da über die zugehörigen Schwachstellen Angreifer mittels manipulierter Dateien auf die Systeme zugreifen können. lesen

Synology-NAS: der bessere Domänencontroller

Diskstation Manager 6.1 effektiv nutzen

Synology-NAS: der bessere Domänencontroller

NAS-Systeme von Synology bieten immer mehr Funktionen, die weit über die Datenspeicherung hinausgehen. Dazu gehören mittlerweile auch Funktionen zur Anbindung als Active-Directory-Domänencontroller. Und in Sachen Dateisystem liegen Synology-NAS-Systeme ohnehin vor den klassischen Domänencontrollern. lesen

Access Point mit 802.11ac-Wave-2-Speed

Mehrere Betriebsarten je nach WLAN-Anforderung

Access Point mit 802.11ac-Wave-2-Speed

Der KMU-Access-Point DAP-2610 ermöglicht, so Hersteller D-Link, dank paralleler Nutzung der Frequenzbänder 2,4 GHz und 5 GHz Datendurchsätze von bis zu 1300 MBit/s. Der DAP-2610 könne auch als Wireless Distribution System oder Mesh-Element zum Einsatz kommen. lesen

Alternativen für Small Business Server

Auch Linux-Server können einfach zu verwalten sein

Alternativen für Small Business Server

Der auslaufende Small Business Server 2011 lässt sich auch mit Linux-Servern ersetzen. Linux-Server sind schnell und leicht einzurichten und verfügen über den gleichen wenn nicht mehr Funktionsumfang wie Small Business Server. lesen

Fernzugriff gemäß VS-NfD-Richtlinien

IPsec-VPN-Gateway mit BSI-Zulassung

Fernzugriff gemäß VS-NfD-Richtlinien

Der NCP Secure VPN GovNet Server von NCP engineering wurde vom Bundesamt für Sicherheit in der Informationstechnik (BSI) für die Verarbeitung von Daten der Geheimhaltungsstufe Verschlusssache – Nur für den Dienstgebrauch (VS-NfD) zugelassen. lesen

Aktualisierte Plattform für Infrastrukturserver

Collax überarbeitet Serverbasis

Aktualisierte Plattform für Infrastrukturserver

Collax Server 7, die aktualisierte Plattform für die Collax C-Server, umfasst die Reihe der Collaboration- und Security-Server mit der Collax Groupware Suite, dem Collax Business Server und dem Collax Security Gateway, dessen Version 7 ab sofort zur Verfügung steht. lesen

Univention Corporate Client wechselt zu Ubuntu

UCC 3.0 mit längerem Support

Univention Corporate Client wechselt zu Ubuntu

Die Basis des Univention Corporate Client (UCC) für Betrieb und Verwaltung von PCs, Notebooks und Thin Clients wechselt mit mit dem Versionssprung von 2.1 auf 3.0 von Kubuntu zu Ubuntu 16.04 Long Term Support (LTS). Grund sei die um zwei Jahre längere Unterstützung. lesen

RADIUS-Server im Synology NAS

Security-Pakete für Synology DSM

RADIUS-Server im Synology NAS

Ein RADIUS-Server im LAN bietet auch kleinen Unternehmen eine ausgefeilte Nutzerkontrolle beim Zugriff auf das eigene WLAN. Ein Synology-NAS bietet die richtige Grundlage um eine Authentifizierung mittels RADIUS ressourceneffizient im LAN zu betreiben. lesen

Opensource IP-Adress­ver­waltung phpIPAM

Hilfe bei der Dokumentation von Subnetzen

Opensource IP-Adress­ver­waltung phpIPAM

Viele IT-Verantwortliche stehen vor dem Pro­blem, dass eingesetzte IP-Adresse, Sub­netze und VLANs in ihrem Netzwerk stark anwachsen, oft aber kaum dokumentiert sind. Zwar lassen sich die notwendigen Daten zumindest in IPv4-Umgebungen auch in Excel-Tabellen erfassen, besser geeignet und ab IPv6 alternativlos ist aber Spezialsoftware wie die bspw. das Opensource-Tool phpIPAM. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 44521652 / Definitionen)