Files
2026-11-01 11:18:05 +00:00

43 lines
5.2 KiB
Markdown

# authentik-Anmeldung für DeskHub
Mitarbeiter und Kunden melden sich mit **authentik** an (OpenID Connect, Authorization-Code-Ablauf mit PKCE). Auf der Anmeldeseite des Mitarbeiterbereichs und, wenn eingeschaltet, des Kundenportals erscheint zusätzlich der Knopf „Mit authentik anmelden“. E-Mail und Passwort bleiben als Zugang erhalten.
Voraussetzung: DeskHub **1.0.52 oder neuer** (Berechtigungen `auth.login` und `auth.customer`, Anmelde-Adressen `/staff/plugin_login.php` und `/plugin_login.php`).
## Einrichtung
1. **In authentik** unter *Anwendungen → Provider* einen Provider vom Typ **OAuth2/OpenID** anlegen, Client-Typ *vertraulich*.
2. **Umleitungs-URI** (Modus „Strict“): `https://<deine-DeskHub-Adresse>/staff/plugin_login.php?p=authentik&e=callback` (die genaue Adresse zeigt die Einstellungsseite).
3. **Bereiche:** `openid`, `email`, `profile`; für die Gruppenprüfung zusätzlich ein Bereich, der `groups` liefert.
4. Eine **Anwendung** mit diesem Provider anlegen und festlegen, wer sie nutzen darf.
5. In DeskHub: Plugin hochladen und aktivieren (Berechtigungen `ui.menu`, `auth.login` und `auth.customer` bestätigen), dann im Adminportal unter **authentik** die Issuer-Adresse (`https://auth.example.de/application/o/<Anwendungs-Kürzel>`), Client-ID und Client-Geheimnis eintragen, „Anmeldung einschalten“, speichern, **Verbindung testen**.
6. Mitarbeiter: Jeder hat sein DeskHub-Konto und verknüpft es einmal unter **Mein authentik-Konto** (oder meldet sich beim ersten Mal mit gleicher E-Mail-Adresse an). Kunden: unter „Kunden“ einschalten (siehe unten).
## Mitarbeiter
Angemeldet wird nur, wer in authentik bestätigt ist (E-Mail nicht als „nicht bestätigt“ markiert) **und** in DeskHub ein **aktives** Mitarbeiterkonto hat, das mit seinem authentik-Konto **verknüpft** ist. Die Verknüpfung macht jeder Mitarbeiter selbst unter **Mein authentik-Konto** (Menü) mit einem Klick; sie hängt an der festen Benutzerkennung von authentik, nicht an der E-Mail-Adresse. Ohne Verknüpfung klappt die erste Anmeldung auch, wenn die E-Mail-Adresse in authentik und DeskHub gleich ist; dabei wird automatisch verknüpft. Mit der Einstellung **Nur verknüpfte Konten** geht das nicht mehr. Hat ein DeskHub-Konto schon eine Verknüpfung, kann ein fremdes authentik-Konto mit gleicher E-Mail-Adresse nicht hinein. Administratoren sehen alle Verknüpfungen in den Einstellungen und können sie lösen. Konten werden nicht automatisch angelegt. Optional zusätzlich nur Mitglieder einer authentik-Gruppe. Die zweite Stufe von DeskHub (Authenticator-Code) entfällt bei dieser Anmeldung, weil authentik sie übernimmt. Jede Anmeldung und jede Ablehnung steht im Admin-Protokoll.
## Kunden (Ticketersteller)
In den Einstellungen unter „Kunden“ einschalten. Dann erscheint der Knopf auch auf der Anmeldeseite des Kundenportals. Es zählt **nur die in authentik bestätigte E-Mail-Adresse**: Gibt es ein Kundenkonto mit dieser Adresse, wird es angemeldet; gibt es keines und „automatisch anlegen“ ist an, legt DeskHub es an (Name aus authentik, **ohne Passwort**; wer eines will, nutzt „Passwort vergessen“). Gesperrte Adressen (Sperrliste) kommen nicht hinein. Optional nur Kunden einer eigenen authentik-Gruppe. Die Rückkehr-Adresse in authentik ist dieselbe wie für Mitarbeiter, Sie brauchen keine zweite. Neue Kundenkonten stehen im Admin-Protokoll.
## Sicherheit
- PKCE (S256), zufälliger Zustandswert (`state`) und `nonce`, jeder Ablauf gilt nur einmal und höchstens 10 Minuten.
- Das ID-Token kommt direkt vom Token-Endpunkt über eine **geprüfte HTTPS-Verbindung** (Zertifikat und Name werden geprüft, keine Weiterleitungen); geprüft werden Aussteller (`iss`), Zielgruppe (`aud`/`azp`), Ablauf (`exp`) und `nonce`. Eine zusätzliche Signaturprüfung ist dafür nach OIDC Core 3.1.3.7 nicht nötig.
- **E-Mail nicht bestätigt:** Meldet authentik `email_verified = false`, ordnet DeskHub ein Konto nicht über die Adresse zu (nicht verknüpfte Mitarbeiter, Kunden). Das Verknüpfen unter „Mein authentik-Konto“ und die Anmeldung schon verknüpfter Konten gehen trotzdem. Ausschaltbar mit „Bestätigte E-Mail-Adresse verlangen“ (nur sinnvoll, wenn allein Sie in authentik Benutzer anlegen und Adressen ändern).
- Adressen: nur `https` (`http` nur zu `localhost` zum Testen), ohne Zugangsdaten, Parameter und Anker.
- Das Client-Geheimnis liegt verschlüsselt in der Datenbank und wird nie wieder angezeigt.
- Fällt authentik aus, melden sich Mitarbeiter weiter mit E-Mail und Passwort an.
## Grenzen
- Mitarbeiterkonten werden nicht automatisch angelegt und es gibt keine Rollen- oder Abteilungszuordnung aus Gruppen. Kundenkonten entstehen nur auf Wunsch.
- Kunden werden nur über die E-Mail-Adresse zugeordnet (keine feste Verknüpfung). Wer die E-Mail-Adresse in authentik ändern darf, könnte damit ein anderes Kundenkonto öffnen: Das in authentik absichern, wenn Kunden sich dort selbst registrieren dürfen.
- Abmelden in DeskHub meldet nicht bei authentik ab (kein „Single Logout“).
- Das Plugin schaltet die Anmeldung mit E-Mail und Passwort nicht ab.
## Tests
`tests/plugin_authentik.php` (OpenID-Ablauf mit nachgebautem authentik) und `tests/plugin_login.php` (Anmelde-Erweiterung des Servers) im DeskHub-Projekt.