Einführung / Konfiguration des FirstSpirit-Servers / Konfigurationsdateien (FirstSpirit-Server) / FirstSpirit-Server (fs-server.conf) / LDAP

Bereich: LDAP

Inhaltsverzeichnis

Im FirstSpirit-Server lassen sich verschiedene LDAP-Konfigurationen (sog. „Sections“) anlegen. Der Name einer Section wird definiert über den Eintrag in der Konfigurationsdatei fs-jaas.conf (siehe Konfiguration des Anmeldevorgangs (fs-jaas.conf)). Die Konfiguration einer Section erfolgt in der Konfigurationsdatei fs-server.conf (Bereich LDAP). Vor jedem Konfigurations-Parameter wird der Section-Name (aus der fs-jaas.conf) angegeben, der der Form „LDAP_n“ entsprechen muss, wobei n die Section-Nummer ist, die fortlaufend bei 1 beginnend durchnummeriert wird. Falls nur 1 LDAP-Section verwendet wird, kann die Section auch „LDAP“ genannt werden.

LDAP_n.parameter=wert

Die Namen der LDAP-Attribute müssen in derselben Groß-/Kleinschreibung eingetragen werden, wie sie im LDAP-Verzeichnis vorhanden sind!

Wichtig Zum Auskommentieren der folgenden Parameter muss ein Leerstring als Wert angegeben werden:                   

LDAP.IMPORT_USER.LOGIN_ATTRIBUTE=
LDAP.IMPORT_USER.NAME_ATTRIBUTE=
LDAP.IMPORT_USER.EMAIL_ATTRIBUTE=
LDAP.IMPORT_USER.PHONE_ATTRIBUTE=
LDAP.IMPORT_USER.ABBREVIATION_ATTRIBUTE=


Ein Auskommentieren dieser Parameter durch ein voranstehendes # hat keine Auswirkung, da in diesem Fall der Standardwert verwendet wird.

Im nachfolgenden Konfigurationsbeispiel zur Anbindung an den LDAP-Server des Microsoft Active Directory (unter Verwendung von LDAP.AUTHENTICATION= SEARCH_BIND) wurde als Section-Name „LDAP“ gewählt. Abhängig von der Konfiguration der fs-jaas.conf (vgl. Konfiguration des Anmeldevorgangs (fs-jaas.conf)) können auch andere Section-Namen gewählt werden, und es können auch mehrere unterschiedliche LDAP-Sections gleichzeitig definiert sein.

LDAP.NAME=e-spirit.de
LDAP.HOST_URL=ldap://server1 ldap://server2 ldap://server3
LDAP.SSL=FALSE
LDAP.AUTHENTICATION=SEARCH_BIND
LDAP.SEARCH.BIND_DN=cn=ldapuser,cn=users,dc=e-spirit,dc=de
LDAP.SEARCH.BIND_PASSWORD=ldappassword
LDAP.SEARCH.BASE_DN=ou=mitarbeiter,ou=Dortmund,dc=e-spirit,dc=de
LDAP.SEARCH.FILTER=(sAMAccountName=$USER_LOGIN$)
LDAP.IMPORT_USER=TRUE
LDAP.IMPORT_USER.LOGIN_ATTRIBUTE=sAMAccountName
LDAP.IMPORT_USER.NAME_ATTRIBUTE=givenName,sn
LDAP.IMPORT_USER.EMAIL_ATTRIBUTE=mail
LDAP.IMPORT_USER.GROUP_ATTRIBUTE=memberof
LDAP.IMPORT_USER.PHONE_ATTRIBUTE=telephoneNumber
LDAP.IMPORT_USER.ABBREVIATION_ATTRIBUTE=initials

LDAP.NAME

Bezeichnung der entsprechenden LDAP-Section, z. B. der Domain-Name. Die Beschreibung erscheint im Dialog „Benutzer editieren“ (siehe Benutzer).

LDAP.HOST_URL

LDAP-URL der LDAP-Section in der Form ldap://hostname (falls LDAP.SSL=false) oder ldaps://hostname (falls LDAP.SSL=true).

Für jede Section wird mindestens ein LDAP-Server eingetragen, der LDAP-Daten bereitstellt. Zur Erhöhung der Ausfallsicherheit können mehrere LDAP-Server eingetragen werden, die jeweils dieselben LDAP-Daten bereitstellen müssen.

LDAP.TIMEOUT

Fällt der Server aus oder braucht zu lange für eine Antwort (>30 s), so kann es zu Timeouts kommen:

  1. Timeout bei der Anmeldung an der Root-Webapp
  2. Timeout der LDAP-Connection

Die Zeitspanne für diese Timeouts kann über die Parameter:

erhöht werden

Beispiel: Konfiguration des Timeouts der LDAP-Connection (Standardwert 30):

// connect and read timeout in seconds
LDAP.TIMEOUT=30

LDAP.SSL

Hier kann die verschlüsselte SSL-Übertragung aktiviert (Wert: true) oder deaktiviert (Wert: false) werden (siehe Verwendung von TLS oder SSL).

