OIDC-Provider konfigurieren
Der Ressourcenplaner nutzt einen generischen OIDC-Provider für die Authentifizierung. Jeder OpenID Connect-kompatible Provider kann verwendet werden (Keycloak, Authentik, Azure AD, Google Workspace, etc.).
Konfiguration
Setzen Sie folgende Umgebungsvariablen:
AUTH_OIDC_ISSUER=https://keycloak.example.com/realms/resource-planer
AUTH_OIDC_CLIENT_ID=resource-planer
AUTH_OIDC_CLIENT_SECRET=<client-secret>
AUTH_OIDC_PROVIDER_NAME=SSO # Optional: Name auf dem Login-ButtonAnforderungen an den Provider
Der OIDC-Provider muss:
- OpenID Connect Discovery unterstützen (
/.well-known/openid-configuration) - Einen Confidential Client bereitstellen (mit Client-Secret)
- Redirect-URIs konfiguriert haben:
https://ihre-domain.com/api/auth/callback/oidc - E-Mail-Claim im ID-Token liefern
Keycloak-Beispiel
- Realm erstellen (z.B.
resource-planer) - Client erstellen:
- Client-ID:
resource-planer - Client-Typ: OpenID Connect
- Client authentication: On
- Redirect-URIs:
https://ihre-domain.com/*
- Client-ID:
- Client-Secret kopieren und als
AUTH_OIDC_CLIENT_SECRETsetzen
Rollenverwaltung
Der OIDC-Provider wird ausschließlich zur Authentifizierung genutzt. Die Autorisierung (Rollen) verwaltet die App selbst:
- Rollen (Admin, Manager, Mitarbeiter) werden in der App-Datenbank gespeichert
- Der erste Benutzer, der sich anmeldet, wird automatisch Admin
- Alle weiteren Benutzer erhalten die Rolle Mitarbeiter
- Admins können Rollen über die Mitarbeiterverwaltung ändern
Es müssen keine Rollen oder Role-Mappings im OIDC-Provider konfiguriert werden.
Account-Linking
Mitarbeiter können als reine Planungs-Ressourcen (ohne Login) angelegt werden und nachträglich einen SSO-Zugang erhalten. Die Verknüpfung erfolgt automatisch über die E-Mail-Adresse.
Vorgehensweise
- Mitarbeiter anlegen (App): Admin erstellt einen Mitarbeiter mit Name und E-Mail-Adresse
- Benutzer anlegen (OIDC-Provider): Im Provider einen Benutzer mit derselben E-Mail-Adresse erstellen
- Erster Login: Beim ersten SSO-Login erkennt die App die E-Mail und verknüpft den OIDC-Account mit dem bestehenden Mitarbeiter
Der Mitarbeiter behält dabei alle bestehenden Daten (Rolle, Team-Zugehörigkeiten, Buchungen, Arbeitszeiten).
Voraussetzungen
- Die E-Mail-Adresse muss im OIDC-Provider exakt mit der E-Mail in der App übereinstimmen
- Der Mitarbeiter muss eine E-Mail-Adresse haben (Mitarbeiter ohne E-Mail können nicht verknüpft werden)
- Die E-Mail muss im OIDC-Provider als verifiziert markiert sein