Keycloak-Realm: Required-Actions fuer AIA aktivieren #165

Closed
opened 2026-07-01 17:13:23 +00:00 by niboer · 2 comments
Owner

Background

Fuer Application Initiated Actions (AIA) muessen die entsprechenden Required Actions im Realm aktiviert und vom Typ "Application Initiated" sein. Der Frontend-Refactoring (#164) setzt voraus, dass folgende Aktionen per kc_action-Parameter verfuegbar sind.

Scope

1. Realm-Export pruefen (keycloak/realm-export.json)

Im Abschnitt requiredActions folgende Aktionen auf enabled: true und (falls konfigurierbar) als AIA-faehig setzen:

kc_action Required Action Zweck
UPDATE_PASSWORD Update Password Passwort aendern
CONFIGURE_TOTP Configure OTP TOTP-Einrichtung
webauthn-register-passwordless Webauthn Register Passwordless Passkey registrieren
delete_credential Delete Credential Credential loeschen (parametrisiert)

Falls delete_credential nicht im Realm-Export vorhanden ist, muss der Abschnitt requiredActions um diesen Eintrag ergaenzt werden. Vorlage aus einem Keycloak-26-Export:

{
  "alias": "delete_credential",
  "name": "Delete Credential",
  "providerId": "delete_credential",
  "enabled": true,
  "defaultAction": false,
  "priority": 60,
  "config": {}
}

2. Realm neu importieren

Nach Aenderung an realm-export.json: Container neustarten, damit --import-realm greift.

docker compose up -d keycloak

3. AIA-Verfuegbarkeit testen

Manuell im Browser die folgenden URLs oeffnen und pruefen, ob Keycloak den entsprechenden Dialog anzeigt (nach SSO-Login):

  • Passwort aendern: http://localhost:8080/realms/familienfeierplaner/protocol/openid-connect/auth?client_id=frontend-app&redirect_uri=http://localhost:5173/callback&response_type=code&scope=openid&kc_action=UPDATE_PASSWORD
  • TOTP einrichten: ...&kc_action=CONFIGURE_TOTP
  • Passkey registrieren: ...&kc_action=webauthn-register-passwordless

4. Dokumentation

docs/design/03-autorisierungsmatrix.md auf Aenderungen pruefen (falls erforderlich).

## Background Fuer Application Initiated Actions (AIA) muessen die entsprechenden Required Actions im Realm aktiviert und vom Typ "Application Initiated" sein. Der Frontend-Refactoring (#164) setzt voraus, dass folgende Aktionen per `kc_action`-Parameter verfuegbar sind. ## Scope ### 1. Realm-Export pruefen (`keycloak/realm-export.json`) Im Abschnitt `requiredActions` folgende Aktionen auf `enabled: true` und (falls konfigurierbar) als AIA-faehig setzen: | `kc_action` | Required Action | Zweck | |---|---|---| | `UPDATE_PASSWORD` | Update Password | Passwort aendern | | `CONFIGURE_TOTP` | Configure OTP | TOTP-Einrichtung | | `webauthn-register-passwordless` | Webauthn Register Passwordless | Passkey registrieren | | `delete_credential` | Delete Credential | Credential loeschen (parametrisiert) | Falls `delete_credential` nicht im Realm-Export vorhanden ist, muss der Abschnitt `requiredActions` um diesen Eintrag ergaenzt werden. Vorlage aus einem Keycloak-26-Export: ```json { "alias": "delete_credential", "name": "Delete Credential", "providerId": "delete_credential", "enabled": true, "defaultAction": false, "priority": 60, "config": {} } ``` ### 2. Realm neu importieren Nach Aenderung an `realm-export.json`: Container neustarten, damit `--import-realm` greift. ```bash docker compose up -d keycloak ``` ### 3. AIA-Verfuegbarkeit testen Manuell im Browser die folgenden URLs oeffnen und pruefen, ob Keycloak den entsprechenden Dialog anzeigt (nach SSO-Login): - Passwort aendern: `http://localhost:8080/realms/familienfeierplaner/protocol/openid-connect/auth?client_id=frontend-app&redirect_uri=http://localhost:5173/callback&response_type=code&scope=openid&kc_action=UPDATE_PASSWORD` - TOTP einrichten: `...&kc_action=CONFIGURE_TOTP` - Passkey registrieren: `...&kc_action=webauthn-register-passwordless` ### 4. Dokumentation `docs/design/03-autorisierungsmatrix.md` auf Aenderungen pruefen (falls erforderlich).
Author
Owner

Erweiterung: WebAuthn-Attestation in Dev vs. Prod

In der Dev-Umgebung (realm-export.json, --import-realm) ist
attestationConveyancePreference: "none" gesetzt. Plattform-Authenticatoren
(Windows Hello, Touch ID) liefern in der Entwicklung keine validierbare
Zertifikatskette — der Fehler "invalid cert path" (Java PKIX) tritt bei
"indirect" oder "direct" auf.

Fuer die Produktion muss eine separate realm-export.prod.json (od. aquivalentes
Provisioning via Terraform/Ansible) erstellt werden mit:

  • attestationConveyancePreference: "indirect"
  • Keycloak-Truststore um CA-Zertifikate der Authenticator-Hersteller erweitert

Das betrifft beide WebAuthn-Policy-Einstellungen:

  • webAuthnPolicyAttestationConveyancePreference
  • webAuthnPolicyPasswordlessAttestationConveyancePreference

Geplante Umsetzung des Prod-Provisionsings in MS14 (#8).

Erweiterung: WebAuthn-Attestation in Dev vs. Prod In der Dev-Umgebung (`realm-export.json`, `--import-realm`) ist `attestationConveyancePreference: "none"` gesetzt. Plattform-Authenticatoren (Windows Hello, Touch ID) liefern in der Entwicklung keine validierbare Zertifikatskette — der Fehler `"invalid cert path"` (Java PKIX) tritt bei `"indirect"` oder `"direct"` auf. Fuer die Produktion muss eine separate `realm-export.prod.json` (od. aquivalentes Provisioning via Terraform/Ansible) erstellt werden mit: - `attestationConveyancePreference: "indirect"` - Keycloak-Truststore um CA-Zertifikate der Authenticator-Hersteller erweitert Das betrifft beide WebAuthn-Policy-Einstellungen: - `webAuthnPolicyAttestationConveyancePreference` - `webAuthnPolicyPasswordlessAttestationConveyancePreference` Geplante Umsetzung des Prod-Provisionsings in MS14 (#8).
Author
Owner

Milestone MS-SECURITY wird geschlossen.

Erledigt in:

  • b5fef6c — UPDATE_PASSWORD in requiredActions ergaenzt (realm-export.json)
Milestone MS-SECURITY wird geschlossen. Erledigt in: - `b5fef6c` — UPDATE_PASSWORD in requiredActions ergaenzt (realm-export.json)
Sign in to join this conversation.
No description provided.