Du kannst die Anmeldung an teamspace/projectfacts über einen LDAP-Server (z. B. Active Directory) abwickeln. Diese Anleitung zeigt, wie du die nötigen DNs ermittelst, die web.xml anpasst und die Parameter setzt.
LDAP über SSL: Verwendest du eine verschlüsselte LDAP-Verbindung, muss das LDAP-Zertifikat zuvor in den Java-Truststore importiert werden. Das beschreibt der Abschnitt „SSL-Zertifikat in den Java-Truststore importieren” in Weitere Server-Konfigurationen.
DNs und Hostnamen ermitteln
Verbinde dich auf den LDAP-Server und ermittle die Werte über die CMD:
- User Base DN:
dsquery user -name <verwendeter Benutzername> - Group Base DN:
dsquery group -name <Gruppenname> - LDAP-Hostname:
set L
web.xml anpassen
In der web.xml ist die LDAP-Anbindung auskommentiert. Kommentiere den Block ein und passe die markierten Bereiche an. Ist der Block nicht vorhanden, füge ihn ein.
Parameter-Erklärung für LDAP
| Bezeichnung | Beschreibung |
|---|---|
| app.authMethod | Kann auf „basic” gesetzt werden, wenn man „Basic Authentication” statt eines Formulars für den Login verwenden möchte. |
| app.authBackend | Für die LDAP-Anbindung muss hier „ldap” eingetragen werden. |
| app.defaultMandant | Die ID des Mandanten. |
| ldap.host | Vollständige URL zum LDAP-Server (z. B. ldap://127.0.0.1:389). |
| ldap.authMethod | „none”, „simple” oder eine sasl_mech-Liste (siehe Oracle-JNDI-Dokumentation). |
| ldap.allowOfflineLogin | Wie lange man sich nach dem letzten erfolgreichen LDAP-Login noch einloggen darf, wenn der LDAP nicht erreichbar ist (Wert in Stunden). |
| ldap.userBaseDN | Der DN, in dem nach Benutzern gesucht wird. |
| ldap.groupDN | DN der Gruppe, zu der ein Benutzer gehören muss, um sich einloggen zu dürfen. |
| ldap.principalPattern | Bestimmt, ob und wie der „rohe” Loginname zu einem Principal umformatiert wird (z. B. {0}@5p). |
| ldap.userUID | Attribut, das den Benutzer eindeutig identifiziert (der Loginname). Beim AD i. d. R. sAMAccountName. |
| ldap.userGUID | Attribut, das den Benutzer global eindeutig identifiziert und auch beim Umbenennen/Verschieben gleich bleibt. Beim AD die objectGUID. |
| ldap.userSearch | Suchfilter, um einen Benutzer zu finden. Platzhalter für den Benutzernamen ist {0}. |
| ldap.searchUserDN | Der DN eines Benutzers, der im LDAP nach Benutzern suchen darf. |
| ldap.searchUserPw | Passwort für den Such-Benutzer. |
LDAP-Benutzer zuweisen
Ordne im teamspace-Mandanten die LDAP-Benutzer den teamspace-Benutzern zu:
Häufige Probleme
Warum kommt die verschlüsselte LDAP-Verbindung (LDAP über SSL) nicht zustande? Ohne das LDAP-Zertifikat im Java-Truststore schlägt die verschlüsselte Verbindung fehl. Importiere es zuerst – das beschreibt „SSL-Zertifikat in den Java-Truststore importieren” in Weitere Server-Konfigurationen.
Warum dürfen sich Benutzer einer Gruppe nicht einloggen?
Über ldap.groupDN legst du fest, welcher Gruppe ein Benutzer angehören muss, um sich anmelden zu dürfen. Prüfe, ob der DN stimmt und der Benutzer Mitglied ist.
Warum wird ein Benutzer nicht gefunden?
Such-Basis und Suchfilter müssen passen: ldap.userBaseDN bestimmt, wo gesucht wird, ldap.userSearch den Filter (Platzhalter {0}), ldap.userUID das identifizierende Attribut (beim AD i. d. R. sAMAccountName).
Typische Fragen & Anforderungen
| Du möchtest … | So geht’s |
|---|---|
| Login per Formular durch Basic Auth ersetzen | app.authMethod auf „basic” setzen. |
| Anmeldung soll auch bei LDAP-Ausfall kurz funktionieren | ldap.allowOfflineLogin (in Stunden) setzen. |
| Nur Mitglieder einer bestimmten Gruppe zulassen | Die Gruppe über ldap.groupDN festlegen. |
| LDAP über SSL verbinden | Zuvor das Zertifikat in den Java-Truststore importieren (siehe Weitere Server-Konfigurationen). |
Verwandte Themen
- Weitere Server-Konfigurationen Installation Konfiguration
- Einführung in die Berechtigungen Berechtigungen Einführung
- So ist teamspace technisch aufgebaut Installation Konzept