Keycloak installieren anhand der Keycloak-Dokumentation

Keycloak

Download

Auf der offiziellen Seite von Keycloak (Downloads) kann eine vollständige Standalone server distribution heruntergeladen werden. Diese beinhaltet einen WildFly application server mit darauf eingesetztem Keycloak Server.

Dokumentation

Ebenso auf der offiziellen Seite von Keycloak (Docs) kann die zugehörige Dokumentation des Produktes gefunden werden.

Installation Keycloak Server

Modus

Keycloak bietet ausgiebige Dokumentation zur Installation des Servers. Eine der wichtigsten Fragen vorab ist in Kapitel 3 - Operating Mode beschrieben. Für die ersten Tests und Entwicklungsumgebungen ist mit Sicherheit der Standalone Mode am sinnvollsten. Dieser Modus ist allerdings, wie in der Dokumentation beschrieben, nicht für produktive Systeme vorgesehen. Es bieten sich der Standalone Clustered Mode oder der Domain Clustered Mode an.

In lokalen Test- und Entwicklungsumgebungen, arbeiten wir mit dem Standalone Mode. In unserer Cloud werden wir voraussichtlich mit dem Standalone Clustered Mode arbeiten.

Anzahl Keycloak Instanzen/Cluster

Es ist möglich, an einen Keycloak Cluster mehrere Applikationslandschaften oder -stufen anzubinden. Die Entscheidung über die Anzhal der Cluster sollte davon abhängen, wie häufig Keycloak aktualisiert werden soll bzw. wie stark die Abhängigkeit in diesem Kontext zu den anderen Systemen (Tomcat Cluster) ist.

In der NLI Cloud wird pro Systemstufe ein Keycloak Cluster per Ansible installiert. Es werden allerdings voraussichtlich Entwicklungs und Testsysteme zusammengefasst, so dass sich in diesen Stufen mehrere Systeme am gleichen Keycloak Cluster authentifizieren.

Es ist ebenso möglich, die gesamte Systemlandschaft (Entwicklungs-, Test- und Produktionssystem) an einen Keycloak Cluster anzubinden. Mehr dazu in der Konfiguration.

Datenbanktreiber

Für den Betrieb von Keycloak wird eine Datenbankanbindung empfohlen. Die Nutzung der mitgelieferten H2-Datenbank ist nicht für produktive Systeme geeignet.

Sollte später die B2B-Datenbank angebunden werden, ist der Datenbanktreiber notwendig.

Hier wird die Installation in der Server Installation (Relational Database Setup) von Keycloak beschrieben.

Hier eine weitere gute Anleitung am Beispiel Oracle Treiber auf JBoss.

Wählen sie bei der Installation des Datenbanktreibers einen von uns später verwendeten ‘Namen’ (siehe folgender Abschnitt).

Name des Treibermoduls

Weitere Erläuterungen finden sie im Kontext des Benutzerdatenbankadapters im Abschnitt Datenbanken. Aktuell sind folgende Namen möglich, wenn der Adapter verwendet werden soll:

  • PostgreSQL (org.postgresql)
  • Oracle Database (com.oracle.ojdbc)
  • Microsoft SQL Server (com.microsoft.sqlserver)
  • Generischer Treiber (driver.jdbc)

Der Name des Datenbanktreibers wird in der module.xml des Treibers definiert (siehe Attribut “name” in <module xmlns="[...]" name="com.oracle.ojdbc"> bzw. <module xmlns="[...]" name="driver.jdbc"> für den generischen Treiber).

Eine module.xml ähnlich zur Folgenden wird bei der Treiberinstallation angelegt:

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="[...]" name="com.oracle.ojdbc">
    <resources>
        <resource-root path="[...]"/>
    </resources>
    <dependencies>
        [...]
    </dependencies>
</module>

Anbindung an B2B-Datenbank

Sollte später zur Authentifizierung eine Anbindung an die bestehende B2B-Datenbank gewünscht sein, ist ebenso die Installation des entsprechenden Datenbanktreibers notwendig.

Weitere Details sind auf der Seite zum Benutzerdatenbank Adapter zu finden.

Remote Installation

Admin Account anlegen

Um bei einer Remote-Installation von Keycloak den initialen Admin-Benutzer anzulegen, sollte ein Skript ausgefüht werden. Weitere Details sind hier zu finden:

Create Admin User (Getting Started Guide)

Server Initialization (Server Administration Guide)

Port-Binding anpassen

Da der authentication server auch über Netzwerk, nicht nur auf localhost erreichbar sein sollte, müssen die per default hinterlegten Port Bindings geändert werden. Details und entsprechende Dokumentation der Konfiguration sind hier zu finden:

Network Setup (Server Installation and Configuration Guide)

<interfaces>
    <interface name="management">
        <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
    </interface>
    <interface name="public">
        <inet-address value="${jboss.bind.address:127.0.0.1}"/>
    </interface>
</interfaces>
Wir empfehlen ebenso eine HTTPS-Anbindung.

Einrichtung als Dienst

Wir empfehlen ebenso eine Einrichtung als Dienst im Betriebssystem.

Zugriff auf JBoss / WildFly

Es ist zusätzlich möglich, auf die Management-Oberfläche des JBoss / WildFly, auf welchem Keycloak als Anwendung läuft, zuzugreifen. Dafür muss über das Skript keycloak-4.8.3.Final\bin\add-user.sh (Linux) ein Benutzer hinzugefügt werden. Über den Port 9990 (Default; siehe dazu Port Binding in z.B. standalone.xml) kann auf die Management-Oberfläche zugegriffen werden. Dort können z.B. aktuelle Deployments wie Keycloak nachvollzogen werden.

 <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
View Me   Edit Me