Keycloak-Realm-Konfiguration fuer Account-Sicherheit (TOTP + WebAuthn) #129

Closed
opened 2026-06-27 16:02:20 +02:00 by niboer · 0 comments
Owner

Beschreibung

Im Keycloak-Realm familienfeierplaner muessen TOTP (2FA) und WebAuthn (Passkeys) als Authenticator-Faktoren aktiviert und konfiguriert werden. Dies ist die Voraussetzung fuer die BFF-Routen und UI-Komponenten aus #162.

Umsetzung

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

  • requiredActions aktivieren: CONFIGURE_TOTP, WEBAUTHN_REGISTER_PASSWORDLESS
  • WebAuthn-Policy setzen:
    • Relying Party Name: FamilienFeierPlaner
    • Relying Party ID: localhost (Dev) – via Env-Variable fuer Production konfigurierbar
    • Signature-Algorithmen: ES256, RS256
    • Attestation-Preference: none
    • Require Resident Key: Yes
    • User-Verification: preferred
  • TOTP-Policy konfigurieren:
    • OTP-Typ: totp
    • OTP-Algorithmus: HmacSHA1
    • OTP-Ziffern: 6
    • OTP-Periode: 30
    • Anzahl Backup-Codes: 8

2. Validation (backend)

  • backend/src/__tests__/keycloak-roles.test.ts erweitern – prueft dass TOTP/WebAuthn-Policy im Realm-Export gesetzt ist
  • backend/src/lib/keycloak-provision.tsEXPECTED_ROLES/Clients ggf. um neue erforderliche Konfiguration ergaenzen

3. Provisioning

  • backend/src/lib/keycloak-provision.ts – nach dem Realm-Import validieren, dass TOTP und WebAuthn korrekt aktiviert sind

Technische Hinweise

  • WebAuthn und TOTP werden in Keycloak selbst gespeichert (kein DB-Schema-Change)
  • Die Keycloak Account Console API (v2) verwendet der User-JWT fuer Credential-Management
  • Passkey-Registrierung erfordert navigator.credentials.create() im Browser – Realm muss WebAuthn-Endpunkte bereitstellen

Referenzen

  • Frontend-Issue #162 (BFF-Routen + UI + i18n)
  • Doku-Issue #163
  • Abhaengig von bestehender realm-export.json
### Beschreibung Im Keycloak-Realm `familienfeierplaner` muessen TOTP (2FA) und WebAuthn (Passkeys) als Authenticator-Faktoren aktiviert und konfiguriert werden. Dies ist die Voraussetzung fuer die BFF-Routen und UI-Komponenten aus #162. ### Umsetzung **1. Realm-Export (`keycloak/realm-export.json`)** - [ ] `requiredActions` aktivieren: `CONFIGURE_TOTP`, `WEBAUTHN_REGISTER_PASSWORDLESS` - [ ] WebAuthn-Policy setzen: - Relying Party Name: `FamilienFeierPlaner` - Relying Party ID: `localhost` (Dev) – via Env-Variable fuer Production konfigurierbar - Signature-Algorithmen: `ES256, RS256` - Attestation-Preference: `none` - Require Resident Key: `Yes` - User-Verification: `preferred` - [ ] TOTP-Policy konfigurieren: - OTP-Typ: `totp` - OTP-Algorithmus: `HmacSHA1` - OTP-Ziffern: `6` - OTP-Periode: `30` - Anzahl Backup-Codes: `8` **2. Validation (backend)** - [ ] `backend/src/__tests__/keycloak-roles.test.ts` erweitern – prueft dass TOTP/WebAuthn-Policy im Realm-Export gesetzt ist - [ ] `backend/src/lib/keycloak-provision.ts` – `EXPECTED_ROLES`/Clients ggf. um neue erforderliche Konfiguration ergaenzen **3. Provisioning** - [ ] `backend/src/lib/keycloak-provision.ts` – nach dem Realm-Import validieren, dass TOTP und WebAuthn korrekt aktiviert sind ### Technische Hinweise - WebAuthn und TOTP werden in Keycloak selbst gespeichert (kein DB-Schema-Change) - Die Keycloak Account Console API (v2) verwendet der User-JWT fuer Credential-Management - Passkey-Registrierung erfordert `navigator.credentials.create()` im Browser – Realm muss WebAuthn-Endpunkte bereitstellen ### Referenzen - Frontend-Issue #162 (BFF-Routen + UI + i18n) - Doku-Issue #163 - Abhaengig von bestehender realm-export.json
niboer changed title from Account-Sicherheitseinstellungen (OTP, Passkey, Passwortwechsel) to Keycloak-Realm-Konfiguration fuer Account-Sicherheit (TOTP + WebAuthn) 2026-07-01 18:08:48 +02:00
Sign in to join this conversation.
No description provided.