LDAP

Veröffentlicht am:

Die wichtigsten Befehle zum Merken

  • ldapsearch -b BASIS -s base — einen Verzeichniseintrag untersuchen.
  • ldapsearch -ZZ — StartTLS vor der Suche zwingend verlangen.

Befehle und Optionen

Befehl oder Option Bedeutung
-x Einfache Authentifizierung; hier ohne Zugangsdaten anonym.
-LLL Kompaktes LDIF ohne Kommentare und Versionsangabe ausgeben.
-H ldap://localhost:389 Den vorhandenen lokalen LDAP-Server wählen.
-ZZ Erfolgreiches StartTLS mit bereits eingerichtetem Zertifikatsvertrauen verlangen.
-b '' / -b 'dc=example,dc=test' Root DSE / benannten Testeintrag durchsuchen.
-s base Nur den Basiseintrag betrachten, keine Untereinträge.
'(objectClass=*)' Eintrag mit objectClass-Attribut auswählen.
Abschließende Attributnamen Nur genannte Attribute anfordern; dn kennzeichnet den Eintrag.

Anführungszeichen erhalten die leere Basis und schützen Filterklammern und Stern vor der Shell.

Die entscheidenden Konzepte

1. LDAP greift auf ein Verzeichnis zu

LDAP ist ein Protokoll für Verzeichnisse: strukturierte Einträge mit Attributen wie Namen, Gruppen und Dienstinformationen. Ein Verzeichnis ist oft für viele Abfragen und vergleichsweise wenige Änderungen ausgelegt.

LDAP allein ist kein vollständiges Identitätssystem. Active Directory verbindet Verzeichniszugriff beispielsweise mit weiteren Diensten und Protokollen. Ein LDAP-Endpunkt bedeutet nicht, dass jede Anmeldung oder Richtlinie LDAP verwendet.

2. Ein Distinguished Name lokalisiert einen Eintrag

Ein Distinguished Name, kurz DN, bezeichnet einen Eintrag im Verzeichnisbaum. Die Komponenten von dc=example,dc=test beschreiben eine Position in dieser Hierarchie, keine HTTP-URL.

Einträge besitzen Attribute. Objektklassen bestimmen im Schema erforderliche und erlaubte Attribute. Die besondere Root DSE liefert Serverinformationen wie verfügbare Namenskontexte. Sie enthält nicht einfach sämtliche Benutzerattribute.

3. Eine Suche hat Startpunkt und Grenze

Eine Suche kombiniert Basis-DN, Suchumfang, Filter und angeforderte Attribute. Base-Scope betrachtet einen Eintrag; weitere Umfänge können Untereinträge einschließen. Bewusste Auswahl hält Abfragen verständlich und vermeidet unnötige Datenabfragen.

Ein Filter wählt passende Einträge. Er ist weder Shell-Muster noch SQL. Anwendungen müssen ungeprüfte Filterwerte nach LDAP-Regeln maskieren, statt sie direkt in eine Filterzeichenfolge einzusetzen.

4. Bind stellt Identität her, Zugriffsregeln bestimmen Sichtbarkeit

Ein Bind legt den Authentifizierungszustand einer Verbindung fest. Danach wendet der Server Zugriffsregeln auf Suchen und Änderungen an. Anonymer Zugriff kann Metadaten zeigen und fast alle Einträge verbergen.

Einfache Passwortauthentifizierung braucht geschützten Transport. StartTLS erweitert eine LDAP-Verbindung um TLS. Der verpflichtende Upgrade verhindert ungeschütztes Fortfahren bei einem Fehler. TLS gewährt keine Verzeichnisrechte und macht eine anonyme Suche nicht zur Benutzeranmeldung.

Ein kleines Beispiel

Optional: Nutze das beschriebene vorhandene Testverzeichnis. Das Zertifikat muss zu localhost passen; seine CA muss im LDAP-Client vertrauenswürdig sein. Die Befehle installieren und konfigurieren keinen Server.

ldapsearch -x -LLL -H ldap://localhost:389 -ZZ -b '' -s base '(objectClass=*)' namingContexts supportedLDAPVersion
ldapsearch -x -LLL -H ldap://localhost:389 -ZZ -b 'dc=example,dc=test' -s base '(objectClass=*)' dn objectClass

Die erste Suche sollte erlaubte Namenskontexte und Protokollversionen zeigen. Die zweite fragt ausschließlich Testbasis und Objektklassen ab. Vergleiche deren DN mit einem Namenskontext der ersten Antwort.

Ein TLS-Fehler betrifft Transport oder Vertrauen. No such object bedeutet, dass die Basis nicht gefunden oder offengelegt wurde; Zugriffsfehler zeigen eine Berechtigungsgrenze. Leere Ergebnisse beweisen kein benutzerloses Verzeichnis. Beide Abfragen lesen nur; Aufräumen entfällt.

Merke dir: Eine LDAP-Abfrage sucht bestimmte Attribute in einem begrenzten Verzeichnisbereich unter den Zugriffsrechten der Verbindung.