Konfigurieren von LDAP mit AEM 6

LDAP (die L leicht D Verzeichnis A Zugriff P Protokoll) wird für den Zugriff auf zentrale Verzeichnisdienste verwendet. Auf diese Weise wird der Aufwand für die Verwaltung von Benutzerkonten reduziert, da sie von mehreren Anwendungen aufgerufen werden können. Ein solcher LDAP-Server ist Active Directory. LDAP wird häufig für Single-Sign-On-Szenarien eingesetzt, durch die ein Benutzer mit einer Anmeldung auf mehrere Anwendungen zugreifen kann.

Benutzerkonten können zwischen dem LDAP-Server und dem Repository synchronisiert werden, wobei die LDAP-Kontodetails im Repository gespeichert werden. Mit dieser Funktion können die Konten Repository-Gruppen zugewiesen werden, um die erforderlichen Berechtigungen und Berechtigungen zuzuweisen.

Das Repository nutzt die LDAP-Authentifizierung zum Authentifizieren solcher Benutzer. Dabei werden die Anmeldeinformationen zur Validierung an den LDAP-Server weitergegeben. Dies ist erforderlich, um Zugriff auf das Repository zu gewähren. Zur Leistungsverbesserung können erfolgreich validierte Anmeldeinformationen vom Repository zwischengespeichert werden. Über ein Ablauftimeout wird dann sichergestellt, dass nach einem angemessenen Zeitraum eine erneute Validierung erfolgt.

Wenn ein Konto vom LDAP-Server entfernt wird, wird die Validierung nicht mehr gewährt und der Zugriff auf das Repository wird verweigert. Details zu im Repository gespeicherten LDAP-Konten können ebenfalls bereinigt werden.

Die Verwendung solcher Konten ist für Ihre Benutzer transparent. Das heißt, sie sehen keinen Unterschied zwischen Benutzer- und Gruppenkonten, die aus LDAP erstellt wurden, und Konten, die ausschließlich im Repository erstellt wurden.

In AEM 6 umfasst die LDAP-Unterstützung eine neue Implementierung, für die ein anderer Konfigurationstyp erforderlich ist als für frühere Versionen.

Alle LDAP-Konfigurationen sind jetzt als OSGi-Konfigurationen verfügbar. Sie können über die folgende Webverwaltungskonsole konfiguriert werden:
https://serveraddress:4502/system/console/configMgr

Damit LDAP mit AEM funktioniert, müssen Sie drei OSGi-Konfigurationen erstellen:

  1. einen LDAP-Identitäts-Provider (IDP),
  2. Einen Synchronisierungshandler.
  3. Ein externes Anmeldemodul.
HINWEIS

Sehen Sie sich das Tutorial Oak's External Login Module – Authenticating with LDAP and Beyond an, um sich ausführlich über externe Anmeldemodule zu informieren.

Weitere Informationen zum Konfigurieren von Experience Manager mit Apache DS finden Sie unter Konfigurieren von Adobe Experience Manager 6.5 für Apache Directory Service.

Konfigurieren des LDAP-Identitäts-Providers

Über den LDAP-Identitäts-Provider wird definiert, wie Benutzer vom LDAP-Server abgerufen werden.

Sie finden ihn in der Verwaltungskonsole unter dem Namen Apache Jackrabbit Oak LDAP Identity Provider.

Die folgenden Konfigurationsoptionen sind für den LDAP-Identitäts-Provider verfügbar:

