take a auth-shot – Client Credentials Grant
In OAuth2 ist der Zugriff auf Ressourcen mit Access-Token abgesichert. Der Access-Token dient dabei als Autorisierung eines Clients für den Zugriff. Um den Access-Token zu bekommen, wurden in OAuth2 Grant-Types spezifiziert.
Wer die Frage – „Hat unsere Anwendung Benutzerinteraktion?“ – aus unserem letzten Blog („Ein Grant für alle Fälle“) mit “Nein” beantwortet hat, also eine Anwendung wie beispielsweise einen Backend-Service einsetzt, kann den Access-Token mithilfe des Grant-Types Client-Credentials abrufen und so den Zugriff auf Ressourcen absichern.
Diese Art von Anwendungen werden im Kontext von OAuth2 auch als Confidential Clients bezeichnet. Confidential Clients können im Gegensatz zu Public Clients ein Geheimnis (client-secret) sicher aufbewahren, also speichern und verarbeiten.
Diese Eigenschaft erleichtert den Ablauf zur Token-Erstellung erheblich. Vereinfacht ausgedrückt werden client-id und client-secret als username & password-Kombination verwendet.
Dabei ruft der Client den Token-Endpoint des Authorization Servers auf und übergibt dabei seine client-id und sein client-secret. Der Authorization-Server prüft die Client-Credentials und antwortet mit einer Token-Response, die unter anderem den Access-Token enthält.
Anbei haben wir den Client Credentials Grant mit allen Rollen, also Client, Authorization-Server (cidaas) und Resource Server, in einem Ablaufdiagramm dargestellt.
In unserem nächsten Blog in der take a auth-shot Reihe schauen wir uns den PKCE Grant an und für welche Anwendungsfälle dieser konzipiert wurde.
Unseren ersten Teil der take a auth-shot Blogreihe – „Ein Grant für alle Fälle?“ – findest du hier.
Den dritten Teil unserer take a auth-shot Blogreihe – „PKCE Grant“ – findest du hier.