LDAP.AUTHENTICATION

Es gibt unterschiedliche Möglichkeit für die Anmeldung am Server. Mögliche Werte sind:

  • BIND: Name und Passwort werden an den LDAP-Server geschickt. Dazu muss der „Distinguished Name“ (DN), d.h. der eindeutige Schlüssel zur Identifizierung des Users innerhalb des LDAP-Servers bekannt sein. Falls der DN existiert, wird das übergebene Passwort mithilfe der „Bind“-Operation geprüft.
    BIND kann nur verwendet werden, wenn die LDAP-DNs der Benutzerkonten alle innerhalb desselben LDAP-Ordners liegen. Im Beispiel zum Parameter LDAP.BIND.DN (s.u.) ist das der Ordner mit dem DN
    ou=Benutzer,ou=Dortmund,dc=e-spirit,dc=de.
    Falls die Benutzerkonten über verschiedene Ordner verteilt sind, muss entweder SEARCH_BIND verwendet oder für jeden der Benutzer-Ordner eine eigene LDAP-Section in fs-server.conf eingetragen werden.
  • SEARCH_BIND: Falls der „Distinguished Name“ (DN) eines Users nicht bekannt ist, oder Benutzerkonten in verschiedenen Zweigen des LDAP-Baums eingetragen sind, kann man ihn innerhalb eines Teilbaums des LDAP-Servers suchen. Dazu muss ein Suchfilter definiert werden. Beispiel:
    SEARCH.FILTER=(uid=$USER_LOGIN$)
    SEARCH.BASE_DN=ou=department,dc=mycompany,dc=com

    Dieser Filter sucht nach allen Einträgen im LDAP-Baum, bei denen das Attribut „uid“ gleich dem eingegebenen Login-Namen ist. Startknoten ist der Knoten mit dem DN „ou=department,dc=mycompany,dc=com“. Die Anmeldung ist erfolgreich, sobald ein auf den SEARCH.FILTER passendes Benutzerkonto gefunden wird und das übergebene Benutzer-Passwort korrekt ist.
  • SEARCH_COMPARE: Diese Option funktioniert äquivalent zu SEARCH_BIND, wobei hier aber nicht das Passwort-Attribut zur Authentifizierung verwendet wird, sondern ein beliebiges anderes LDAP-Attribut. Beispiel:
    SEARCH.COMPARE.PASSWORD_ATTRIBUTE_NAME=mail
    In diesem Fall muss das eingegebene Passwort mit dem Inhalt des „mail“-Attributes übereinstimmen.

Wichtig Bei Verwendung von LDAP.AUTHENTICATION=SEARCH_BIND oder LDAP.AUTHENTICATION=SEARCH_COMPARE ist in der Regel die Angabe von LDAP.SEARCH.BIND_DN und LDAP.SEARCH.BIND_PASSWORD (s.u.) notwendig. Die Angabe ist nur dann nicht notwendig, wenn der LDAP-Server ohne Authentifizierung abgefragt werden kann. Dies kommt aber in Produktivumgebungen eigentlich nicht vor.

LDAP.BIND.DN

DN der Benutzerkonten, die zur Anmeldung an FirstSpirit verwendet werden können. Dieser Parameter ist nur sinnvoll in Verbindung mit LDAP.AUTHENTICATION=BIND. Als Platzhalter für den FirstSpirit-Benutzernamen wird $USER_LOGIN$ eingetragen. Beispiel:

LDAP_1.BIND.DN=cn=$USER_LOGIN$,ou=Dortmund,dc=e-spirit,dc=de

Komplettes Konfigurationsbeispiel unter Verwendung von LDAP.AUTHENTICATION=BIND für Active Directory:

LDAP_1.NAME=e-Spirit
LDAP_1.HOST_URL=ldap://ldapserver1 ldap://ldapserver2
LDAP_1.SSL=FALSE
LDAP_1.AUTHENTICATION=BIND
LDAP_1.BIND.DN=cn=$USER_LOGIN$,ou=Benutzer,ou=Dortmund,dc=e-spirit,dc=de
LDAP_1.IMPORT_USER=TRUE
LDAP_1.IMPORT_USER.LOGIN_ATTRIBUTE=sAMAccountName
LDAP_1.IMPORT_USER.NAME_ATTRIBUTE=displayName
LDAP_1.IMPORT_USER.EMAIL_ATTRIBUTE=mail
LDAP_1.IMPORT_USER.GROUP_ATTRIBUTE=memberof
LDAP_1.IMPORT_USER.PHONE_ATTRIBUTE=telephoneNumber
LDAP_1.IMPORT_USER.ABBREVIATION_ATTRIBUTE=initials

LDAP.SEARCH.BIND_DN

LDAP-DN eines technischen Benutzerkontos, das zum Durchsuchen des LDAP-Servers verwendet wird, um ein DN eines anzumeldenden FirstSpirit-Benutzers zu finden. Das technische Benutzerkonto benötigt Leseberechtigung auf allen LDAP-Attributen der Redakteurs-Benutzerkonten, ausgenommen dem Passwort-Attribut. Die Redakteurs-Benutzerkonten benötigen keine Leseberechtigung auf ihren LDAP-Attributen.