LDAP-Provider-Name Name dieser LDAP-Provider-Konfiguration
LDAP-Server-Hostname
Hostname des LDAP-Servers
LDAP-Server-Anschluss Die Anschlussnummer des LDAP-Servers
SSL verwenden Gibt an, ob eine SSL-Verbindung (LDAPs) verwendet werden soll.
TLS verwenden Gibt an, ob TLS bei Verbindungen gestartet werden soll.
Zertifikatüberprüfung deaktivieren Gibt an, ob die Validierung des Serverzertifikats deaktiviert werden soll.
Bindungs-DN DN des Benutzers für die Authentifizierung. Wenn dieses Feld leer gelassen wird, wird eine anonyme Bindung durchgeführt.
Bindungspasswort Passwort des Benutzers für die Authentifizierung
Zeitüberschreitung der Suche Zeit bis zum Timeout einer Suche
Maximaler Admin-Pool aktiv Die maximale aktive Größe des Admin-Verbindungspools.
Maximale Anzahl aktiver Benutzerpools Die maximale aktive Größe des Benutzerverbindungspools.
Benutzerbasis-DN Der DN für Benutzersuchen
Benutzerobjektklassen Die Liste der Objektklassen, die ein Benutzereintrag enthalten muss.
Benutzer-ID-Attribut Name des Attributs, das die Benutzer-ID enthält.
Zusätzlicher Filter für Benutzerinnen und Benutzer Zusätzlicher LDAP-Filter zur Verwendung bei der Suche nach Benutzerinnen und Benutzern. Der endgültige Filter ist wie folgt formatiert: '(&(<idAttr>=<userId>)(objectclass=<objectclass>)<extraFilter>)' (user.extraFilter)
Benutzer-DN-Pfade Steuert, ob der DN zur Berechnung eines Teils des Zwischenpfads verwendet werden soll.
Gruppenbasis-DN Der Basis-DN für Gruppensuchen.
Gruppenobjektklassen Die Liste der Objektklassen, die ein Gruppeneintrag enthalten muss.
Gruppennamenattribut Name des Attributs, das den Gruppennamen enthält.
Zusätzlicher Filter für Gruppen Zusätzlicher LDAP-Filter zur Verwendung bei der Suche nach Gruppen. Der endgültige Filter ist wie folgt formatiert: '(&(<nameAttr>=<groupName>)(objectclass=<objectclass>)<extraFilter>)'
Gruppen-DN-Pfade Steuert, ob der DN zur Berechnung eines Teils des Zwischenpfads verwendet werden soll.
Gruppenmitgliedsattribut Gruppenattribut, das ein oder mehrere Mitglieder einer Gruppe enthält.

Konfigurieren des Synchronisierungshandlers

Der Synchronisierungshandler definiert, wie die Identity Provider-Benutzer und -Gruppen mit dem Repository synchronisiert werden.

Sie befindet sich unter der Apache Jackrabbit Oak Standard Sync Handler in der Verwaltungskonsole.

Die folgenden Konfigurationsoptionen sind für den Synchronisierungshandler verfügbar:

Sync Handler Name Name der Synchronisierungskonfiguration.
User Expiration Time Dauer, bis synchronisierte Benutzerinnen und Benutzer abgelaufen sind.
User auto membership Liste der Gruppen, denen ein synchronisierter Benutzer automatisch hinzugefügt wird.
User property mapping Definition des Listen-Mappings für lokale Eigenschaften von externen.
User Path Prefix Das beim Erstellen von Benutzern verwendete Pfadpräfix.
User Membership Expiration Zeitraum, nach dem die Mitgliedschaft abläuft.
User membership nesting depth Gibt die maximale Tiefe der Gruppenverschachtelung zurück, wenn Mitgliedschaftsbeziehungen synchronisiert werden. Der Wert 0 deaktiviert die Suche nach Gruppenmitgliedschaften. Bei einem Wert von 1 werden nur die direkten Gruppen eines Benutzers hinzugefügt. Dieser Wert hat keine Auswirkung beim Synchronisieren einzelner Gruppen nur bei der Synchronisierung der Abstammung einer Benutzermitgliedschaft.
Group Expiration Time Dauer, bis eine synchronisierte Gruppe abläuft.
Group auto membership Liste der Gruppen, denen automatisch eine synchronisierte Gruppe hinzugefügt wird.
Group property mapping Definition des Listen-Mappings für lokale Eigenschaften von externen.
Group path prefix Das beim Erstellen von Gruppen verwendete Pfadpräfix.

