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.
46 lines
2 KiB
Markdown
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.
|