--- type: issue id: "0049" status: done 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 - **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//callback`; Anwender und Admin rufen dieselbe URL auf, die Rolle entscheidet über Sicht/Bearbeiten. - **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. ## 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.