Installation von Keycloak auf Docker

Install on docker

Install on docker

In diesem Kapitel konzentrieren wir uns darauf, wie wir Keycloak, den Open-Source-Identity- und Access-Management-Server, auf einer Docker-Instanz installieren können. Keycloak bietet eine Vielzahl von Authentifizierungs- und Autorisierungsmöglichkeiten, die in modernen Anwendungen und Diensten nützlich sind. Mit Docker können wir den Installations- und Verwaltungsprozess erheblich vereinfachen.

Voraussetzung

Schritt-für-Schritt Anleitung

Schritt 1: Docker-Container für Keycloak starten
Zuerst öffnen wir die Konsole oder die Command-Shell. Dort geben wir den folgenden Befehl ein:

docker run -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:22.0.3 start-dev

Nach der Eingabe erfolgt der Download bzw. die Installation des Images. Das sollte ungefähr so aussehen:

install keycloak on docker

Console nach Eingabe des Docker run commands zur Installation von Keycloak

Mit diesem Befehl erledigen wir mehrere Dinge gleichzeitig:

docker run: Dies ist der Hauptbefehl, um einen neuen Docker-Container zu starten. Ein Container ist eine isolierte Umgebung, in der eine Anwendung zusammen mit ihren Abhängigkeiten ausgeführt wird.

-p 8080:8080: Dies ist eine Portzuweisung. Der erste Port (vor dem Doppelpunkt) ist der Port auf dem Host-System. Der zweite Port (nach dem Doppelpunkt) ist der Port im Container. Hier wird der Port 8080 des Host-Systems auf den Port 8080 im Docker-Container umgeleitet. Das bedeutet, dass wenn auf dem Host-System eine Anfrage an Port 8080 gesendet wird, diese an Port 8080 des Containers weitergeleitet wird.

-e KEYCLOAK_ADMIN=admin und -e KEYCLOAK_ADMIN_PASSWORD=admin: Hier werden Umgebungsvariablen im Container gesetzt. -e steht für „environment“. KEYCLOAK_ADMIN=admin setzt den Admin-Benutzernamen für Keycloak auf „admin“, und KEYCLOAK_ADMIN_PASSWORD=admin setzt das dazugehörige Passwort auf „admin“.

quay.io/keycloak/keycloak:22.0.3: Dies gibt das Docker-Image an, das verwendet werden soll. Docker-Images sind Vorlagen, die alle notwendigen Informationen enthalten, um einen Container zu starten. In diesem Fall verwenden wir das Keycloak-Image Version 22.0.3, das von quay.io, einer Registry für Docker-Images, gehostet wird.

start-dev: Dies ist ein Befehl, der im Docker-Container ausgeführt wird, sobald er gestartet ist. In diesem Fall startet er Keycloak im Entwicklungsmodus (start-dev). Der Entwicklungsmodus ist in der Regel so konfiguriert, dass er einfacher zu verwenden und zu debuggen ist, aber nicht so sicher wie der Produktionsmodus.

Schritt 2: Überprüfung der Installation
Nach der Ausführung sollten wir eine Meldung sehen, die ungefähr so aussieht:

[org.keycloak.quarkus.runtime.KeycloakMain] (main) Running the server in development mode.
DO NOT use this configuration in production.

Dies ist ein Hinweis darauf, dass der Server im Entwicklungsmodus läuft.
Dies sollte nicht für produktive Einsätze verwendet werden.

Schritt 3: Zugang zur Admin-Konsole
Nachdem der Container gestartet ist, öffnen wir einen Webbrowser und navigieren zu folgender Adresse:

http://localhost:8080

Dort wählen wir die Option „Administration Console„, um zur Anmeldeseite zu gelangen.

Keycloak Welcome Page

Keycloak Welcome Page

Schritt 4: Anmeldung und erste Schritte in der Admin-Console
Wir melden uns mit den Benutzerdaten an, die wir während der Installation festgelegt haben:

Benutzername: admin
Passwort: admin

Nach erfolgreicher Anmeldung gelangen wir in die Admin-Konsole von Keycloak. Hier können wir nun verschiedene Authentifizierungsstrategien konfigurieren, Benutzer und Gruppen verwalten, und vieles mehr.

Keycloak admin console

Keycloak admin console

Herzlichen Glückwunsch! Wir haben Keycloak nun erfolgreich auf einer Docker-Instanz installiert und können mit der Konfiguration beginnen. Der Einsatz von Docker hat den Prozess etwas vereinfacht, da wir keine Java-Runtime installieren mussten. Das Image enthält bereits alles um Keycloak verwenden zu können.

Im nächsten Kapitel werden wir einen Realm, User und Client anlegen.

Bis dahin, eine gute Zeit und happy coding.