SSO mit Okta einrichten¶
Okta ist OIDC-kompatibel, hat aber eine Besonderheit, die bei den meisten Erstintegrationen auffällt: Eine Okta-Organisation stellt mehr als einen Authorization Server bereit, und jeder hat seine eigene Discovery-URL.
Diese Anleitung behandelt die Okta-Seite: Erstellen der App-Integration und Ermitteln der Werte, die digna benötigt. Die digna-Seite — dashboard_config.toml, Tests und Fehlerbehebung — ist bei jedem Anbieter gleich und wird in der Single Sign-On-Übersicht beschrieben.
Bevor Sie beginnen¶
| Requirement | Notes |
|---|---|
| Okta role | Super Administrator, oder eine Admin-Rolle mit Berechtigung, App-Integrationen zu erstellen |
| Okta domain | z. B. yourcompany.okta.com, oder eine benutzerdefinierte Domain, falls konfiguriert |
| digna redirect URI | Die URL, zu der Benutzer nach dem Login zurückkehren, z. B. https://digna.yourdomain.com/oidc/callback |
Schritt 1: App-Integration erstellen¶
- Melden Sie sich beim Okta Admin Console an
- Gehen Sie zu Applications → Applications
- Klicken Sie auf Create App Integration
- Wählen Sie:
- Sign-in method: OIDC - OpenID Connect
- Application type: Web Application
- Klicken Sie auf Next
Anwendungstyp kann nicht geändert werden
Die Auswahl von Single-Page Application statt Web Application erstellt einen Public Client ohne Secret, und dignas Backend-Code-Austausch schlägt mit invalid_client fehl. Der Typ ist bei der Erstellung fest — eine falsche Wahl erfordert das Löschen der App und einen Neuanfang.
Schritt 2: Integration konfigurieren¶
- App integration name:
digna - Grant type: belassen Sie Authorization Code ausgewählt
- Sign-in redirect URIs: Geben Sie Ihre digna-Callback-URL ein:
- Sign-out redirect URIs: optional
- Unter Assignments wählen Sie, wer die Integration verwenden darf — eine bestimmte Gruppe ist sicherer als Allow everyone in your organization to access
- Klicken Sie auf Save
Zuweisung ist erforderlich
Okta authentifiziert den Benutzer und prüft anschließend, ob dieser der Anwendung zugewiesen ist. Ein nicht zugewiesener Benutzer erreicht die Okta-Anmeldeseite, meldet sich erfolgreich an und wird bei der Weiterleitung zurück abgewiesen. Wenn die Anmeldung für Sie funktioniert, aber nicht für Kolleg:innen, ist die Zuweisung der erste Prüfpunkt.
Schritt 3: Zugangsdaten sammeln¶
Auf der Registerkarte General der Anwendung, unter Client Credentials:
- Client ID → wird zu
DIGNA_OIDC_CLIENT_ID - Client secret → wird zu
DIGNA_OIDC_CLIENT_SECRET(klicken Sie auf das Augensymbol, um es anzuzeigen)
Schritt 4: Den Authorization Server wählen¶
Dies ist der Schritt, der Ihre Discovery-URL bestimmt. Gehen Sie zu Security → API, um die Authorization Server in Ihrer Organization zu sehen.
Org authorization server — stellt Tokens für die Okta-Organisation selbst aus:
Custom authorization server — einschließlich des von Okta erstellten Servers namens default:
Beim integrierten Server ist <auth_server_id> tatsächlich default:
Welchen verwenden?
Verwenden Sie den org Authorization Server, es sei denn, Ihre Organisation standardisiert bereits auf einen Custom Server für API-Zugriffsrichtlinien. Okta Developer-Accounts verwenden standardmäßig default; viele Unternehmens-Organisationen deaktivieren ihn. Öffnen Sie beide URLs im Browser — diejenige, die JSON statt eines Fehlers zurückgibt, ist die für Sie verfügbare.
Schritt 5: digna konfigurieren¶
dashboard/dashboard_config.toml¶
config.toml¶
[oidc.okta]
DIGNA_OIDC_CLIENT_ID = "0oa1b2c3d4EXAMPLE5"
DIGNA_OIDC_CLIENT_SECRET = "<the client secret copied in Step 3>"
DIGNA_OIDC_REDIRECT_URI = "https://digna.yourdomain.com/oidc/callback"
DIGNA_OIDC_CONFIGURATION_URL = "https://yourcompany.okta.com/oauth2/default/.well-known/openid-configuration"
Der key in beiden Dateien muss übereinstimmen — hier okta.
Schritt 6: Testen¶
Starten Sie das Backend und den Webserver neu und öffnen Sie dann das Dashboard. Siehe Testing Login für die vollständige Checkliste.
Fehlerbehebung Okta¶
Die Redirect-URI ist nicht registriert¶
Okta nennt die fehlerhafte URI in der Fehlermeldung. Vergleichen Sie sie mit General → Sign-in redirect URIs; Okta vergleicht die vollständige Zeichenkette einschließlich eines eventuell vorhandenen abschließenden Schrägstrichs.
Der Benutzer ist der Client-Anwendung nicht zugewiesen¶
Das Konto befindet sich nicht in der Zuweisungsliste der Anwendung. Fügen Sie den Benutzer oder dessen Gruppe unter Assignments hinzu.
400 Bad Request: Invalid Authorization Server¶
Die <auth_server_id> in der Discovery-URL existiert nicht, meist default in einer Organization, in der er entfernt wurde. Prüfen Sie Security → API auf die tatsächlich verfügbaren Server.
invalid_client beim Token-Schritt¶
Die Integration wurde als Single-Page Application erstellt und hat kein Client-Secret. Erstellen Sie sie erneut als Web Application.
Siehe auch¶
- Single Sign-On-Übersicht — Konfigurationsreferenz, Tests und allgemeine Fehlerbehebung
- Okta: OpenID Connect & OAuth 2.0