Anbindung des Tomcat an Keycloak

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"/>

Context

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.

accesstype.png

  • Damit der Tomcat ebenfalls auf das Revision-Backend zugreifen kann, ergänzen Sie bitte die CATALINA_OPTS in tomcat/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.

keycloak.json

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.

server.xml 1

Zu Übersicht sollte der Realm allerdings entfernt oder auskommentiert werden.

server.xml 2

View Me   Edit Me