Zum Inhalt springen

Single Sign-on (OIDC)

EE meldet Benutzer über einen beliebigen OpenID-Connect-Provider an — Keycloak, Authentik, Entra ID, Google Workspace und alles andere, was OIDC-Discovery beherrscht.

Beim Identity-Provider einen Client anlegen (Authorization Code Flow, vertraulich) und die Rücksprungadresse eintragen:

https://dns.example.com/api/v1/auth/sso/callback

Dann die Instanz konfigurieren:

Terminal-Fenster
DNSE_SSO_ISSUER=https://id.example.com/realms/firma
DNSE_SSO_CLIENT_ID=dns-editor
DNSE_SSO_CLIENT_SECRET=
DNSE_SSO_REDIRECT_URL=https://dns.example.com/api/v1/auth/sso/callback
DNSE_SSO_AUTOPROVISION=on # Vorgabe

Alle vier ersten Variablen müssen gesetzt sein. Fehlt eine, bleibt SSO schlicht aus — es gibt keinen halb aktiven Zustand. Ist es aktiv, meldet GET /api/v1/instance das mit sso: true, und die Anmeldemaske zeigt zusätzlich Mit SSO anmelden.

  1. Benutzer klickt Mit SSO anmelden (/api/v1/auth/sso/login).
  2. Weiterleitung zum Identity-Provider — Authorization Code mit PKCE; state und Verifier liegen in kurzlebigen HttpOnly-Cookies (10 Minuten).
  3. Nach der Anmeldung Rücksprung auf die Callback-Adresse, Prüfung von state und ID-Token.
  4. Zuordnung zum Konto über die E-Mail-Adresse, ersatzweise über den Benutzernamen.
  5. Ab hier läuft eine ganz normale Session — alle Rechte kommen wie gewohnt aus Rollen und Projektmitgliedschaften.

Die Metadaten des Providers (Discovery) werden beim ersten Bedarf geholt, nicht beim Start: Ein vorübergehend nicht erreichbarer Identity-Provider verhindert den Start der Instanz nicht.

Mit DNSE_SSO_AUTOPROVISION=on (Vorgabe) wird für eine unbekannte, vom Provider bestätigte Identität automatisch ein Konto angelegt — mit einem unbrauchbaren Zufallspasswort, sodass nur der SSO-Weg funktioniert. Neue Konten bekommen die normale Benutzerrolle; Rechte vergibt der Administrator anschließend über Projekte und Teams.

Mit DNSE_SSO_AUTOPROVISION=off wird eine unbekannte Identität abgewiesen (HTTP 403). Das ist der Weg, wenn Konten kontrolliert vorab angelegt werden sollen.

SSO ersetzt die lokale Anmeldung nicht — beide Wege existieren nebeneinander. Das bleibt bewusst so: Ein Administrator kommt auch dann noch hinein, wenn der Identity-Provider ausfällt.

Die Zwei-Faktor-Anmeldung gilt für den lokalen Anmeldeweg. Bei SSO ist der Identity-Provider für einen zweiten Faktor zuständig.