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:
@@ -34,6 +34,13 @@ services:
|
||||
# (Essenszeiten, Kürzel-Erklärungen) nach Englisch/Polnisch. Ohne Key
|
||||
# bleibt "Automatisch übersetzen" inaktiv, manuelle Eingabe geht immer.
|
||||
DEEPL_API_KEY: ${DEEPL_API_KEY:-}
|
||||
# Optional: SSO-Login per OpenID Connect (z. B. Authentik). Ohne
|
||||
# diese drei Werte bleibt der SSO-Button ausgeblendet. Funktioniert
|
||||
# nur für bereits angelegte Benutzer (Abgleich per E-Mail), legt nie
|
||||
# neue Konten an.
|
||||
OIDC_ISSUER: ${OIDC_ISSUER:-}
|
||||
OIDC_CLIENT_ID: ${OIDC_CLIENT_ID:-}
|
||||
OIDC_CLIENT_SECRET: ${OIDC_CLIENT_SECRET:-}
|
||||
# Muss auf das "volumes:"-Ziel unten UND das im Dockerfile per
|
||||
# "mkdir/chown" vorbereitete Verzeichnis zeigen – ohne diese
|
||||
# Variable würde lib/branding.ts auf ${PWD}/data/branding
|
||||
@@ -77,6 +84,9 @@ services:
|
||||
SITE_TITLE: ${SITE_TITLE:-Canteen Menu}
|
||||
ADMIN_EMAIL: ${ADMIN_EMAIL:-}
|
||||
DEEPL_API_KEY: ${DEEPL_API_KEY:-}
|
||||
OIDC_ISSUER: ${OIDC_ISSUER:-}
|
||||
OIDC_CLIENT_ID: ${OIDC_CLIENT_ID:-}
|
||||
OIDC_CLIENT_SECRET: ${OIDC_CLIENT_SECRET:-}
|
||||
ports:
|
||||
- "0.0.0.0:3000:3000"
|
||||
volumes:
|
||||
|
||||
Reference in New Issue
Block a user