# 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
statemö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
scopeundstateoptional 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.