Keycloak
Einleitung
Bisher findet der Login an der B2B by Practice über einen Realm
am Tomcat statt.
Der Tomcat schaut dafür in die B2B-Benutzerdatenbank und verifiziert die eingegebenen Benutzerdaten.
Um sich nun beim Login an der B2B an Keycloak zu authentifizieren, muss der Tomcat anders konfiguriert werden. Es findet eine Weiterleitung an ein Eingabeformular von Keycloak statt. Nach erfolgreicher Anmeldung wird der Benutzer zur Adresse der B2B zurück umgeleitet.
Für die Anbindung des Tomcat an Keycloak sind drei Schritte notwendig.
- Tomcat-Adapter von Keycloak verwenden
- Anpassung Kontext
- Ablage
keycloak.json
- Optional: Anpassung
server.xml
Dokumentation
Die Anleitung von Keycloak zur Anbindung des Tomcats ist in der Dokumentation Securing Applications and Services Guide (Tomcat 6, 7 and 8 Adapters) (gilt auch für Tomcat 9) zu finden.
Die Dokumentation Securing Applications and Services Guide bietet weitere Information zur Absicherung von Anwendungen.
Tomcat-Adapter
Der Tomcat-Adapter kann bei Keycloak in den Downloads heruntergeladen werden.
Der hier herunter geladene Adapter (einige jar
-Dateien) muss in das tomcat/lib
-Verzeichnis kopiert werden.
Context
Im Kontext der Anwendung muss der Keycloak-Valve hinterlegt werden, sowie auf die Datei keycloak.json
verwiesen werden.
Der Kontext ist in unserem Fall die Datei tomcat/conf/Calatlina/localhost/b2bbp-engine.xml
.
<Valve className="org.keycloak.adapters.tomcat.KeycloakAuthenticatorValve"/>
<Parameter name="keycloak.config.file" value="<my-path>/tomcat_all/keycloak.json" override="false"/>
CLASSPATH
Damit die keycloak.json in allen Workflows genutzt werden kann, muss sichergestellt sein, dass sie im Classpath verfügbar ist. Wir empfehlen die Datei im Ordner tomcat/conf
abzulegen. Dieser Ordner kann wie folgt dem Classpath hinzugefügt werden: aktualisieren Sie bitte die Datei tomcat/conf/catalina.properties
folgendermaßen:
common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar","${catalina.home}/conf"
Rollensicherheit
Bitte ergänzen Sie die CATALINA_OPTS
in tomcat / bin / setenv.sh
folgendermaßen, um die Sicherheitsüberprüfung der Rollen zu aktivieren:
-Dspring.profiles.active=roles-activated
Revisions-Backend-Konfiguration
- Der Clientzugriffstyp muss auf vertraulich eingestellt sein.
- Damit der Tomcat ebenfalls auf das Revision-Backend zugreifen kann, ergänzen Sie bitte die
CATALINA_OPTS
intomcat/bin/setenv.sh
folgendermaßen:
-Drevision.info.server.url={revision_url}
keycloak.json
Die Datei keycloak.json
kann in Keycloak am bereits angelegten Client (Abschnitt Clients) generiert werden.
Dafür muss am für den Tomcat relevanten Client unter Installation
das Format Keycloak OIDC JSON
ausgewählt werden.
Diese muss wie im Parameter im Kontext genannt, hinterlegt werden.
server.xml
Durch den Valve
im Context
hat die Konfiguration zur Authentifizierung in der Datei tomcat/conf/server.xml
keine Auswirkung mehr.
Zu Übersicht sollte der Realm
allerdings entfernt oder auskommentiert werden.