CMS Fiona unterstützt drei Methoden für die Authentifizierung von Benutzern des Redaktionssystems:
Für die Standardeinstellung ist keine weitere Konfiguration erforderlich.
Bei dieser Methode ist es erforderlich, die Konfiguration in der Datei CMS_INSTANCE_DIR/webapps/GUI/WEB-INF/acegi.xml
anzupassen.
Deaktivieren Sie bitte den Standard-Abschnitt (Formbased Authentication
) und aktivieren Sie stattdessen den Basic Authentication
-Abschnitt in der acegiFilterChain
. Deployen Sie anschließend die GUI-Webapp.
Passen Sie bei Single Sign-on mittels Kerberos bitte ebenfalls die Konfiguration in der Datei CMS_INSTANCE_DIR/webapps/GUI/WEB-INF/acegi.xml
an, um SSO-Authentifizierung zu verwenden. Aktivieren Sie den Remote User
-Abschnitt in der acegiFilterChain
. Auch hier deaktivieren Sie bitte den Standard-Abschnitt (Formbased Authentication
). CMS Fiona versucht dann, die Anmeldedaten aus der Server-Variablen REMOTE_USER
auszulesen. Bei erfolgreicher Kerberos-Authentifizierung (mittels mod_auth_kerb
) hinterlegt der Apache das Login in dieser Variablen.
Wird mod_proxy
im Apache verwendet, um Anfragen an den Trifork und das darin laufende Fiona GUI weiterzuleiten, so wird die REMOTE_USER
-Variable nicht vom Apache an den Trifork durchgereicht. Bei Verwendung von mod_proxy
ist es daher notwendig, zusätzlich auch die Konfiguration des Apaches und der Fiona GUI-Webapp zu erweitern.
Apache (nur bei Verwendung von mod_proxy)
Für die Übergabe des REMOTE_USER
wird ein zusätzlicher Header im Apache benötigt. In diesem wird der Wert der Variablen hinterlegt, sodass die GUI-Webapp ihn ermitteln kann.
In der folgenden exemplarischen Konfiguration (unterer Teil) wird der REMOTE_USER
in der Header-Variaben NPS_REMOTE_USER
hinterlegt. Sie können dem Header einen beliebigen anderen gültigen Namen geben.
<VirtualHost *:80> ... <Proxy *> AddDefaultCharset Off Order deny,allow Allow from all AuthType Kerberos AuthName "Kerberos Login" KrbServiceName HTTP KrbAuthRealms DIE.DOMAIN.DE Krb5KeyTab /etc/apache2/my.keytab KrbMethodK5Passwd On KrbMethodNegotiate On require valid-user </Proxy> ProxyPass /default/NPS http://localhost:8080/default/NPS ProxyPassReverse /default/NPS http://localhost:8080/default/NPS RewriteEngine On RewriteCond %{LA-U:REMOTE_USER} (.+) RewriteRule . - [E=RU:%1,NS] RequestHeader set NPS_REMOTE_USER %{RU}e RequestHeader unset Authorization ... </VirtualHost>
GUI-Webapp (nur bei Verwendung von mod_proxy)
Ab Version 7 enthält CMS Fiona einen Filter namens RemoteUserInjectingFilter
. Mit Hilfe dieses Filters ist es möglich, den REMOTE_USER
aus der zuvor im Apache definierten Header-Variablen aus dem Request auszulesen. So kann das Fiona GUI auch bei Verwendung von mod_proxy
an die Login-Daten gelangen und diese auswerten.
Der RemoteUserInjectingFilter
wird in der Datei CMS_INSTANCE_DIR/webapps/GUI/WEB-INF/web.xml
aktiviert. Bitte stellen Sie sicher, dass in der Konfiguration des Filters auf den Header verwiesen wird, der vom Apache in die Requests eingefügt wird, in diesem Beispiel also NPS_REMOTE_USER
.
<filter> <filter-name>RemoteUserInjectingFilter</filter-name> <filter-class>com.infopark.libs.http.RemoteUserFromHeaderInjectingFilter</filter-class> <init-param> <param-name>header</param-name> <!-- Attention: A client must not be able to provide this header's value --> <param-value>NPS_REMOTE_USER</param-value> </init-param> <init-param> <param-name>standardRemoteUserConsideration</param-name> <!-- possible values (default: ignore): - prefer: REMOTE_USER is used, fallback to header value - fallback: header value is used, fallback to REMOTE_USER - ignore: header value is used only --> <param-value>prefer</param-value> </init-param> </filter> ... ... <filter-mapping> <filter-name>RemoteUserInjectingFilter</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>ERROR</dispatcher> </filter-mapping>
ADS ignoriert Groß-/Kleinschreibung bei Anmeldenamen, das CMS jedoch nicht. Um Konflikten mit der Groß-/Kleinschreibung der Anmeldenamen vorzubeugen, sollte bei Verwendung von AD-Servern der LowercaseTransformer
verwendet werden. Dabei handelt es sich um einen loginTransformer
, mit dem Logins vor der Übergabe an das CMS in Kleinschreibung umwandelt werden kann. Voreingestellt ist dieser nicht in Gebrauch. Um ihn zu nutzen, bearbeiten Sie bitte die GUI-Datei CMS_INSTANCE_DIR/webapps/GUI/WEB-INF/acegi.xml
. Entfernen Sie im Bean abstractAuthenticationProvider
die Kommentarzeichen bei der loginTransformer
-Angabe:
<bean id="abstractAuthenticationProvider" abstract="true"> <property name="loginTransformer"> <bean class="com.infopark.libs.util.LowercaseTransformer"/> </property> </bean>
Deployen Sie abschließend das GUI neu, damit die Änderungen wirksam werden.