Inhaltsverzeichnis

Keycloak3

Verantwortung Malte, bruttosozial
Container keycloak03
W. Ports keine
OS Debian 12.11
Server magrathea
Zustand Testbetrieb

Dritter Container für neue Installation mit Postgres und aktuellem Keycloak.

Dieser Container hat die gleiche IP-Adresse wie keycloak2, also nicht gleichzeitig starten. keycloak2 existiert auch nur noch zur Dokumentation und sollte nicht laufen.

Hier findet sich die technische Dokumentation des Chaotikum Keycloak. Die Nutzungshinweise findet sich hier.

Services

Serviceübersicht Version
Keycloak 26.5.0
Postgresql Debian 15.13-0+deb12u1

Java

Momentan wird auf dem Server OpenJDK 21 verwendet.

Installationsprozess von OpenJDK 21:

wget https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_linux-x64_bin.tar.gz
tar xvf openjdk-21.0.2_linux-x64_bin.tar.gz
mv jdk-21.0.2/ /usr/lib/jvm/
update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-21.0.2/bin/java
update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-21.0.2/bin/javac

Keycloak

Mehr über Keycloak kann man auf deren Website unter https://www.keycloak.org/ finden.

Anwendung mit Konfiguration liegt in `/opt/keycloak-26.5.0`

Konfiguration

siehe https://git.chaotikum.org/chaotikum/keycloak/-/tree/master/keycloak26

Der „Chaotikum“-Realm dient als Haupt-Realm, in dem die Clients konfiguriert und die User föderiert sind.

Themes

Themes sind im gitlab versioniert: https://git.chaotikum.org/chaotikum/keycloak/-/tree/master/keycloak26/themes/chaotikum?ref_type=heads Das theme liegt unter /keycloak-26.5.0/themes/chaotikum

User-Konfiguration

Keycloak läuft mit dem „keycloak“ user (siehe Service-Konfiguration).

User-Einrichtung
useradd keycloak
chown keycloak:keycloak /opt/keycloak-26.3.2/ -R
chmod g=rx /opt/keycloak-26.5.0/ -R
chmod u=rwx /opt/keycloak-26.5.0/ -R
chmod o= /opt/keycloak-26.5.0/ -R

Service-Konfiguration (systemd)

[Unit]
Description=Keycloak authorization server
After=network.target
After=postgresql.service

[Service]
Type=simple
Restart=on-failure
RestartSec=1
User=keycloak
ExecStart=/opt/keycloak-26.5.0/bin/kc.sh start

[Install]
WantedBy=multi-user.target

LDAP

Als User-Federation-Provider im „Chaotikum“-Realm dient dem Keycloak-System unser ldap-Server. Der Keycloak-Realm liest User unter der DN „ou=users,dc=chaotikum,dc=org“

PostgreSQL-Datenbank

Für das Keycloak-System wird eine PostgreSQL-Datenbank verwendet. Dabei wird das debian-Package „postgresql“ verwendet. Der Admin-User ist der default „postgres“ user mit geändertem Passwort.

Erstellen und konfigurieren von keycloak-Datenbank

https://www.keycloak.org/server/db

Keycloak nutzt die Datenbank „keycloak“ mit dem User „keycloak“. User und Passwort ist in der /opt/keycloak-26.5.0/conf/keycloak.conf eingetragen.

create database keycloak with encoding 'UTF8' template=template0;
CREATE USER keycloak PASSWORD 'KEYCLOAK_PASSWORD';
GRANT ALL PRIVILEGES ON DATABASE keycloak to keycloak;
ALTER DATABASE keycloak OWNER TO keycloak;

SSHD

SSH über IPv6 ist weltweit erreichbar. Anmeldung über root und SSH-Key. Keys von Malte und bruttosozial sind hinterlegt.

Erreichbarkeits-Probleme zu anderen Services

Wir haben connection timeouts zu mail und ldap bekommen und wir wissen nicht warum. Die IPv6-Adresse so explizit in die /etc/hosts schreiben hat aber funktioniert:

2a01:4f8:262:48c2:1::25 mail.chaotikum.net
2a01:4f8:262:48c2:1::8 ldap.chaotikum.net