Erweitertes OAuth2
Auris unterstützt vier erweiterte OAuth2-Funktionen über den standardmäßigen Authorization Code + PKCE-Flow hinaus: Device Authorization Flow, Client-Initiated Backchannel Authentication (CIBA), DPoP (Demonstration of Proof-of-Possession) und Token Exchange. Jede Funktion wird pro Anwendung konfiguriert und kann unabhängig aktiviert werden.
Diese Funktionen adressieren Enterprise-Szenarien wie die Authentifizierung auf eingabebeschränkten Geräten (Smart-TVs, CLI-Tools), serverinitierte Authentifizierung (Call-Center, Kiosk-Genehmigungen), kryptografische Senderbindung von Token und kontrollierte Identitätsdelegation.
Zugriff über Konsole → Anwendungen → Anwendung auswählen → Einstellungen-Tab.
Device Authorization Flow (RFC 8628)
Der Device Authorization Flow ermöglicht Benutzern die Authentifizierung auf Geräten ohne Browser oder mit eingeschränkten Eingabemöglichkeiten. Das Gerät zeigt einen Kurzcode an, den der Benutzer auf einem separaten Gerät (Telefon oder Computer) eingibt, um die Sitzung zu autorisieren.
Device Flow aktivieren
Anwendungseinstellungen öffnen
Gehe zu Konsole → Anwendungen und klicke auf die zu konfigurierende Anwendung. Navigiere zum Einstellungen-Tab.
Device Flow aktivieren
Schalte Device Flow aktivieren ein.
Einstellungen konfigurieren
| Einstellung | Standard | Beschreibung |
|---|---|---|
| Polling-Intervall | 5 Sekunden | Wie oft das Gerät den Token-Endpunkt auf den Autorisierungsstatus abfragen soll. Zu niedriger Wert erhöht die Serverlast. |
| Code-Lebensdauer | 600 Sekunden (10 Min.) | Wie lange der Benutzercode gültig bleibt. Nach Ablauf muss das Gerät einen neuen Code anfordern. |
| Benutzercode-Länge | 8 Zeichen | Länge des dem Benutzer angezeigten Codes. Längere Codes sind sicherer, aber schwerer einzugeben. |
Speichern
Klicke auf Speichern, um die Konfiguration zu übernehmen.
Verifizierungs-URI
Nach dem Aktivieren des Device Flows stellt Auris eine Verifizierungs-URI für deine Anwendung bereit. Dies ist die URL, die du Benutzern zusammen mit dem Gerätecode anzeigst. Das Format ist:
https://auth.ihredomain.de/hosted/deviceDeine Geräteanwendung sollte sowohl die Verifizierungs-URI als auch den Benutzercode anzeigen, zum Beispiel:
Um dich anzumelden, besuche: https://auth.ihredomain.de/hosted/device
Code eingeben: ABCD-EFGHDie Verifizierungs-URI ist für alle Anwendungen in deinem Tenant gleich. Der Benutzercode identifiziert die Gerätautorisierungssitzung eindeutig, daher ist keine anwendungsspezifische URL erforderlich.
So funktioniert es
- Das Gerät fordert einen Gerätecode von
POST /api/oauth/device/authorizean - Der Benutzer besucht die Verifizierungs-URI und gibt den Code ein
- Der Benutzer authentifiziert sich normal (Passwort, MFA, SSO — was auch immer dein Tenant erfordert)
- Das Gerät fragt
POST /api/auth/tokenmitgrant_type=urn:ietf:params:oauth:grant-type:device_codeab, bis der Benutzer die Authentifizierung abschließt - Nach der Autorisierung empfängt das Gerät Zugriffs- und Refresh-Token
/api/oauth/device/authorize/api/auth/tokenClient-Initiated Backchannel Authentication (CIBA)
CIBA ermöglicht Server-zu-Server-Authentifizierung, bei der die vertrauende Partei die Authentifizierung initiiert, ohne dass der Benutzer an der Anwendung anwesend ist. Der Benutzer erhält eine Benachrichtigung (SMS oder E-Mail) und genehmigt die Anmeldung auf seinem eigenen Gerät.
Typische Anwendungsfälle sind Call-Center-Authentifizierung (“Wir haben eine Benachrichtigung an Ihr Telefon gesendet — bitte genehmigen Sie sie, um Ihre Identität zu verifizieren”) und Hintergrund-ReAuthentifizierung für lang laufende Sitzungen.
CIBA aktivieren
Anwendungseinstellungen öffnen
Gehe zu Konsole → Anwendungen und wähle die Anwendung aus. Navigiere zum Einstellungen-Tab.
CIBA aktivieren
Schalte CIBA aktivieren ein.
Benachrichtigungseinstellungen konfigurieren
| Einstellung | Standard | Beschreibung |
|---|---|---|
| Benachrichtigungsmodus | Abfrage | Wie die vertrauende Partei das Authentifizierungsergebnis erhält. Siehe Benachrichtigungsmodi unten. |
| Benachrichtigungskanal | Wie der Benutzer über die ausstehende Authentifizierung benachrichtigt wird: SMS oder E-Mail. | |
| Anforderungslebensdauer | 300 Sekunden (5 Min.) | Wie lange die Authentifizierungsanforderung gültig ist, bevor sie abläuft. |
| Token-Zustellungsmodus | Abfrage | Wie der Client die endgültigen Token erhält. Optionen: abfragen, anpingen, pushen. |
Callback-URL konfigurieren (nur Ping/Push-Modus)
Wenn du Ping- oder Push-Benachrichtigungsmodus verwendest, gib die Callback-URL ein, an die Auris das Authentifizierungsergebnis senden soll.
Speichern
Klicke auf Speichern, um die Konfiguration zu übernehmen.
Benachrichtigungsmodi
| Modus | Verhalten |
|---|---|
| Abfrage | Die vertrauende Partei fragt den Token-Endpunkt in regelmäßigen Abständen ab, bis der Benutzer antwortet. Am einfachsten zu implementieren. |
| Ping | Auris sendet eine Benachrichtigung an die Callback-URL, wenn der Benutzer antwortet, dann ruft die vertrauende Partei den Token-Endpunkt auf, um Token abzurufen. |
| Push | Auris sendet die Token direkt an die Callback-URL, wenn der Benutzer genehmigt. Die vertrauende Partei muss nicht abfragen. |
Der Push-Modus liefert Token direkt an deine Callback-URL. Stelle sicher, dass dieser Endpunkt mit TLS gesichert ist und die eingehende Anforderungssignatur validiert. Wenn die Callback-URL kompromittiert wird, könnte ein Angreifer Token abfangen.
/api/oauth/backchannel/authorizeDPoP (Demonstration of Proof-of-Possession) — RFC 9449
DPoP bindet Zugriffs-Token an einen bestimmten Client, indem der Client auf jede Anfrage hin den Besitz eines privaten Schlüssels nachweisen muss. Dies verhindert Token-Diebstahl und Replay-Angriffe — selbst wenn ein Zugriffs-Token abgefangen wird, kann es ohne den entsprechenden privaten Schlüssel nicht verwendet werden.
DPoP aktivieren
Anwendungseinstellungen öffnen
Navigiere zu Konsole → Anwendungen → Anwendung auswählen → Einstellungen-Tab.
DPoP aktivieren
Schalte DPoP aktivieren ein.
DPoP-Einstellungen konfigurieren
| Einstellung | Standard | Beschreibung |
|---|---|---|
| DPoP aktivieren | Aus | Ermöglicht Clients, DPoP-Nachweise bei der Token-Anforderung zu verwenden. |
| DPoP erforderlich | Aus | Wenn aktiviert, lehnt Auris Token-Anforderungen ab, die keinen gültigen DPoP-Nachweis enthalten. Nur aktivieren, nachdem bestätigt wurde, dass alle Clients DPoP unterstützen. |
| Nonces erforderlich | Aus | Fügt vom Server ausgestellte Nonces zum DPoP-Flow für Replay-Schutz hinzu. Erhöht die Sicherheit, fügt aber einen zusätzlichen Roundtrip hinzu. |
Speichern
Klicke auf Speichern, um die Einstellungen zu übernehmen.
So funktioniert DPoP
- Der Client generiert ein asymmetrisches Schlüsselpaar (typischerweise ECDSA P-256)
- Bei jeder Token-Anforderung erstellt der Client einen mit seinem privaten Schlüssel signierten DPoP-Nachweis-JWT, der die HTTP-Methode, URL und einen eindeutigen Bezeichner enthält
- Auris verifiziert den Nachweis und bindet das ausgestellte Token an den öffentlichen Schlüssel des Clients (JWK-Thumbprint)
- Bei nachfolgenden API-Aufrufen fügt der Client sowohl das Zugriffs-Token als auch einen frischen DPoP-Nachweis-Header ein
- Ressourcenserver verifizieren, dass der
jkt-Claim (JWK Thumbprint) des Tokens mit dem DPoP-Nachweis übereinstimmt
Die DPoP-Konfiguration erscheint auch auf der Anwendungsdetailseite unter dem Abschnitt Sicherheit und bietet schnellen Zugriff auf dieselben Einstellungen über mehrere Navigationspfade.
Token Exchange (RFC 8693)
Token Exchange ermöglicht es einem Dienst, ein Zugriffs-Token gegen ein neues Token mit anderen Scopes, Subjekt oder Audience zu tauschen. Dies unterstützt zwei Muster: Impersonation (als ein anderer Benutzer handeln) und Delegation (im Namen eines anderen Benutzers handeln, während die ursprüngliche Identität beibehalten wird).
Token Exchange aktivieren
Anwendungseinstellungen öffnen
Navigiere zu Konsole → Anwendungen → Anwendung auswählen → Einstellungen-Tab.
Token Exchange aktivieren
Schalte Token Exchange aktivieren ein.
Erlaubte Austauschtypen auswählen
| Typ | Erforderliche Berechtigung | Beschreibung |
|---|---|---|
| Impersonation | impersonate:users | Das resultierende Token hat den Zielbenutzer als Subjekt. Die ursprüngliche Identität wird nicht beibehalten. Für Admin-Supportszenarios verwendet. |
| Delegation | delegate:tokens | Das resultierende Token enthält einen act-Claim (Akteur), der die ursprüngliche Anruferidentität beibehält. Das Subjekt ist der Zielbenutzer. Für Dienst-zu-Dienst-Delegationsketten verwendet. |
Speichern
Klicke auf Speichern, um die Einstellungen zu übernehmen.
Impersonation ist eine leistungsstarke Funktion. Gewähre die Berechtigung
impersonate:users nur hochvertrauenswürdigen Anwendungen
und Rollen. Alle Token-Austausche werden im Audit-Protokoll mit den ursprünglichen und
Zielidentitäten protokolliert.
/api/auth/tokenMonitoring
Die Konsole bietet dedizierte Monitoring-Seiten für jede erweiterte OAuth2-Funktion. Zugriff über den Abschnitt Erweitertes OAuth in der Seitenleiste.
Gerätecodes
Gehe zu Konsole → Erweitertes OAuth → Gerätecodes, um alle aktiven und abgelaufenen Geräteautorisierungssitzungen anzuzeigen.
| Spalte | Beschreibung |
|---|---|
| Benutzercode | Der dem Benutzer angezeigte Code |
| Client | Die Anwendung, die den Gerätecode angefordert hat |
| Status | Ausstehend, Autorisiert, Abgelaufen oder Verweigert |
| Erstellt am | Wann der Gerätecode ausgestellt wurde |
| Läuft ab am | Wann der Gerätecode abläuft |
| Benutzer | Der Benutzer, der die Sitzung autorisiert hat (falls autorisiert) |
CIBA-Anforderungen
Gehe zu Konsole → Erweitertes OAuth → CIBA-Anforderungen, um Backchannel-Authentifizierungsanforderungen anzuzeigen.
| Spalte | Beschreibung |
|---|---|
| Anforderungs-ID | Eindeutiger Bezeichner für die CIBA-Anforderung |
| Benutzer | Der zu authentifizierende Benutzer |
| Client | Die Anwendung, die die Anforderung initiiert hat |
| Status | Ausstehend, Abgeschlossen, Abgelaufen oder Verweigert |
| Benachrichtigungsmodus | Abfrage, Ping oder Push |
| Erstellt am | Wann die Anforderung initiiert wurde |
Token-Austausche
Gehe zu Konsole → Erweitertes OAuth → Token-Austausche, um das Audit-Protokoll aller Token-Austauschoperationen anzuzeigen.
| Spalte | Beschreibung |
|---|---|
| Zeitstempel | Wann der Austausch stattfand |
| Typ | Impersonation oder Delegation |
| Von Identität | Die ursprüngliche authentifizierte Identität |
| Zu Identität | Die Zielbenutzeridentität |
| Client | Die Anwendung, die den Austausch durchgeführt hat |
| Scopes | Die dem ausgetauschten Token gewährten Scopes |
Risikobewertung
Erweiterte OAuth2-Funktionen integrieren sich mit der Auris-Risikobewertungs-Engine. Wenn Risikobewertung aktiviert ist, wird jede Authentifizierung über Device Flow, CIBA oder Token Exchange genauso auf Risiko bewertet wie eine Standardanmeldung. Hochrisiko-Authentifizierungen können Step-Up-MFA-Anforderungen auslösen.
Für die detaillierte Konfiguration der Risiko-Engine, Faktorgewichtungen, Schwellenwerte und benutzerdefinierte Regeln, siehe die dedizierte Seite Risikobewertung & Adaptives MFA.
Berechtigungen
Die folgenden Berechtigungen steuern den Zugriff auf erweiterte OAuth2-Funktionen:
| Berechtigung | Beschreibung |
|---|---|
view:device_codes | Aktive Geräteautorisierungssitzungen anzeigen |
manage:device_codes | Gerätecodes widerrufen |
view:token_exchanges | Token-Austausch-Audit-Protokoll anzeigen |
impersonate:users | Impersonation-Token-Austausche durchführen |
delegate:tokens | Delegations-Token-Austausche durchführen |
manage:dpop_config | DPoP-Einstellungen für Anwendungen konfigurieren |
view:ciba_requests | Backchannel-Authentifizierungsanforderungen anzeigen |
manage:ciba_config | CIBA-Einstellungen für Anwendungen konfigurieren |
view:risk_assessments | Risikobewertungsdaten anzeigen |
manage:risk_rules | Risikobewertungsregeln erstellen und ändern |
manage:advanced_oauth | Vollständiger Zugriff auf alle erweiterten OAuth2-Einstellungen |
Zugehörige Anleitungen
- Risikobewertung & Adaptives MFA — Die Risiko-Engine konfigurieren, die alle OAuth2-Flows schützt
- Device Authorization Flow — Entwickleranleitung zur Implementierung des Device Flows in deiner Anwendung
- CIBA-Integration — Entwickleranleitung für Backchannel-Authentifizierung
- DPoP für Token-Sicherheit — Wie DPoP in deiner Client-Anwendung implementiert wird
- Token Exchange — Entwickleranleitung für Impersonation und Delegation
- Anwendungen — Anwendungseinstellungen in der Konsole verwalten