Single Sign-On (SSO) einrichten
Du kannst dein HedgeDoc so konfigurieren, dass sich Nutzer per Single Sign-On (SSO) gegen deinen Identity-Provider anmelden. HedgeDoc nutzt dafür generisches OAuth2 mit expliziten Endpunkten (also ohne Discovery) – es funktioniert damit mit Authentik, Keycloak, Zitadel und anderen OAuth2-fähigen Providern. Diese Anleitung zeigt das Vorgehen am Beispiel von Authentik (Managed Authentik bei server.camp).
Die gesamte Konfiguration erfolgt self-service in deinem server.camp-Kundenportal – ohne Support, in allen Tarifen. Einen separaten Enable-Schalter gibt es nicht: SSO ist aktiv, sobald die Pflichtfelder gesetzt sind.
- Ein aktives HedgeDoc-Abonnement bei server.camp
- Eine erreichbare, OAuth2-fähige Identity-Provider-Instanz (z. B. Managed Authentik bei server.camp)
- Admin-Zugang zu beiden Systemen
- In Authentik öffne Anwendungen → Provider
- Klicke auf “Erstellen” → Typ: OAuth2/OpenID Connect
- Fülle die Felder aus:
- Name:
HedgeDoc - Client Type:
Confidential - Redirect URIs:
https://<deine-hedgedoc-domain>/auth/oauth2/callback - Signing Key: Den Standardschlüssel auswählen (bereits vorhanden)
- Speichern – Authentik generiert automatisch Client ID und Client Secret. Diese beiden Werte brauchst du später im Portal.
Client ID und Secret notierenÖffne den gerade erstellten Provider erneut und kopiere Client ID und Client Secret in einen Texteditor. Du brauchst sie gleich im server.camp-Portal.
- Gehe zu Anwendungen → Anwendungen → “Erstellen”
- Felder ausfüllen:
- Name:
HedgeDoc - Slug:
hedgedoc - Provider: den gerade erstellten
HedgeDoc-Provider auswählen
- Optional: Unter UI Einstellungen ein HedgeDoc-Logo hochladen und die Launch-URL auf
https://<deine-hedgedoc-domain>setzen - Speichern
Zugang auf Gruppen beschränken (empfohlen)Öffne die Anwendung → Reiter Policy / Group / User Bindings → “Erstellen” → Group → diejenige Gruppe wählen, die Zugang zu HedgeDoc erhalten soll (z. B.alle-mitarbeiter). So können sich nur Mitglieder dieser Gruppe über Authentik in HedgeDoc einloggen.
HedgeDoc benötigt die drei OAuth2-Endpunkte explizit (es gibt keine automatische Discovery). Du findest sie in Authentik unter dem Provider bzw. der Anwendung. Sie lauten:
Authorization: https://<deine-authentik>/application/o/authorize/
Token: https://<deine-authentik>/application/o/token/
Userinfo: https://<deine-authentik>/application/o/userinfo/
Ersetze <deine-authentik> durch deine tatsächliche Authentik-Adresse. Die abschließenden Schrägstriche gehören dazu.
Öffne im Kundenportal die Konfiguration deines HedgeDoc-Abonnements und trage die folgenden Werte ein:
| Feld | Wert |
|---|---|
| Anzeigename des Login-Buttons | Frei wählbar, z. B. Login mit Authentik – erscheint als Beschriftung des Buttons |
| Authorization-URL | Authorization-Endpunkt aus Schritt 3 |
| Token-URL | Token-Endpunkt aus Schritt 3 |
| Userinfo-URL | Userinfo-Endpunkt aus Schritt 3 |
| Client-ID | Aus Authentik kopiert (Schritt 1) |
| Client-Secret | Aus Authentik kopiert (Schritt 1) |
| Scopes | Standard openid email profile |
Speichern und warten, bis die Bereitstellung abgeschlossen ist (ca. 1–2 Minuten). SSO ist aktiv, sobald diese Pflichtfelder gesetzt sind – einen separaten Enable-Schalter gibt es nicht. Auf der Login-Seite von HedgeDoc erscheint danach ein Button zur Anmeldung über deinen Provider.
Die folgenden Felder haben sinnvolle Standardwerte und bleiben in den meisten Fällen unverändert. Setze sie nur, wenn dein Identity-Provider die Benutzerdaten unter abweichenden Claims ausliefert:
| Feld | Standard | Wirkung |
|---|---|---|
| Claim für Benutzername | preferred_username |
Claim, aus dem der eindeutige Benutzername gelesen wird |
| Claim für Anzeigename | name |
Claim für den angezeigten Namen des Nutzers |
| Claim für E-Mail | email |
Claim für die E-Mail-Adresse des Nutzers |
- HedgeDoc im Browser öffnen
- Auf der Login-Seite den Button für deinen Provider anklicken (z. B. “Mit Authentik anmelden”)
- Weiterleitung zu Authentik, dort anmelden (und ggf. 2FA)
- Zurück in HedgeDoc – der Nutzer ist angemeldet
Erst testen, dann umstellenTeste den SSO-Login mit einem regulären Nutzerkonto, bevor du ihn im Team ausrollst. So stellst du sicher, dass Redirect-URI und Endpunkte korrekt hinterlegt sind, bevor sich alle darauf verlassen.
- “Redirect URI mismatch” beim IdP: Die Redirect-URI in Authentik stimmt nicht mit der von HedgeDoc gesendeten überein. Prüfe, ob die URL exakt hinterlegt ist – inklusive
https://und Pfad/auth/oauth2/callback. - Kein SSO-Button sichtbar: Sind alle Pflichtfelder (Authorization-, Token-, Userinfo-URL, Client-ID, Client-Secret) im Portal gesetzt und ist die Bereitstellung abgeschlossen?
- Anmeldung schlägt fehl oder Benutzername fehlt: Prüfe die Scopes (
openid email profile) und ob die Claims deines Providers zu den optionalen Feineinstellungen passen (Standardpreferred_username,name,email).
Bei Problemen mit der SSO-Integration helfen wir dir gerne unter support@server.camp weiter.