218c7fa13a
Marked Micrometer 1.16.1 upgrade task as completed in archived roadmaps and session logs. Verified compatibility for Java 25 and updated notes to reflect no changes required in `libs.versions.toml`. Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2.5 KiB
2.5 KiB
Journal - 2026-03-09
📝 Zusammenfassung
Keycloak-Härtung der Realm-Konfiguration (meldestelle-realm.json). Aufbauend auf dem Infrastruktur-Fix vom
2026-03-06 (korrektes start --optimized, Healthcheck) wurden nun die Client-Konfigurationen und
Sicherheitseinstellungen auf einen produktionsreifen Stand gebracht.
🛠️ Änderungen
1. config/docker/keycloak/meldestelle-realm.json
Wildcard aus webOrigins entfernt
- Vorher:
api-gatewayundweb-apphatten"*"inwebOrigins(CORS-Sicherheitslücke). - Nachher: Nur explizit erlaubte Origins (
localhost:*,app.meldestelle.at).
Neuer Client: frontend-client (KMP Desktop & Mobile)
- Public Client mit PKCE S256 (kein Client-Secret nötig, sicher für native Apps).
- Redirect URIs:
meldestelle://callback(Custom URI Scheme für Desktop),http://localhost:*(Dev),https://app.meldestelle.at/*(Prod). - Kein
directAccessGrantsEnabled— verhindert Password-Grant-Flow (unsicher für native Apps).
Password-Policy gestärkt
- Vorher:
length(8)— zu schwach. - Nachher:
length(10) and digits(1) and upperCase(1) and specialChars(1) and notUsername(undefined).
post.logout.redirect.uris konfiguriert
- Alle relevanten Clients (
api-gateway,web-app,frontend-client) haben nun korrekte Logout-Redirect-URIs gemäß OIDC Back-Channel Logout Standard.
📚 Gelerntes / Entscheidungen
meldestelle://callbackals Custom URI Scheme: Für KMP Compose Desktop ist ein eigenes URI-Schema der sichere Standard (kein offener HTTP-Port nötig). Muss im OS registriert werden.- PKCE S256 ist Pflicht für Public Clients: Verhindert Authorization Code Interception Attacks. Keycloak
26.xunterstützt dies nativ. frontend-clientvs.web-app: Klare Trennung:web-appfür Browser-basierte Web-App,frontend-clientfür native KMP Desktop/Mobile-App.
✅ Micrometer Upgrade (2026-03-09, gleiche Session)
Verifiziert: micrometer = "1.16.1" und micrometerTracing = "1.6.1" waren bereits korrekt in
gradle/libs.versions.toml gesetzt — kein Code-Change erforderlich. Archiv-Roadmaps entsprechend abgehakt.
🔜 Nächste Schritte
- Zipkin Integration — Tracing vom Gateway bis zur DB aktivieren.
- OIDC Client im Frontend — Login-Flow mit
ktor-client-authundfrontend-clientimplementieren. - TLS/HTTPS — Langfristig:
KC_HOSTNAME_STRICT_HTTPS=truesetzen, sobald TLS eingerichtet ist.