Etappe 5: Verlauf mit Filtern, Wiederholen und Aufräumen; Benutzerverwaltung, Passwort, Audit-Log; OIDC. Refs #014, #015, #016 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1.5 KiB
1.5 KiB
#016 Anmeldung per OIDC
Status: erledigt Meilenstein: v0.5.0 Labels: feature, sicherheit Geschätzt: 4 h Tatsächlich: 0 h 08 min
Ziel
Optionale OIDC-Anmeldung (z. B. authentik), Rollen über Gruppen-Claim.
Aufgaben
- openid-client 6.8.8 mit PKCE, State, Nonce, Discovery; Gruppen → Rolle bei jeder Anmeldung; Konto-Verknüpfung aus den Einstellungen
- Anmeldeseite mit „Mit … anmelden“ und verständlichen Fehlermeldungen (
?sso=…)
Akzeptanzkriterien
- Tests gegen einen Mock-IdP (
tests/oidc-mock.ts): Anlegen, Rollenwechsel, keine Gruppe, keine Übernahme per Name, Verknüpfen, gesperrt, gefälschter State, fehlendes Cookie, falsche Nonce, fremde Audience – echter IdP beim Feldtest (#020)
Abhängigkeiten
#015
Notizen / Entscheidungen
- Keine automatische Übernahme lokaler Konten über den Namen – sonst übernähme, wer beim IdP „admin“ heißt, den lokalen Admin. Bei Namensgleichheit bekommt das SSO-Konto „name-2“.
- IdP maßgeblich für die Rolle: bei jeder Anmeldung aus den Gruppen; Wechsel kommt ins Audit-Log.
- Ablaufzustand (Verifier, State, Nonce, Ziel) in einem kurzlebigen signierten Cookie
(
pd_oidc, 10 min, nur/api/v1/auth/oidc, SameSite=Lax) statt in der Datenbank. redirect_uriund die Rückruf-URL werden ausAPP_URLgebildet – hinter dem Reverse-Proxy trägt die Anfrage den internen Host.- Client-Anmeldung
client_secret_post(Standard von openid-client); authentik und Keycloak können beides.