LDAP.SEARCH.BIND_PASSWORD

Passwort zum LDAP-DB des für SEARCH.BIND_DN verwendeten technischen Benutzerkontos.

LDAP.SEARCH.BASE_DN

Der Parameter definiert den Startknoten der Suche nach LDAP-DN der anzumeldenden FirstSpirit-Benutzer. 

LDAP.SEARCH.FILTER

Über den Parameter wird ein Suchfilter definiert. Der Filter:

SEARCH.FILTER=(cn=$USER_LOGIN$)

sucht beispielsweise nach allen Einträgen im LDAP-Baum, bei denen das Attribut „cn“ gleich dem unter FirstSpirit eingegebenen Login-Namen ist. Startknoten ist der bei SEARCH.BASE_DN angegebene DN.

LDAP.IMPORT_USER

Neben der reinen Authentifizierung ist es möglich, beliebige LDAP-Attribute in die Benutzerattribute eines CMS-Benutzers zu übernehmen. Dazu muss der Parameter LDAP.IMPORT_USER auf den Wert TRUE gesetzt werden.

LDAP.IMPORT_USER.LOGIN_ATTRIBUTE

Diese Zuordnung übernimmt den Login-Namen eines LDAP-Benutzers für einen FirstSpirit-Benutzer. Der hier zugeordnete LDAP-Name wird nach dem ersten Login des jeweiligen Benutzers automatisch importiert. Falls mehrere LDAP-Sections (LDAP_1, LDAP_2, …) vorhanden sind, also die Benutzer-Anmeldungen aus verschiedenen Benutzer-Domains erfolgt, ist z. B. unter Active Directory meistens sAMAaccountName als Attribut nicht eindeutig über alle Domains, so dass hier beispielsweise der vollständige User-Principal userPrincipalName eingetragen werden sollte, der auch den Domain-Namen enthält.               
Wird für diesen Parameter ein ungültiger Wert angegeben (z. B. LDAP-Attribut liefert einen „leeren“ Wert zurück, ungültiges LDAP-Attribut usw.), wird dies folgendermaßen in der Server-Logdatei protokolliert:

INFO  17.05.2010 14:50:24.102 
(de.espirit.firstspirit.server.usermanagement.LDAPAuthentication):
[LDAP] ignoring empty LOGIN_ATTRIBUTE value!

LDAP.IMPORT_USER.NAME_ATTRIBUTE

Diese Zuordnung übernimmt den Benutzernamen eines LDAP-Benutzers für einen CMS-Benutzer. Der hier zugeordnete LDAP-Name wird nach dem ersten Login des jeweiligen Benutzers automatisch importiert.

LDAP.IMPORT_USER.EMAIL_ATTRIBUTE

Diese Zuordnung übernimmt die E-Mail-Adresse eines LDAP-Benutzers für den CMS-Benutzer. Die hier zugeordnete LDAP-E-Mail-Adresse wird beim ersten Login des jeweiligen Benutzers automatisch importiert.

LDAP.IMPORT_USER.GROUP_ATTRIBUTE

Über das LDAP-Gruppenattribut kann ein Benutzer automatisch einer bestimmten FirstSpirit-Gruppe eines FirstSpirit-Projekts anhand seiner Gruppenzugehörigkeit im LDAP zugewiesen werden.                           
Angegeben wird der Name des LDAP-Attributs, das LDAP-DNs der LDAP-Gruppen enthält, in denen der jeweilige Benutzer Mitglied ist. Das Attribut wird bei jeder Anmeldung des Benutzers erneut ausgelesen, um die Gruppenzugehörigkeit in FirstSpirit zu übernehmen. Dem Benutzerkonto werden alle als extern markierten FirstSpirit-Gruppen zugewiesen, deren in FirstSpirit zugewiesener „externer Name“ mit der LDAP-DN der LDAP-Gruppe übereinstimmt. Statt eines LDAP-DNs kann auch jede beliebige Zeichenkette verwendet werden, wobei LDAP-Server aber üblicherweise Gruppenzugehörigkeit über DNs abbilden.

LDAP.IMPORT_USER.PHONE_ATTRIBUTE

Diese Zuordnung bindet die Telefonnummer eines LDAP-Benutzers an einen CMS-Benutzer. Die hier zugeordnete LDAP-Telefonnummer wird beim ersten Login des jeweiligen Benutzers automatisch importiert.

LDAP.IMPORT_USER.ABBREVIATION_ATTRIBUTE

Diese Zuordnung bindet das Kürzel eines LDAP-Benutzers an einen CMS-Benutzer. Das hier zugeordnete LDAP-Kürzel wird beim ersten Login des jeweiligen Benutzers automatisch importiert.

Weiterführende Informationen zur Anbindung eines LDAP-Servers siehe Anbindung LDAP-Server.

© 2005 - 2022 Crownpeak Technology GmbH | Alle Rechte vorbehalten. | FirstSpirit 2023.1 | Datenschutz