Das externe Anmeldemodul

Das externe Anmeldemodul befindet sich unter der Externes Apache Jackrabbit Oak-Anmeldemodul in der Verwaltungskonsole.

HINWEIS

Das externe Anmeldemodul von Apache Jackrabbit Oak implementiert die Java™ Authentication and Authorization Service (JAAS)-Spezifikationen. Siehe Offizielles Oracle Java™-Sicherheitsreferenzhandbuch für weitere Informationen.

Die Aufgabe besteht darin, zu definieren, welcher Identitäts-Provider und welcher Synchronisierungshandler verwendet werden soll, und die beiden Module effektiv zu binden.

Folgende Konfigurationsoptionen sind verfügbar:

JAAS Ranking Angabe des Rangs (d. h. der Sortierreihenfolge) dieses Anmeldemoduleintrags. Die Einträge werden in absteigender Reihenfolge sortiert (d. h. die Konfigurationen mit höherem Rang kommen an erster Stelle).
JAAS Control Flag Eigenschaft, die angibt, ob ein LoginModule erforderlich, REQUISITE, SUFFICIENT oder OPTIONAL ist. Weitere Informationen zur Bedeutung dieser Flags finden Sie in der Dokumentation zur JAAS-Konfiguration .
JAAS Realm Der Bereichsname (oder Anwendungsname), für den das LoginModule registriert ist. Wenn kein Bereichsname angegeben wird, wird das LoginModule bei einem Standardbereich registriert, wie in der Felix JAAS-Konfiguration konfiguriert.
Identity Provider Name Name des Identitäts-Providers.
Sync Handler Name Name des Synchronisierungs-Handlers.
HINWEIS

Wenn Sie mehr als eine LDAP-Konfiguration mit Ihrer AEM-Instanz planen, müssen für jede Konfiguration separate Identitäts-Provider und Synchronisierungshandler erstellt werden.

LDAP über SSL konfigurieren

AEM 6 kann so konfiguriert werden, dass eine Authentifizierung mit LDAP über SSL erfolgt. Gehen Sie dazu wie folgt vor:

  1. Überprüfen Sie die SSL verwenden oder Verwenden von TLS Kontrollkästchen beim Konfigurieren der LDAP Identity Provider.

  2. Konfigurieren Sie den Synchronisierungshandler und das externe Anmeldemodul entsprechend Ihrer Einrichtung.

  3. Installieren Sie bei Bedarf die SSL-Zertifikate in Ihrer Java™-VM. Diese Installation kann mit dem Keytool durchgeführt werden:

    keytool -import -alias localCA -file <certificate location> -keystore <keystore location>

  4. Testen Sie die Verbindung zum LDAP-Server.

Erstellen von SSL-Zertifikaten

