Anmeldefluss mit PKCE (S256), State und Nonce. Das ID-Token wird gegen den JWKS des Anbieters geprueft — Signatur, Aussteller, Empfaenger, Ablauf und Nonce; alles Noetige kommt aus dem Discovery-Dokument, damit die Anbindung nicht auf Authentik festgelegt ist. Wiedererkannt wird jemand an der Kennung des Anbieters (sub), nicht an der E-Mail-Adresse — Adressen aendern sich. Ein bestehendes Konto mit derselben Adresse wird verknuepft statt verdoppelt, aber nur bei bestaetigter Adresse: sonst koennte sich beim Anbieter jemand eine fremde Adresse eintragen und damit ein hiesiges Konto uebernehmen. Uebernommen wird bewusst nur, wer jemand ist — plus die Instanz-Administration, wenn OIDC_ADMIN_GROUP gesetzt ist. Gruppen und Rollen bleiben Sache dieser Anwendung: die Gruppen im Verzeichnis bedeuten etwas anderes als die hier. Konten aus dem Verzeichnis haben kein Passwort mehr (passwordHash ist jetzt optional); Konto-Bereich und Passwort-Anmeldung sagen das statt an einer leeren Pruefung zu scheitern. Anleitung mit allen Feldern in Authentik: docs/authentik.md
10 lines
475 B
SQL
10 lines
475 B
SQL
-- Anmeldung über einen externen Anbieter (OpenID Connect).
|
|
--
|
|
-- `oidcSubject` ist die stabile Kennung beim Anbieter. Sie und nicht die
|
|
-- E-Mail-Adresse entscheidet, wer wiedererkannt wird — Adressen ändern sich.
|
|
ALTER TABLE "User" ADD COLUMN "oidcSubject" TEXT;
|
|
CREATE UNIQUE INDEX "User_oidcSubject_key" ON "User"("oidcSubject");
|
|
|
|
-- Konten, die sich nur über den Anbieter anmelden, haben kein Passwort.
|
|
ALTER TABLE "User" ALTER COLUMN "passwordHash" DROP NOT NULL;
|