2026-08-12 12:00:00 +00:00
|
|
|
---
|
|
|
|
|
type: issue
|
|
|
|
|
id: "0049"
|
2026-08-13 12:00:00 +00:00
|
|
|
status: done
|
2026-08-12 12:00:00 +00:00
|
|
|
created: 2026-08-12
|
|
|
|
|
milestone: M4
|
|
|
|
|
priority: medium
|
|
|
|
|
area: security
|
|
|
|
|
related: [docs/adr/0014-wikijs-loest-docusaurus-ab.md, docs/issues/0048-wikijs-in-der-suite-deployen.md]
|
|
|
|
|
---
|
|
|
|
|
# Wiki.js: Authentik-OIDC + Rollen und Abschottung
|
|
|
|
|
|
|
|
|
|
## Problem / Motivation
|
|
|
|
|
|
|
|
|
|
Der Kern der Wiki.js-Entscheidung (ADR-0014): Zugang und Sichtbarkeit nach
|
|
|
|
|
Authentik-Gruppe, was Docusaurus nicht konnte.
|
|
|
|
|
|
|
|
|
|
## Acceptance
|
|
|
|
|
|
2026-08-12 12:00:00 +00:00
|
|
|
- **Authentik-OIDC** als Login-Provider in Wiki.js (Gruppen-Claim gemappt) —
|
|
|
|
|
**nativer Wiki.js-Login**, kein Forward-Auth. Authentik-Provider mit Redirect-URI
|
|
|
|
|
`https://wiki.axion1337.chat/login/<providerKey>/callback`; Anwender und Admin
|
|
|
|
|
rufen dieselbe URL auf, die Rolle entscheidet über Sicht/Bearbeiten.
|
2026-08-12 12:00:00 +00:00
|
|
|
- **Rollen** über Gruppen:
|
|
|
|
|
- **Admins**: schreiben (read+write) Betriebs- **und** Anwenderhandbücher.
|
|
|
|
|
- **Normale Nutzer**: nur lesen — kein Schreiben.
|
|
|
|
|
- **Abschottung**: Anwender sehen die **Betriebsdoku nicht** (Pfad-/Seiten-Regeln
|
|
|
|
|
pro Gruppe, `/betrieb/*` nur für die Betriebs-Gruppe). Betrieb darf Anwenderdoku
|
|
|
|
|
lesen.
|
|
|
|
|
- Verifiziert: Anwender-Konto sieht `/betrieb` nicht (nicht 403 mit sichtbarem
|
|
|
|
|
Link, sondern gar nicht in Navigation/Suche); Nicht-Admin kann nichts editieren;
|
|
|
|
|
Admin kann beides bearbeiten.
|
|
|
|
|
|
|
|
|
|
## Notes
|
|
|
|
|
|
|
|
|
|
⚠️ Braucht die **konkreten Authentik-Gruppen** von sorb: welche Gruppe = Betrieb,
|
|
|
|
|
welche = Anwender, welche = Admin (Vorschlag: `authentik Admins` schreibt,
|
|
|
|
|
`wiki-betrieb` liest Betrieb+Anwender, `wiki-anwender` liest nur Anwender). Zugangs-
|
|
|
|
|
/Gruppenvergabe macht sorb selbst.
|
2026-08-13 12:00:00 +00:00
|
|
|
|
|
|
|
|
## Erledigt 2026-08-13
|
|
|
|
|
|
|
|
|
|
Nativer Authentik-OIDC-Login live (`hideLocal`, Break-Glass `/login?all`). Rollen
|
|
|
|
|
umgesetzt — statt der 3-Gruppen-Skizze gilt sorbs Vereinfachung „Betrieb = Admin":
|
|
|
|
|
`authentik Admins` schreibt alles, `wiki-anwender` liest nur `anwender/*` + Startseite.
|
|
|
|
|
Abschottung **end-to-end verifiziert**: ein Test-Konto nur in `wiki-anwender` bekommt auf
|
|
|
|
|
JEDE `betrieb/*`-Seite HTTP 403 (Wiki.js `checkAccess`: `match && !deny` → Default-Deny),
|
|
|
|
|
`home` + `anwender/*` liefern 200; Navigation/Suche filtern per `checkAccess` mit; Guests
|
|
|
|
|
komplett gesperrt. → erledigt.
|