LDAP steht für Lightweight Directory Access Protocol. Anwendungen nutzen das offene Protokoll, um strukturierte Einträge in einem Verzeichnis zu suchen, zu lesen und zu verändern. Häufig enthält ein solches Verzeichnis Benutzer, Gruppen, Geräte, E-Mail-Adressen oder technische Konfigurationen. LDAP definiert den Zugriff auf diese Daten – es ist weder eine konkrete Datenbank noch automatisch ein bestimmtes Produkt.
Wie ist ein LDAP-Verzeichnis aufgebaut?
Die Einträge bilden einen hierarchischen Verzeichnisbaum, den Directory Information Tree. Jeder
Eintrag besitzt Attribute und einen eindeutigen Distinguished Name (DN). Der DN
uid=anna,ou=people,dc=example,dc=de beschreibt beispielsweise den Eintrag
uid=anna in der Organisationseinheit people unter example.de.
Der erste Bestandteil ist der Relative Distinguished Name (RDN). Ein Schema bestimmt, welche
Objektklassen und Attribute ein Eintrag haben darf oder haben muss.
| Begriff | Bedeutung |
|---|---|
| Base DN | Ausgangspunkt einer Suche, etwa ou=people,dc=example,dc=de. |
| Suchbereich | Nur der Basiseintrag, eine Ebene darunter oder der gesamte Teilbaum. |
| Suchfilter | Bedingung für passende Einträge, zum Beispiel (mail=anna@example.de). |
| Attribut | Benannter Wert eines Eintrags, beispielsweise mail, cn oder memberOf. |
Wie kommuniziert ein Client mit LDAP?
Ein Client baut eine Verbindung auf und führt meist zuerst eine Bind-Operation aus. Danach kann er suchen, Einträge vergleichen, hinzufügen, verändern oder löschen – soweit seine Berechtigungen dies erlauben. Eine Suche kombiniert Base DN, Suchbereich, Filter und die gewünschten Attribute. Mit Unbind beendet der Client die Sitzung. LDAP unterstützt außerdem Erweiterungen und Steuerelemente, etwa für paginierte Suchergebnisse.
LDAP verwendet typischerweise TCP-Port 389. Die Verbindung sollte dort per StartTLS geschützt oder bereits als LDAP über TLS aufgebaut werden, häufig als LDAPS auf Port 636 bezeichnet. Entscheidend ist nicht der Name oder Port allein: Der Client muss TLS verlangen, Zertifikatskette und Hostnamen korrekt prüfen und darf bei einem Fehler nicht unverschlüsselt fortfahren.
Ist LDAP ein Authentifizierungsverfahren?
LDAP wird oft zur Anmeldung eingesetzt, ist aber primär ein Zugriffsprotokoll für Verzeichnisse. Bei einer einfachen Bind-Operation kann der Server Benutzername und Passwort prüfen. Anwendungen suchen häufig zuerst den Benutzer-DN und führen anschließend mit diesem DN eine Bind-Operation aus. Alternativ kommen SASL-Verfahren oder bei Active Directory Kerberos zum Einsatz. Eine erfolgreiche Bind bestätigt eine Identität, beantwortet aber noch nicht, was diese Identität in der Anwendung tun darf. Dafür benötigt die Anwendung eine eigene, korrekt umgesetzte Autorisierung.
Was unterscheidet LDAP und Active Directory?
| LDAP | Active Directory |
|---|---|
| Offenes Protokoll und Datenmodell für den Zugriff auf Verzeichnisdienste. | Verzeichnisplattform von Microsoft. |
| Wird von verschiedenen Servern und Produkten implementiert. | Nutzt LDAP, zusätzlich aber unter anderem Kerberos, DNS und SMB. |
| Legt keine Windows-Domäne, Gruppenrichtlinien oder Domänencontroller fest. | Stellt genau solche Funktionen für Windows-orientierte Umgebungen bereit. |
Active Directory kann daher über LDAP angesprochen werden, LDAP ist jedoch nicht mit Active Directory gleichzusetzen.
Wie wird LDAP sicher betrieben?
- Transport schützen: TLS erzwingen, Zertifikate vollständig validieren und einfache Bind-Operationen niemals über Klartext übertragen.
- Rechte begrenzen: Für Anwendungen eigene Dienstkonten mit kleinem Suchbereich, nur benötigten Attributen und ohne unnötige Schreibrechte verwenden.
- Zugriffe kontrollieren: Anonyme Abfragen, öffentliche Verzeichnisinformationen und administrative Schnittstellen auf das erforderliche Maß reduzieren.
- Eingaben behandeln: Benutzereingaben gemäß LDAP-Syntax maskieren und Filter nicht durch Stringverkettung bauen, um LDAP Injection zu verhindern.
- Geheimnisse schützen: Bind-Passwörter nicht im Quellcode ablegen, regelmäßig wechseln und bevorzugt über ein Secret-Management bereitstellen.
- Überwachen: Fehlgeschlagene Bind-Versuche, ungewöhnlich breite Suchen, Massenabfragen und Änderungen privilegierter Gruppen protokollieren.
Welche typischen Fehler gibt es?
Häufig akzeptieren Clients beliebige Zertifikate, nutzen ein überprivilegiertes gemeinsames Dienstkonto oder lesen vorsorglich den gesamten Verzeichnisbaum. Auch unzureichende Größen- und Zeitlimits können teure Suchen ermöglichen. Anwendungen verlassen sich zudem manchmal allein auf eine Gruppenangabe aus LDAP, ohne verschachtelte Gruppen, veraltete Mitgliedschaften oder den Anwendungskontext sauber zu berücksichtigen. Sichere LDAP-Nutzung erfordert deshalb sowohl eine gehärtete Serverkonfiguration als auch einen defensiv programmierten Client.
Vielen Dank für dein Feedback! Wir werden es prüfen und unseren Artikel anpassen.