1
0
Fork 0
forked from lukas/nixos-config
nixos-config/docs/access-control.md
pijukka 5c78092bde docs: record OIDC policy for external services, flag mealie/trek
Captures the decision that new traefik-routes-external.nix entries
should be OIDC-gated (or have equivalent own auth) unless there's an
explicit reason not to, and flags mealie/trek from PR #8 as pending
that follow-up.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-29 14:22:10 +02:00

2.8 KiB

LDAP-Gruppen und Dienstzugriff

Dex authentifiziert die Benutzer gegen LLDAP und übernimmt die direkten Gruppenmitgliedschaften als OIDC-Claim groups. Die Dienste prüfen diesen Claim jeweils selbst. Gruppenmitgliedschaften werden derzeit in LLDAP gepflegt und nicht als Klartext in dieser Nix-Konfiguration gespeichert.

Policy: externe Dienste brauchen OIDC-Absicherung

Festgehalten am 29.07.2026: Neue Einträge in traefik-routes-external.nix (öffentlich erreichbar) sollen im Regelfall über einen OIDC-Gruppen-Claim (Dex + LLDAP, wie oben) oder eine gleichwertige eigene Authentifizierung des Dienstes abgesichert sein. Ausnahmen sind explizit zu begründen — z. B. bewusst öffentlicher Content (data, board) oder Dienste mit eigenem, unabhängigem Login-System (GoToSocial/phanpy).

Noch offen: mealie und trek (PR #8, fastpi-Dienste von alfo, 29.07.2026 gemerged) laufen aktuell ohne Gruppen-Check extern. Soll bei Gelegenheit nachgereicht werden — Absicherung prüfen/ergänzen, sobald die Dienste selbst laufen (trek antwortete beim Rollout noch mit 502).

Aktuelle Gruppen

Gruppe Zweck Dienst
intern bestehender Tailnet-/Headscale-Zugriff Headscale
forgejo Anmeldung bei Forgejo Forgejo
gotosocial Anmeldung bei GoToSocial GoToSocial
gotosocial_admin GoToSocial-Administrationsrechte GoToSocial

lukas ist Mitglied von forgejo und gotosocial. alfo ist ebenfalls in beiden Gruppen. admin ist Mitglied von gotosocial und gotosocial_admin.

Dienstregeln

  • Forgejo verwendet für die Dex-OIDC-Quelle den zusätzlichen Scope groups, den Claim groups und verlangt den Wert forgejo.
  • GoToSocial erlaubt nur den Claimwert gotosocial; der Claimwert gotosocial_admin verleiht zusätzlich Administratorrechte.
  • Die Website 0ff.space ist über oauth2-proxy und Dex für authentifizierte LDAP-Benutzer geschützt. ActivityPub-Discovery- und Föderationspfade bleiben öffentlich.

Forgejo zeigt bei einem fehlenden erforderlichen Claim irreführend „Account is suspended“. Das bedeutet in diesem Fall, dass der lokale Forgejo- Account gar nicht angelegt wurde.

Verifizierter Teststand

  • testcal-a gehört zu forgejo: Forgejo-OIDC-Login und Registrierung waren erfolgreich; Dex meldete groups=[forgejo].
  • testcal-b gehört zu gotosocial: GoToSocial-OIDC-Login funktioniert, Forgejo weist den Login erwartungsgemäß ab; Dex meldete groups=[gotosocial].
  • Ein erfolgreicher Website-Login von testcal-a wurde über oauth2-proxy mit HTTP 200 bestätigt.

Bei neuen Benutzern: zuerst den LLDAP-Account anlegen, die erforderliche Dienstgruppe zuweisen und anschließend den OIDC-Login testen. Passwörter und temporäre Zugangsdaten gehören nicht in dieses Repository.