# Authorization Code Flow

Diese Abbildung zeigt den aktualisierten OAuth2 Authorization Code Flow für Basic und Economy/Business in einem gemeinsamen Ablauf. Der User ist als Akteur aufgeführt, weil er den Flow über den Login-Button startet, seine Credentials eingibt und – sofern erforderlich – Consent erteilt.

sequenceDiagram participant U as User participant W as Kunden-Website / Login Button participant A as Authorization Endpunkt participant C as Kunden-Backend / redirect_uri participant T as Token Endpunkt participant D as Userdaten Endpunkt U->>W: Öffnet geschützte Inhalte alt Abschnitt Basic: Authorization Request ohne scope/state W->>A: User klickt den DocCheck Login Button<br/>Authorization Request mit grant_type, response_type, client_id, redirect_uri else Abschnitt Economy/Business: Authorization Request mit optionalem scope/state W->>A: User klickt den DocCheck Login Button<br/>Authorization Request mit grant_type, response_type, client_id, redirect_uri, optional scope und state end A->>U: Login-Formular anzeigen U-->>A: Credentials eingeben A->>A: Credentials und Berufsgruppe prüfen opt Abschnitt Economy/Business: Consent erforderlich A->>U: Consent-Formular anzeigen U-->>A: Consent erteilen oder ablehnen end alt Abschnitt Basic: Redirect nur mit code A-->>C: Redirect zur redirect_uri mit code else Abschnitt Economy/Business: Redirect mit code und ggf. state A-->>C: Redirect zur redirect_uri mit code und ggf. state C->>C: state validieren, falls mitgeschickt end C->>T: POST /token mit grant_type, client_id, client_secret, code, redirect_uri T-->>C: access_token, expires_in, ggf. refresh_token alt Abschnitt Basic: Flow endet nach Access Token C-->>W: Authentifizierung bestätigen / Zugriff steuern else Abschnitt Economy/Business: zusätzlicher Userdaten-Abruf C->>D: GET /api/users/data mit Bearer access_token D-->>C: Freigegebene Userdaten als JSON C-->>W: Session erstellen / Zugriff steuern opt Abschnitt Economy/Business: Access Token erneuern C->>T: POST /token mit grant_type=refresh_token T-->>C: Neuer access_token und refresh_token end end

Basic Besonderheiten

  • Kein state möglich.
  • Keine Scope-Abfrage möglich.
  • Kein Consent-Formular möglich.
  • Kein Userdaten-Abruf über den Userdaten-Endpunkt.
  • Der Flow endet nach dem erfolgreichen Tausch des Authorization Codes gegen einen Access Token.

# Hinweise

  • Der Authorization Code wird nach erfolgreicher Authentifizierung an die redirect_uri übergeben.
  • Der Token-Tausch erfolgt serverseitig über POST /token.
  • In Basic bestätigt der Access Token nur die erfolgreiche DocCheck Authentifizierung; danach endet der Basic Auth Flow.
  • Ab Economy/Business können scope und state optional bereits im Authorization Request mitgeschickt werden.
  • Werden Scopes angefragt, kann dadurch ein Consent-Formular erforderlich werden.
  • Das Consent-Formular kann entfallen, wenn der User die Einwilligung für diesen Client bereits erteilt hat.
  • Der Userdaten-Endpunkt kann nur mit gültigem Access Token genutzt werden, sofern Lizenz, Scopes und Consent passen.
ON THIS PAGE