Übersicht
Fess unterstützt die Integration mit LDAP-Servern (Lightweight Directory Access Protocol) und ermöglicht damit Authentifizierung und Benutzerverwaltung in Unternehmensumgebungen.
Die LDAP-Integration ermöglicht:
Benutzerauthentifizierung (Anmeldung) über Active Directory oder OpenLDAP
Gruppen- und rollenbasierte Zugriffskontrolle
Verwaltung von LDAP-Benutzern, -Rollen und -Gruppen über die Verwaltungsoberfläche (optional)
Unterstützte LDAP-Server
Fess unterstützt die Integration mit folgenden LDAP-Servern:
Microsoft Active Directory
OpenLDAP
389 Directory Server
Apache Directory Server
Andere LDAP-v3-kompatible Server
Voraussetzungen
Netzwerkzugriff auf den LDAP-Server
Dienstkonto für LDAP-Suchen (Bind-DN)
Kenntnisse der LDAP-Struktur (Base-DN, Attributnamen usw.)
Übersicht der Konfigurationsmethoden
Die LDAP-Konfiguration von Fess wird je nach Verwendungszweck an zwei Stellen verwaltet.
- Verbindungs- und Authentifizierungseinstellungen (Verwaltungsoberfläche /
system.properties) Dies sind Einstellungen für die Verbindung zum LDAP-Server und die Anmeldeauthentifizierung. Sie können im Abschnitt „LDAP“ auf der Seite „System > Allgemein“ der Verwaltungsoberfläche konfiguriert werden und werden in
app/WEB-INF/conf/system.propertiesgespeichert.- LDAP-Verwaltungsfunktionen und Verhaltenseinstellungen (
fess_config.properties) Dies sind Einstellungen für die Funktion zur Verwaltung von LDAP-Benutzern, -Rollen und -Gruppen über die Verwaltungsoberfläche sowie für das Verhalten bei der Rollenauflösung. Diese sind in
app/WEB-INF/classes/fess_config.propertiesdefiniert. Zum Ändern von Werten bearbeiten Sie diese Datei direkt.
Bemerkung
Wenn Sie ausschließlich die Anmeldeauthentifizierung verwenden möchten, genügen die „Verbindungs- und Authentifizierungseinstellungen“. Die „LDAP-Verwaltungsfunktion“ (ldap.admin.enabled) ist nur erforderlich, wenn Sie LDAP-Benutzer, -Rollen oder -Gruppen über die Verwaltungsoberfläche erstellen, aktualisieren oder löschen möchten.
Verbindungs- und Authentifizierungseinstellungen
Diese Einstellungen können im Abschnitt „LDAP“ unter „System > Allgemein“ der Verwaltungsoberfläche konfiguriert werden und werden in app/WEB-INF/conf/system.properties gespeichert. Sie können die Datei auch direkt bearbeiten.
Konfigurationsbeispiel (bei direkter Bearbeitung von system.properties):
Bemerkung
Der %s-Platzhalter wird durch Javas String.format() verarbeitet. ldap.security.principal, ldap.account.filter, ldap.group.filter und alle administrativen Filter verwenden das %s-Format (nicht das {0}-Format). Der an die Filter übergebene Benutzername wird in Fess intern automatisch gegen LDAP-Injection-Angriffe escapet.
LDAP-Verwaltungsfunktionen und Verhaltenseinstellungen
Die folgenden Eigenschaften sind in app/WEB-INF/classes/fess_config.properties definiert. Zum Ändern von Werten bearbeiten Sie diese Datei.
Aktivierung der Verwaltungsfunktion
Filter und Basis-DNs für die Benutzer-/Rollen-/Gruppenverwaltung
Wird verwendet, um LDAP-Einträge über die Verwaltungsoberfläche zu bearbeiten, wenn ldap.admin.enabled=true gesetzt ist.
Steuerung der Rollenauflösung und des Verhaltens
Steuert das Verhalten bei der Rollen- und Gruppenauflösung nach der Anmeldung.
Attributzuordnung
Die Zuordnung von LDAP-Attributen zu Fess-Benutzerattributen wird über ldap.attr.*-Eigenschaften definiert. In der Regel ist keine Änderung erforderlich, sie kann jedoch bei abweichendem Schema angepasst werden. Typische Beispiele:
Bemerkung
Einige Eigenschaften stimmen nicht mit dem LDAP-Attributnamen überein, z. B. wird ldap.attr.state auf st und ldap.attr.city auf l gemappt. Die vollständige Liste finden Sie in fess_config.properties in den Zeilen, die mit ldap.attr. beginnen.
Active-Directory-Konfiguration
Konfigurationsbeispiel für Microsoft Active Directory (system.properties oder Verwaltungsoberfläche).
Zur Auflösung verschachtelter Gruppen (Nested Groups) kann die Active-Directory-spezifische LDAP_MATCHING_RULE_IN_CHAIN-Regel verwendet werden.
OpenLDAP-Konfiguration
Konfigurationsbeispiel für OpenLDAP.
Bemerkung
Standard-OpenLDAP verfügt nicht über das Attribut memberOf, daher werden Gruppen über ldap.group.filter aufgelöst. Wenn das memberof-Overlay aktiviert ist, kann auch ldap.memberof.attribute verwendet werden.
Sicherheitseinstellungen
LDAPS (SSL/TLS)
Verschlüsselte Verbindung verwenden:
Bei selbstsignierten Zertifikaten importieren Sie das Zertifikat in den Java-Truststore.
Passwortschutz
ldap.admin.security.credentials wird in system.properties gespeichert. Die über die Verwaltungsoberfläche eingegebenen Anmeldedaten werden intern verschlüsselt abgelegt. Beschränken Sie die Dateizugriffsberechtigungen entsprechend.
Failover
Um ein Failover auf mehrere LDAP-Server zu konfigurieren, geben Sie in ldap.provider.url mehrere URLs durch Leerzeichen getrennt an.
Fehlerbehebung
Verbindungsfehler
Symptom: LDAP-Verbindung schlägt fehl
Zu prüfen:
Ist der LDAP-Server gestartet?
Ist der Port in der Firewall geöffnet (389 oder 636)?
Ist
ldap.provider.urlkorrekt (ldap://oderldaps://)?Sind
ldap.admin.security.principalund das Passwort korrekt?
Authentifizierungsfehler
Symptom: Benutzerauthentifizierung schlägt fehl
Zu prüfen:
Ist die Vorlage in
ldap.security.principalkorrekt (enthält sie%s)?Existiert der Benutzer innerhalb des angegebenen Basis-DN?
Ist
ldap.account.filterkorrekt?
Gruppen/Rollen können nicht abgerufen werden
Symptom: Gruppen oder Rollen des Benutzers können nicht abgerufen werden
Zu prüfen:
Ist
ldap.group.filterkorrekt?Ist
ldap.memberof.attributekorrekt (bei Active Directory)?Befinden sich die Gruppen innerhalb des Suche-Basis-DN?
Sind die
ldap.role.search.*.enabled-Einstellungen aktiviert?
Benutzerverwaltung über die Verwaltungsoberfläche nicht möglich
Symptom: LDAP-Benutzer können über die Verwaltungsoberfläche nicht erstellt, bearbeitet oder gelöscht werden
Zu prüfen:
Ist
ldap.admin.enabledauftruegesetzt?Sind die administrativen Basis-DNs wie
ldap.admin.user.base.dnkorrekt?Hat das Dienstkonto von
ldap.admin.security.principalSchreibrechte?
Debug-Einstellungen
Um detaillierte Protokolle auszugeben, fügen Sie einen Logger in app/WEB-INF/classes/log4j2.xml hinzu.
Referenzinformationen
Konfiguration rollenbasierter Suche - Rollenbasierte Zugriffskontrolle
SSO-Konfiguration mit Windows-integrierter Authentifizierung - SPNEGO (Kerberos)-Authentifizierung
Benutzer - Benutzerverwaltungsleitfaden