Doku: MFA-Pflicht fuer Admins im Authentik-Leitfaden (gitops#57)
Dazu eine Aussage korrigiert, die seit heute nur noch halb stimmt: "2FA-Selbsteinrichtung optional (not_configured_action=skip)" gilt weiterhin fuer Mitglieder, aber nicht mehr fuer Admins. Festgehalten sind vor allem die beiden Fallen: configure statt deny (deny sperrt Admins aus, ohne Weg zurueck ausser ueber den Cluster) und last_auth_threshold gegen die doppelte Abfrage. Dazu die wichtigste - stimmt der Gruppenname nicht, greift die Regel fuer niemanden und wirft dabei keinen Fehler.
This commit is contained in:
@@ -47,7 +47,8 @@ Nutzer wurden nie in Synapse angelegt. Behoben und als Authentik Blueprint
|
|||||||
(`apps/authentik/authentik-blueprints.yaml`) deklarativ ins Repo übernommen: vollständiger
|
(`apps/authentik/authentik-blueprints.yaml`) deklarativ ins Repo übernommen: vollständiger
|
||||||
`matrix-invitation`-Flow (Invite → Prompt → Write → Password → Login → Redirect), leerer
|
`matrix-invitation`-Flow (Invite → Prompt → Write → Password → Login → Redirect), leerer
|
||||||
`matrix-recovery`-Flow ergänzt, `Brand.default_application` gesetzt. 2FA/Passkey-Selbst-
|
`matrix-recovery`-Flow ergänzt, `Brand.default_application` gesetzt. 2FA/Passkey-Selbst-
|
||||||
Einrichtung optional (`not_configured_action=skip`), auffindbar über
|
Einrichtung optional (`not_configured_action=skip`) — ⚠️ **gilt seit 2026-08-06 nur noch
|
||||||
|
für Mitglieder, für Admins ist MFA Pflicht**, siehe unten. Auffindbar über
|
||||||
`axion1337.chat/docs/setup/security.html`. Details: siehe Wiki
|
`axion1337.chat/docs/setup/security.html`. Details: siehe Wiki
|
||||||
[Authentik-OIDC.md](https://rohana.axion1337.de/sorb/axion1337.chat-gitops/wiki/Authentik-OIDC).
|
[Authentik-OIDC.md](https://rohana.axion1337.de/sorb/axion1337.chat-gitops/wiki/Authentik-OIDC).
|
||||||
|
|
||||||
@@ -59,3 +60,50 @@ als Client-seitige Änderung nachgehalten:
|
|||||||
|
|
||||||
---
|
---
|
||||||
**Weitere Details**: Siehe Kapitel 2 in diesem Projekt.
|
**Weitere Details**: Siehe Kapitel 2 in diesem Projekt.
|
||||||
|
|
||||||
|
## MFA-Pflicht für Admins (2026-08-06, gitops#57)
|
||||||
|
|
||||||
|
**Für Mitglieder bleibt 2FA freiwillig, für die Gruppe `authentik Admins` ist sie Pflicht.**
|
||||||
|
|
||||||
|
Umgesetzt als eigener Blueprint `admin-mfa-enforcement.yaml` in
|
||||||
|
`apps/authentik/authentik-blueprints.yaml`.
|
||||||
|
|
||||||
|
### Warum eine zweite Stage statt einer Umstellung
|
||||||
|
|
||||||
|
`not_configured_action` hängt an der **Stage**, nicht an der Bindung. Die vorhandene
|
||||||
|
`default-authentication-mfa-validation` umzustellen hätte deshalb **alle Mitglieder**
|
||||||
|
getroffen — und wäre zugleich eine Änderung an einem Objekt aus Authentiks eigenem
|
||||||
|
Blueprint gewesen.
|
||||||
|
|
||||||
|
Stattdessen: eine eigene `admin-mfa-validation` auf Ordnung **31**, direkt hinter der
|
||||||
|
Standard-Stage (30) und vor dem Login (100), eingeschränkt über eine `PolicyBinding`
|
||||||
|
mit gesetztem `group`. Eine solche Bindung wertet Gruppenmitgliedschaft aus
|
||||||
|
(`PolicyResult(group.is_member(user))`). **Kein Authentik-Standardobjekt wird
|
||||||
|
angefasst.**
|
||||||
|
|
||||||
|
### Die drei Einstellungen, auf die es ankommt
|
||||||
|
|
||||||
|
| Feld | Wert | Warum |
|
||||||
|
|---|---|---|
|
||||||
|
| `not_configured_action` | `configure` | führt durch die Einrichtung, statt auszusperren |
|
||||||
|
| `configuration_stages` | TOTP + WebAuthn | sonst kann `configure` nichts anbieten |
|
||||||
|
| `last_auth_threshold` | `hours=1` | verhindert die doppelte Abfrage |
|
||||||
|
|
||||||
|
⚠️ **`configure`, niemals `deny`.** `deny` weist Admins ohne zweiten Faktor ab — und
|
||||||
|
danach gibt es keinen Weg zurück außer über den Cluster. `configure` erzwingt
|
||||||
|
genauso, führt aber durch die Einrichtung.
|
||||||
|
|
||||||
|
⚠️ **`last_auth_threshold` ist kein Beiwerk.** Die Standard-Stage auf Ordnung 30
|
||||||
|
validiert bereits, wer einen Faktor besitzt. Ohne Schwelle (`seconds=0`, der Default)
|
||||||
|
würde unsere Stage direkt danach ein zweites Mal fragen. Mit `hours=1` überspringt
|
||||||
|
sie sich, wenn das Gerät gerade benutzt wurde — übrig bleibt genau der Zielfall:
|
||||||
|
Admin ohne zweiten Faktor.
|
||||||
|
|
||||||
|
### Die Falle beim Ändern
|
||||||
|
|
||||||
|
**Der Gruppenname ist die ganze Wirkung.** Stimmt er nicht, greift die Regel für
|
||||||
|
**niemanden** — und wirft dabei keinen Fehler. Das ist schlechter als keine Regel,
|
||||||
|
weil es sich sicher anfühlt. Wer die Gruppe umbenennt, muss den Blueprint mitziehen.
|
||||||
|
|
||||||
|
Prüfen lässt sich die Wirkung nur an einem Konto, das in der Gruppe ist: anmelden und
|
||||||
|
sehen, ob nach dem Passwort die Einrichtung kommt.
|
||||||
|
|||||||
Reference in New Issue
Block a user