Keycloak-Installation auf Debian mit MariaDB als Datenbank
Installationsanleitung für eine Keycloak-Installation mit einer MariaDB für den produktiven Einsatz.
1. Vorbereitung des Systems und erstellen der Datenbank
Zuerst installiern wir MariaDB und das benötigte JDK:
sudo apt update && sudo apt -y install mariadb-server openjdk-17-jdk
Anschließend richten wir den Datenbank-Server ein:
sudo mariadb-secure-installation
Hier werden alle Fragen mit "Y" (yes) beantwortet und ein Root-Passwort für die MariaDB erstellt.
Mit dem angegebenen Passwort loggen wir uns jetzt über den MySQL CLI Client in der Maria DB ein. Anschließend erstellen wir eine Datenbank und einen Benutzer für Keycloak:
mysql -u root -p CREATE DATABASE keycloak; GRANT ALL ON keycloak.* TO 'keycloak'@'localhost' IDENTIFIED BY 'strongpassword'; FLUSH PRIVILEGES; EXIT;
2. Keycloak installieren
Beim erstellen dieser Anleitung war Keycloak in der Version 18 aktuell. Ihr solltet aber auf jeden Fall, die aktuellste Version von keycloak.org herunterladen.
Also runterladen und entpacken:
cd ~ wget https://github.com/keycloak/keycloak/releases/download/18.0.0/keycloak-18.0.0.tar.gz tar xfz keycloak-18.0.0.tar.gz cd keycloak-18.0.0
Anschließend bearbeiten wir die Datei conf/keycloak.conf
und ändern den Inhalt wiefolgt ab:
db=mariadb db-username=keycloak db-password=strongpassword db-url=jdbc:mariadb://localhost:3306/keycloak hostname=keycloak.example.org
Als hostname tragt ihr die Domain ein, über die der Keycloak später zu erreichen ist.
Ist die Basiskonfiguration erledigt, kann der Server für die Ersteinrichtung gestartet werden:
bin/kc.sh start-dev
Jetzt muss der Server über http://localhost:8080
aufgerufen werden.
Wer wie ich keine grafische Oberfläche auf dem Server hat, kann sich hier mit einem SSH-Tunnel helfen!
Nach dem Anlegen eines Admin-Accounts, kann der Server auch über seine offizielle IP/Domain aufgerufen werden.
3. Keycloak als Dienst im systemd registrieren
Wir legen unsere systemd-Service-Datei /etc/systemd/system/keycloak.service
mit folgendem Inhalt an:
[Unit] Description=Keycloak After=network.target [Service] Type=idle User=keycloak Group=keycloak ExecStart=/home/keycloak/keycloak-18.0.0/bin/kc.sh start --auto-build TimeoutStartSec=600 TimeoutStopSec=600 [Install] WantedBy=multi-user.target
Den Benuztername, die Gruppe und den Pfad, müsst ihr natürlich an eure Daten anpassen.
Dann den Dienst aktivieren und starten:
sudo systemctl daemon-reload sudo systemctl enable keycloak sudo systemctl start keycloak
Fertig, jetzt kann der Keycloak nach eigenen Bedürfnissen eingerichtet werden.