This repository has been archived on 2026-09-17. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
nixos-config/docs/access-control.md
pijukka 94435d5c4e docs: restore the Forgejo "Account is suspended" OIDC gotcha in access-control.md
The rest of the trim in 92bbb32 (stale oauth2-proxy line, group list,
verified-teststand log) was fine -- git log already serves as the
historical record per this repo's own convention. This one line is
different: a still-accurate, nowhere-else-documented troubleshooting
gotcha, not stale and not duplicated. Restoring just it.
2026-07-31 11:49:03 +02:00

46 lines
2 KiB
Markdown

# 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 |
## 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.
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.
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.