43 VIEWS

OAuth 2.0: Der Client Credentials Flow im Detail

02.11.2022

Im vorherigen Teil der Blogpostreihe zu OAuth2 wurde der Authorization Code Flow betrachtet. Heute werden wir uns den Client Credentials Flow anschauen, der vor allem für eine Autorisierung ohne Benutzerinteraktion interessant ist.

Der Client Credentials Flow wird angewendet, wenn wie erwähnt keine Nutzerinteraktion möglich ist, sprich wenn der Resource Owner keine Möglichkeit besitzt, sich über einen Logindialog beim Authorization Server zu authentifizieren. Er eignet sich daher besonders für eine Maschine-to-Maschine Autorisierung. Folgende Usecases sind z.B. denkbar:

  • Microservice to Microservic
  • Automatisierte Prozesse, Cronjobs

Beim Client Credentials Flow wird der Token-Endpunkt des Authorization Server direkt vom Client angesprochen, ohne dass der Authorization Server zuvor einen Redirect zu einer Loginseite veranlassen muss. Es gibt also keinen Logindialog, da eine Nutzerinteraktion in diesem Anwendungsfall nicht möglich ist. Der Client authentifiziert sich direkt über seine Client ID und sein Client Secret beim Authorization Server. Diese Informationen müssen zuvor bereits manuell beim Authorization Server hinterlegt werden. Nach erfolgreicher Authentifizierung erhält der Client das Access Token

Client Credentials Flow
Abbildung 1: Client Credentials Flow; Bildquelle: Eigene Darstellung

 

Erklärung des Client Credentials Flows:

 

1) Der Client sendet eine Tokenanfrage an den Token-Endpunkt des Authorization Server. Diese Anfrage enthält die Client ID und das Client Secret

 

2) Bei erfolgreicher Authentifizierung, liefert der Authorization Server das Access Token an den Client aus

 

3) Der Client frägt die Ressource beim Resource Server an und präsentiert seinen Token. Dieser Validiert die Anfrage und liefert die Ressource.

 

Fazit: Der Client Credentials Flow kommt zu Zug, wenn ohne Benutzerauthentifizierung gearbeitet wird

Benötigt eine Maschine, ein Microservice oder ein automatisierter Prozess Zugriff auf eine geschützte Ressource, können Grants die eine Benutzerauthentifizierung benötigen, nicht verwendet werden, da hier eine Benutzerinteraktion nötig ist. In diesem Szenario kommt der Client Credentials Flow zum Zug.

 

Mehr zu OAuth2.0 erfahren

 

Quellen           

 

Zurück zur Übersicht

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht.

*Pflichtfelder

*