Ü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