User Tools

Site Tools


keycloak

Keycloak

SSH Zugang grundsätzlich via: ssh opa02-jusos_keycloak@h11.hostsharing.net Passwort siehe Bitwarden

Neue Doku (vor 2024)

Generell ist die Keycloak Dokumentation zu empfehlen: https://www.keycloak.org/documentation Keycloak wird laufend weiterentwickelt und Foren-Einträge sind häufig veraltet, während die Hauptdokumentation bei Google schlecht indiziert ist.

Deployment

Aktuelle Version ist immer in

~/keycloak

gelinkt (in der Regel auf die größte Versionsnummer).

Start/Build-Script

~/kc-build-script.sh
Stand 2024-01-28
#!/bin/bash

set -e #stop on error
set -x #prints commands

cd $HOME/keycloak
./bin/kc.sh build --metrics-enabled=true --cache=local
systemctl --user restart keycloak
sleep 1
systemctl --user status keycloak

Unit-Skript

Hält den Dienst dauerhaft alive

~/.config/systemd/user/keycloak.service
Stand 2024-01-28
[Unit]
Description=Keycloak Open Source Identity and Access Management

[Service]
Type=simple
Restart=always
RestartSec=2s
ExecStart=%h/keycloak/bin/kc.sh start --optimized --spi-connections-jpa-quarkus-migration-strategy=update

[Install]
WantedBy=multi-user.target

Server-Konfiguration

Konfigurationsdatei

~/keycloak/conf/keycloak.conf

Host: 127.0.0.1 Port: 9005

Log

~/keycloak/keycloak.log

Theme

Wir überschreiben zur Zeit nur das Login-Theme (SSO). Das Theme ist ein Clon vom Keycloakv1-Theme (/lib/lib/main/org.keycloak.keycloak-themes-xx.xx.x.jar). Dieses erbt vom Basis-Theme. Die Jar-Datei kann mit einem Zip-Programm geöffnet werden.

Letztlich haben wir primär das Hintergrundbild ausgetauscht und ein paar Kleinigkeiten verändert. Unser Theme liegt als „Rote Tools v4“ im Theme-Ordner.

ToDo: Theme vernünftig vom KC-V1-Theme erben lassen.

Achtung, Stolperfallen
  • Neues Theme lädt nicht?
    • Es können für jeden Client eigene Themes geladen werden, die das globale Theme überschreiben.
    • Keycloak mit folgendem Befehl neu starten:
      start --spi-theme-static-max-age=-1 --spi-theme-cache-themes=false --spi-theme-cache-templates=false

Webkonfiguration

Realms

Keycloak erlaubt Realms für verschiedene Nutzer:innen-Gruppen. Unsere Produktiv-Umgebung liegt in “user”.

Username-Validation

Um eine Username-Validation bei der Registrierung zu ermöglichen, haben wir das Preview-Feature „DECLARATIVE_USER_PROFILE“ aktiviert.

Unter Realm-Settings > User Profile > username läuft die Validation via pattern:

{"pattern":"^[a-z0-9.\\-_]{3,63}$","error-message":"username-validation-error"}

Die Errormessage wird über die Sprachkonfiguration Realm-Settings > Localization ausgegeben.


Alte Doku (vor 2023)

https://keycloak.jusos.rocks/realms/master/.well-known/openid-configuration

Server Neustart

Es liegt im Home Verzeichnis des Users ein start-script.sh und ein stop-script.sh. Mit diesen kann der Server neu gestartet werden.

Aktuell werden die Debug-logs aus der Ausgabe weggeworfen. Sollten diese mal wichtig sein lässt sich der Server alternativ temporär auch mit

~/keycloak/bin/kc.sh start --http-port 8080 --http-host 127.0.0.1 --proxy edge --features=preview

gestartet werden - der logoutput landet dann im stdout in der Konsole

Reverse-Proxy

Unter

~/doms/keycloak.jusos.rocks/htdocs-ssl/.htaccess

ist der Proxy definiert der den output der Java-Anwendung vom Localhost ins Netz durchreicht. Dateien die mit dem korrekten Pfad im htdocs-ssl ordner gefunden werden, werden prioritär behandelt.

Theme

Zur Zeit existiert ein rudimentäres Custom-Juso-Theme auf Skeleton-Basis für die SSO-Login/Register-Seite:

~/keycloak/themes/juso-template/

Das Theme extended das Basis-Template um die CSS-Dateien style.css, skeleton.css und normalize.css. An den HTML-Grundlagen wurde nichts angepasst.

Theme-Entwicklung

Um am Theme zu entwickeln, empfiehlt sich eine lokale Standalone-Instanz aufzusetzen und mit folgenden Optionen zu starten:

bin/kc.sh start-dev --spi-theme-static-max-age=-1 --spi-theme-cache-themes=false --spi-theme-cache-templates=false

Offene TODOs

  • Weg migrieren vom Master Realm, der sollte nur für KC selbst verwendet werden, Test Realms für den API Test
  • Theme mobile optimieren
  • Rausfinden wie man Gruppen mit den fine grant permissions selbstverwaltet organisieren kann
  • Prüfen ob andere Loginvarianten sinnvoll / nötig sind (TOPT, Magic Link)
  • Rechte Management aufräumen, das man granularer pro Client Admin rechte vergeben kann
  • mehr Attribute ausliefern. Wie bspw. Quotas, Picture URL uvm
keycloak.txt · Last modified: 2024/01/28 08:58 by matthiaslueth

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki