Keycloak Docker Image verwenden

Keycloak im Docker

Einleitung

Um die Einrichtung und Verwaltung der neuen Applikationslandschaft, insbesondere der Installation von Keycloak zu vereinfachen, bieten wir ein Docker-Image an. Dieses Docker-Image baut auf dem offiziellen Image von Keycloak auf. Die Dokumentation dieses Images ist hier zu finden und beschreibt zum Beispiel die nötige Konfiguration der Datenbankanbindung und führt pro Datenbank konkrete Beispiele auf. Eine Datenbank-Anbindung von Keycloak ist notwendig, um Keycloak im von uns empfohlenen Standalone Clustered Mode zu betreiben. Siehe dazu auch die separate Anleitung zur Keycloak-Installation unter Modus.

Docker Image

Das Docker Image wird mit dem Tagname nexus-docker.next-level-apps.com/keycloak:nli-10 angeboten. Man kann das Image ebenfalls durch den folgenden Befehl auf einem Docker Server bezogen werden:

docker pull nexus-docker.next-level-apps.com/keycloak:nli-10

Service

Analog zum B2BUI empfehlen wir, zum Starten des Dockerimages docker-compose zu verwenden.
Sofern Sie eine Kubernetes Umgebung pflegen können sie Keycloak auch als POD betreiben.

Dafür muss eine Datei docker-compose.yml zum Beispiel wie die folgende erstellt werden.

docker-compose.yml:

# Keycloak 
version: '3.3'
services:
  keycloak:
    image: nexus-docker.next-level-apps.com/keycloak:nli-10
    restart: always
    environment:
#      - DB_VENDOR=e.g. postgres
#      - DB_ADDR=<db-address>
#      - DB_USER=<my-user>
#      - DB_PASSWORD=<my-password>
#      - DB_DATABASE=<database-name>
#      - ...
    ports:
      #external Port:internal Port
      - 8066:8080

Die verschiedenen Parameter

Parameter Wert Beschreibung
version aktuell 3.3 Die Version des docker-compose-file (Compose file format compatibility matrix)
image nexus-docker.next-level-apps.com/keycloak:nli-10 Der Link und Name des Dockerimages, welches geladen werden soll. Es wird aus dem NLI-Nexus-Repository geladen. Im Image ist Keycloak in der Version 10 enthalten.
restart always Damit startet Docker den Caontainer automatisch neu, sollte er abgestürzt sein oder Docker selbst neugestartet werden.
environment ihre Datenbankkonfiguration In diesen Eigenschaft muss der Zugang zur Datenbank konfiguriert werden. Weitere Details sind im Abschnitt Environment variables der Dokumentation des offiziellen Dockerimages zu finden.
ports 8066:8080 Der hintere Port ist jener, auf welchem Keycloak innerhalb des Dockercontainers erreichbar wäre. Der vordere ist der Port, welchen der Container nach außen freigibt und auf den internen Port abbildet.
Die <db-address> im environment kann hier nicht als Host localhost enthalten. Siehe dazu auch der Abschnitt localhost auf der Seite über Docker.

Aufgaben

Dieser Abschnitt listet konkrete Aufgaben und Entscheidungen bei der Benutzung des Dockerimages auf.

  • Datenbank wählen und konfigurieren
    • Es muss eine Datenbank gewählt und grundlegend konfiguriert werden. Es muss ein Schema und zum Beispiel die Datenbank keycloak (default in environment/DB_DATABASE) angelegt werden.
  • Datenbank-Tabellen von Keycloak initialisieren lassen - Dokumentation
    • Keycloak legt die Datenbanktabellen selbst beim ersten Start an
  • Admin Account anlegen
    • Um auf die Keycloak-Admin-Oberfläche zugreifen zu können, muss ein Admin-User angelegt werden. Siehe dazu Abschnitt Creating admin account in der Dokumentation des offiziellen Dockerimages
    • Befehl: docker exec <CONTAINER> /opt/jboss/keycloak/bin/add-user-keycloak.sh -u <USERNAME> -p <PASSWORD> (<CONTAINER> siehe Id in docker ps, siehe auch Docker)
    • <USERNAME> und <PASSWORD> sind zu befüllen
  • Keycloak konfigurieren
    • In Keycloak müssen Realm und verschiedene Clients konfiguriert werden, siehe dazu Keycloak Konfiguration
    • Wir bieten gerne auf Anfrage einen Export des Realms inkl. Clients unseres QA-Systems an.
  • Theme im Realm setzen
    • Im Realm kann das Theme für die Login- und Account-Maske ausgewählt werden.
    • Das Theme wird in unserem Dockerimage integriert mitgeliefert und muss nicht mehr separat installiert werden.
  • Benutzerdatenbank im Realm setzen
    • Im Realm kann dann noch (status quo) die User Federation auf den B2BUserStorageProvider / B2B-Datenbank-Adapter gesetzt werden.

Obsolet durch Docker-Image

Durch das Docker-Image sind die folgenden Dokumentationsseiten nicht mehr relevant bzw. müssen nicht mehr vollständig nachvollzogen werden.

Diese Punkte werden durch das Docker-Image gewährleistet oder direkt im Docker-Image vorinstalliert mitgeliefert.

View Me   Edit Me