feat: SSO-Login per OpenID Connect (Authentik u.a.)
Dritte Login-Methode neben Passwort und Passkey, konfiguriert über OIDC_ISSUER/OIDC_CLIENT_ID/OIDC_CLIENT_SECRET (optional, Button bleibt ohne diese Vars ausgeblendet). Authorization-Code-Flow mit PKCE, ID-Token-Signaturprüfung gegen das JWKS des Providers via neuer Abhängigkeit "jose" (RS256 fest gepinnt gegen Algorithm-Confusion), State/Nonce kurzlebig und einmalig verwendbar in neuer Tabelle oidc_states (Migration 0003, analog zu webauthn_challenges). Funktioniert ausschließlich für bereits angelegte Benutzer (Abgleich per E-Mail) – kein Auto-Provisioning, keine Rollenübernahme aus Claims, beides bleibt exklusiv über die bestehende Benutzerverwaltung steuerbar. app/login/page.tsx zu Server-Component-Wrapper reduziert (prüft isConfigured(), liest ?error= aus searchParams), bisheriger Inhalt nach components/LoginForm.tsx verschoben. Version 1.9.0. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -48,3 +48,15 @@ ADMIN_EMAIL=
|
||||
# Free-Keys enden auf ":fx"). Ohne Key bleibt "Automatisch übersetzen"
|
||||
# inaktiv; Englisch/Polnisch lassen sich weiterhin manuell eintragen.
|
||||
DEEPL_API_KEY=
|
||||
|
||||
# Optional: SSO-Login per OpenID Connect (z. B. gegen ein selbst
|
||||
# gehostetes Authentik). Ohne diese drei Werte bleibt der SSO-Button auf
|
||||
# der Anmeldeseite ausgeblendet, Passwort/Passkey funktionieren
|
||||
# unverändert. SSO-Login funktioniert NUR für bereits unter "Benutzer"
|
||||
# angelegte E-Mail-Adressen – es werden keine neuen Konten angelegt und
|
||||
# die Rolle (Admin/Kantinenmitarbeiter) bleibt ausschließlich dort
|
||||
# steuerbar. Beim Identity Provider als Redirect-URI eintragen:
|
||||
# <APP_URL>/api/auth/oidc/callback
|
||||
OIDC_ISSUER=
|
||||
OIDC_CLIENT_ID=
|
||||
OIDC_CLIENT_SECRET=
|
||||
|
||||
Reference in New Issue
Block a user