Selbstsignierte Zertifikate können verwendet werden, wenn AEM für die Authentifizierung mit LDAP über SSL konfiguriert werden. Nachfolgend finden Sie ein Beispiel für ein Arbeitsverfahren zum Generieren von Zertifikaten zur Verwendung mit AEM.

  1. Stellen Sie sicher, dass eine SSL-Bibliothek installiert ist und funktioniert. Dieses Verfahren verwendet OpenSSL als Beispiel.

  2. Erstellen Sie eine benutzerdefinierte OpenSSL-Konfigurationsdatei (.cnf). Diese Konfiguration kann durch Kopieren der standardmäßigen Konfigurationsdatei "openssl.cnf"und Anpassen vorgenommen werden. Auf UNIX®-Systemen befindet er sich unter /usr/lib/ssl/openssl.cnf

  3. Erstellen Sie dann den Zertifizierungsstellen-Stammschlüssel, indem Sie den nachfolgenden Befehl an einem Terminal ausführen:

    openssl genpkey -algorithm [public key algorithm] -out certificatefile.key -pkeyopt [public key algorithm option]
    
  4. Erstellen Sie anschließend ein selbstsigniertes Zertifikat:

    openssl req -new -x509 -days [number of days for certification] -key certificatefile.key -out root-ca.crt -config CA/openssl.cnf

  5. Um sicherzustellen, dass alles in Ordnung ist, überprüfen Sie das neu generierte Zertifikat:

    openssl x509 -noout -text -in root-ca.crt

  6. Vergewissern Sie sich, dass alle in der Zertifikatkonfigurationsdatei (.cnf) angegebenen Ordner vorhanden sind. Wenn nicht, erstellen Sie sie.

  7. Erstellen Sie einen zufälligen Test, indem Sie beispielsweise Folgendes ausführen:

    openssl rand -out private/.rand 8192

  8. Verschieben Sie die erstellten .pem-Dateien an die in der .cnf-Datei konfigurierten Speicherorte.

  9. Fügen Sie das Zertifikat schließlich zum Java™-Keystore hinzu.

Debugging-Protokollierung aktivieren

Die Debug-Protokollierung kann sowohl für den LDAP-Identitätsanbieter als auch für das externe Anmeldemodul aktiviert werden, um Verbindungsprobleme zu beheben.

Um die Debug-Protokollierung zu aktivieren, müssen Sie Folgendes tun:

  1. Wechseln Sie zur Web-Management-Konsole.
  2. Suchen Sie nach "Apache Sling Logging Logger Configuration"und erstellen Sie zwei Logger mit den folgenden Optionen:
  • Protokollebene: Debuggen

  • Protokolldatei logs/ldap.log

  • Meldungsmuster: {0,date,dd.MM.yyyy HH:mm:ss.SSS} *{4}* {2}

  • Logger: org.apache.jackrabbit.oak.security.authentication.ldap

  • Protokollebene: Debuggen

  • Protokolldatei: logs/external.log

  • Meldungsmuster: {0,date,dd.MM.yyyy HH:mm:ss.SSS} *{4}* {2}

  • Logger: org.apache.jackrabbit.oak.spi.security.authentication.external

Ein Wort zur Gruppenzuordnung

Benutzer, die über LDAP synchronisiert werden, können zu verschiedenen Gruppen in AEM gehören. Diese Gruppen können externe LDAP-Gruppen sein, die AEM im Rahmen des Synchronisierungsprozesses hinzugefügt werden. Sie können jedoch auch Gruppen sein, die separat hinzugefügt werden und nicht zum ursprünglichen LDAP-Gruppenzuordnungsschema gehören.

Normalerweise werden diese Gruppen von einem lokalen AEM-Administrator oder einem anderen Identitäts-Provider hinzugefügt.

Wenn ein Benutzer aus einer Gruppe auf dem LDAP-Server entfernt wird, wird die Änderung bei der Synchronisierung auf der AEM Seite angezeigt. Alle anderen Gruppenzuordnungen des Benutzers, die nicht von LDAP hinzugefügt wurden, bleiben jedoch erhalten.

AEM erkennt und verarbeitet das Bereinigen von Benutzern aus externen Gruppen mithilfe der rep:externalId -Eigenschaft. Diese Eigenschaft (mit Informationen zum ursprünglichen Identitäts-Provider) wird automatisch allen Benutzern oder Gruppen hinzugefügt, die durch den Synchronisierungshandler synchronisiert werden.

Siehe Apache Oak-Dokumentation unter Benutzer- und Gruppensynchronisierung.

Bekannte Probleme

Wenn Sie LDAP über SSL verwenden möchten, stellen Sie sicher, dass die von Ihnen verwendeten Zertifikate ohne die Netscape-Kommentaroption erstellt wurden. Wenn diese Option aktiviert ist, schlägt die Authentifizierung mit einem SSL-Handshake-Fehler fehl.

Auf dieser Seite