DocID®DocID®-Dokumentation
Zurück zu DocID®
  • Übersicht

    • DocID®-Dokumentation
  • Einführung

    • Einführung
    • So funktioniert DocID®
    • Grundbegriffe
  • Erste Schritte

    • Erste Schritte
    • Drupal-Modul
    • WordPress-Plugin
    • Individuelle Website
    • Go-live-Checkliste
  • Funktionen

    • Funktionen
    • Standard Login
    • Zugang und Personalisierung
    • Analytics
    • Campaigns
  • Lizenzen

    • Lizenzen
  • OAuth 2.0

    • OAuth 2.0
    • Client konfigurieren
    • Authorization Code Flow
    • Scopes und UserInfo
    • Sicherheit und Umgebungen
  • API

    • API
  • Hilfe

    • Fehlerbehebung

OAuth 2.0

Authorization Code Flow

Implementieren Sie Autorisierung, PKCE, Code-Austausch, Refresh und Logout sicher.

1. Transaktionswerte erzeugen

Erzeugen Sie für jeden Anmeldeversuch:

  • einen hochentropischen state-Wert, der die Anfrage mit dem Callback verknüpft
  • einen nonce-Wert, der die Identitätsaussagen mit der Anfrage verknüpft
  • einen hochentropischen PKCE-code_verifier
  • eine code_challenge, berechnet als Base64URL-codierter SHA-256-Hash des Verifiers

Speichern Sie die Werte in einer kurzlebigen, serverseitig geschützten Transaktion.

2. Zur Autorisierung weiterleiten

1GET /oauth2/authorize?2  response_type=code&3  client_id=YOUR_CLIENT_ID&4  redirect_uri=https%3A%2F%2Fexample.com%2Fauth%2Fdocid%2Fcallback&5  scope=openid%20professional&6  state=RANDOM_STATE&7  nonce=RANDOM_NONCE&8  code_challenge=PKCE_CHALLENGE&9  code_challenge_method=S256

3. Callback validieren

Ein erfolgreicher Callback enthält code und state. Vergleichen Sie state nach Möglichkeit mit einer zeitkonstanten Vergleichsfunktion mit dem gespeicherten Wert. Lehnen Sie fehlende, wiederverwendete, abgelaufene oder nicht übereinstimmende Transaktionen ab.

Ein nicht erfolgreicher Callback enthält error und kann error_description enthalten. Protokollieren Sie ausschließlich eine sichere interne Korrelations-ID und zeigen Sie der Nutzerin oder dem Nutzer eine verständliche Meldung mit einer Möglichkeit zur Wiederholung an.

4. Code austauschen

Senden Sie serverseitig eine Formularanfrage:

1POST /oauth2/token2Content-Type: application/x-www-form-urlencoded3Authorization: Basic BASE64_CLIENT_ID_AND_SECRET45grant_type=authorization_code&6code=RETURNED_CODE&7redirect_uri=https%3A%2F%2Fexample.com%2Fauth%2Fdocid%2Fcallback&8code_verifier=ORIGINAL_PKCE_VERIFIER

Client-Zugangsdaten können, sofern konfiguriert, auch im Form-Body akzeptiert werden. HTTP Basic trennt die Zugangsdaten jedoch von den Grant-Parametern.

5. Benutzerinformationen abrufen

1GET /oauth2/userinfo2Authorization: Bearer ACCESS_TOKEN

Erstellen Sie aus der Antwort eine lokale Website-Session und löschen Sie anschließend die einmalige OAuth-Transaktion.

Token aktualisieren und widerrufen

Tauschen Sie ein gültiges Refresh Token mit grant_type=refresh_token unter /oauth2/token aus. Speichern Sie Refresh Tokens ausschließlich auf dem Server. Wenn die Integration ein Token nicht mehr benötigt, widerrufen Sie es unter /oauth2/revoke und machen Sie die lokale Session ungültig.

ZurückClient konfigurierenWeiterScopes und UserInfo

Auf dieser Seite

  1. 1. Transaktionswerte erzeugen
  2. 2. Zur Autorisierung weiterleiten
  3. 3. Callback validieren
  4. 4. Code austauschen
  5. 5. Benutzerinformationen abrufen
  6. Token aktualisieren und widerrufen