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:
@@ -4,6 +4,23 @@ Alle nennenswerten Änderungen an diesem Projekt werden hier dokumentiert.
|
||||
Format angelehnt an [Keep a Changelog](https://keepachangelog.com/de/1.1.0/),
|
||||
Versionierung nach [Semantic Versioning](https://semver.org/lang/de/).
|
||||
|
||||
## [1.9.0] – 2026-07-20
|
||||
|
||||
### Hinzugefügt
|
||||
- SSO-Login per OpenID Connect (z. B. gegen ein selbst gehostetes
|
||||
Authentik), zusätzlich zu Passwort und Passkey. Konfiguration über
|
||||
drei optionale Env-Vars (`OIDC_ISSUER`, `OIDC_CLIENT_ID`,
|
||||
`OIDC_CLIENT_SECRET`) – ohne sie bleibt der SSO-Button auf der
|
||||
Anmeldeseite ausgeblendet. Authorization-Code-Flow mit PKCE, ID-Token-
|
||||
Signaturprüfung gegen das JWKS des Providers (neue Abhängigkeit
|
||||
`jose`), State/Nonce serverseitig kurzlebig und einmalig verwendbar
|
||||
(neue Tabelle `oidc_states`, Migration `0003_oidc_state.sql`).
|
||||
SSO-Login funktioniert ausschließlich für bereits unter „Benutzer“
|
||||
angelegte E-Mail-Adressen – es werden nie neue Konten angelegt, und
|
||||
die Rolle (Admin/Kantinenmitarbeiter) bleibt ausschließlich über die
|
||||
bestehende Benutzerverwaltung steuerbar, nie aus SSO-Claims
|
||||
übernommen. In DEPLOYMENT.md unter „SSO/OpenID Connect“ dokumentiert.
|
||||
|
||||
## [1.8.1] – 2026-07-20
|
||||
|
||||
### Hinzugefügt
|
||||
|
||||
Reference in New Issue
Block a user