Einführung / Konfiguration des FirstSpirit-Servers / Konfigurationsdateien (FirstSpirit-Server) / Anmeldevorgang (fs-jaas.conf) / Anmeldung über den HTTP Request-Header

Anmeldung über den HTTP Request-Header

Inhaltsverzeichnis

JAAS-Modulname: de.espirit.firstspirit.server.authentication.RequestHeaderLoginModule

Dieses Modul wird in Verbindung mit einem Web-Access-Management-System verwendet, also einem Reverse Proxy mit gleichzeitiger Authentifizierungsfunktion. Der Reverse Proxy wird in der Netztopologie in der Nähe des für FirstSpirit verwendeten WebApp-Servers betrieben, also z. B. Reverse Proxy in der DMZ und FirstSpirit-WebApp-Server im LAN oder ebenfalls DMZ.

Der Reverse Proxy authentifiziert selbstständig den Benutzer, der mittels Webbrowser die FirstSpirit-Startseite aufruft. Das Verfahren zur Authentifizierung ist dabei vollständig unabhängig von FirstSpirit, z. B. über Kerberos, eine PKI („public key infrastructure“)-Smartcard oder ein HTML-Eingabeformular. Nach erfolgreicher Authentifizierung übermittelt der Reverse Proxy in jedem HTTP-Request zwischen Reverse Proxy und FirstSpirit-WebApp-Server, den Benutzernamen des authentifizierten Benutzers als Eintrag im HTTP Request-Header.

Um die Authentizität des übermittelten Benutzernamens im HTTP Request Header sicherzustellen, überprüft das RequestHeaderLoginModule entweder die IP-Adresse des absendenden Proxies oder dessen HTTPS-Client-Zertifikat (siehe Konfiguration).

FirstSpirit übernimmt anschließend den übermittelten Benutzernamen als FirstSpirit-Benutzernamen. Eine zusätzliche Authentifizierung seitens des Benutzers an FirstSpirit ist somit nicht notwendig.

Parameter:

authHeader

Name des HTTP-Headers, in den der Reverse Proxy den Benutzernamen einträgt (Beispiel für IBM Webseal: iv-user)

allowedCerts

Name (Common Name DN) des HTTPS-Client-Zertifikats des Reverse Proxys. Mehrere Zertifikatsnamen werden mit ; getrennt. Alle eingehenden Zertifikate werden anschließend gegen den Truststore der JVM des FirstSpirit WebApp-Servers geprüft. Das RequestHeaderLoginModule liest den Benutzernamen aus dem HTTP-Header nur bei HTTP-Requests mit einem gültigen Zertifikat aus, so dass keine Möglichkeit besteht, ohne Authentifizierung, nur durch Angabe des HTTP-Headers eine Anmeldung an FirstSpirit zu erlangen.

Um während der Installation den korrekten Namen des Client-Zertifikats zu ermitteln:

  • die FirstSpirit-WebApps im Loglevel DEBUG betreiben, dann
  • den Zertifikatnamen aus der Logdatei firstspirit.log auslesen und als Parameterwert eintragen.           

allowedAddrs

Falls der Parameter allowedCerts nicht definiert ist, z. B. bei Testumgebungen mit geringer Sicherheitsanforderung, muss der Parameter allowedAddrs verwendet werden. Hier wird die IP-Adresse des Reverse Proxys übergeben. Nur bei HTTP-Requests von dieser Adresse aus wird der Benutzername aus dem HTTP-Header ausgelesen. Mehrere IP-Adressen werden mit ,oder ;getrennt. Die Parameter allowedAddrs und allowedCerts können auch kombiniert werden, so dass Zertifikat und gleichzeitig IP‑Adresse überprüft werden.

Das RequestHeaderLoginModule wird im Bereich websso der Datei fs-jaas.conf (über FirstSpirit ServerMonitoring / Konfiguration / Anmeldekonfiguration) eingetragen:

/* FirstSpirit start page with SSO: ContentCreator, SiteArchitect with Webstart */
websso {         
de.espirit.firstspirit.server.authentication.FSTicketLoginModule sufficient;
//de.espirit.firstspirit.server.authentication.KerberosLoginModule
optional useFullPrincipal="false";
//de.espirit.firstspirit.server.authentication.RequestHeaderLoginModule
optional authHeader="iv-user" 
//allowedCerts="CN=proxy1,OU=editors,DC=domain;CN=proxy2,OU=editors,DC=domain"
//allowedAddrs="10.11.12.13;10.11.12.14";
//de.espirit.firstspirit.server.authentication.LdapLoginModule optional section="LDAP";
de.espirit.firstspirit.server.authentication.FSUserLoginModule optional;
};

Die Pfade und Bezeichnungen müssen entsprechend des lokalen Systems angepasst werden.

Zur Konfiguration des HTTPS-Connectors bitte Konfiguration des HTTPS-Servers sowie folgende Hinweise beachten:

Wichtig Die Konfiguration ist abhängig von der spezifischen Systemumgebung, in der das Modul eingesetzt wird. Die nachfolgenden Konfigurationsanpassungen sind lediglich als Beispiel zu verstehen und erheben keinen Anspruch auf Vollständigkeit.

Bei Verwendung einer organisationseigenen CA und Tomcat als WebApp-Server muss in tomcat/bin/setenv.sh bei JAVA_OPTIONS auf einen gültigen TrustStore verwiesen werden, z. B.:

-Djavax.net.ssl.trustStore=/opt/tomcat/conf/fs-truststore.jks

-Djavax.net.ssl.trustStorePassword=changeit

Logging

Auftretende Fehler und Infomeldungen werden dem Loggingsystem „log4j“ (siehe auch https://logging.apache.org/log4j/1.2/manual.html) übergeben. Dazu muss in der Datei fs-logging.conf (über ServerMonitoring / Konfiguration / Protokollierung) folgender Aufruf hinzugefügt werden (wobei die Loglevel DEBUG, INFO und ERROR frei gewählt werden können):

log4j.logger.de.espirit.firstspirit.server.authentication.RequestHeaderLoginModule=DEBUG

Nach dem Server-Neustart werden die Logausgaben werden in firstspirit5/log/fs-server.log angezeigt. Auch die übermittelten Zertifikatsnamen (DN) sind dort ablesbar.

Das Loglevel sollte nach dem erfolgreichen Test-Login auf die Standardeinstellung zurückgesetzt werden:

log4j.logger.de.espirit.firstspirit.server.authentication.RequestHeaderLoginModule=INFO  

© 2005 - 2024 Crownpeak Technology GmbH | Alle Rechte vorbehalten. | FirstSpirit 2024.12 | Datenschutz