Was ist ein Grant Type?

OAuth 2.0 Autorisierungskontext

Im Rahmen der OAuth 2.0 Autorisierung bezieht sich der Begriff "Grant Type" auf die Methode, durch die eine Anwendung ein Access Token erhaelt. Im Wesentlichen legt der Grant Type fest, welche Art von Autorisierungsflow die Anwendung verwendet, um auf Benutzerdaten zuzugreifen.

Verschiedene Grant Types in OAuth 2.0

OAuth 2.0 definiert mehrere Grant Types, die fuer unterschiedliche Anwendungsszenarien zugeschnitten sind:

OAuth 2.0 mit LoadFocus

  1. Authorization Code:
  • Am besten geeignet fuer: Anwendungen, die das Client Secret sicher aufbewahren koennen, oft serverseitige Anwendungen.
  • Flow: Der Benutzer wird zunaechst zu einem Authentifizierungsserver weitergeleitet. Nach erfolgreicher Authentifizierung wird er mit einem Authorization Code zurueck zur Anwendung geleitet. Die Anwendung tauscht diesen Code gegen ein Access Token ein.
  1. Implicit:
  • Am besten geeignet fuer: User-Agent-zentrische Anwendungen, wie Single-Page-Apps.
  • Flow: Spiegelt den Authorization Code-Flow wider, aber das Access Token wird direkt ohne einen Zwischencode geliefert. Er gilt als weniger sicher als die Authorization Code-Methode.
  1. Password (Resource Owner Password Credentials):
  • Am besten geeignet fuer: Anwendungen mit hohem Vertrauen, die oft derselben Organisation wie der Ressourcenserver gehoeren.
  • Flow: Benutzer geben ihren Benutzernamen und ihr Passwort direkt in die Anwendung ein. Die Anwendung verwendet diese Zugangsdaten dann, um ein Access Token abzurufen. Dieser Flow wird generell nicht empfohlen, es sei denn, der Client ist sehr vertrauenswuerdig.
  1. Client Credentials:
  • Am besten geeignet fuer: Dienste oder Anwendungen, die auf ihre eigenen Ressourcen zugreifen muessen, nicht auf die eines Benutzers.
  • Flow: Die Anwendung authentifiziert sich mit ihren eigenen Zugangsdaten (wie Client-ID und Secret) und erhaelt dafuer ein Access Token.
  1. Device Code (fuer Geraete ohne umfassende Browser-Faehigkeiten):
  • Am besten geeignet fuer: Geraete wie Smart-TVs, Spielkonsolen oder Drucker.
  • Flow: Das Geraet kommuniziert mit dem Autorisierungsserver, um einen Geraetecode und einen Benutzercode zu erhalten. Der Benutzer gibt den Benutzercode auf einem anderen Geraet ein (z.B. einem Smartphone). Nach der Verifizierung erhaelt das Geraet ein Access Token.
  1. Refresh Token:
  • Verwendung: Es ist kein eigenstaendiger Flow, sondern ergaenzt andere Grant Types. Wenn das Access Token ablaeuft, ermoeglicht ein Refresh Token der Anwendung, ein neues zu erhalten, ohne dass sich der Benutzer erneut anmelden muss.

Warum sind Grant Types wichtig?

Grant Types bieten Flexibilitaet fuer verschiedene Anwendungskontexte. Jeder einzelne stellt sicher, dass die Beschaffung von Access Tokens so sicher wie moeglich ist, unter Beruecksichtigung der Einschraenkungen der Anwendung. Die Wahl des Grant Types beeinflusst die Interaktionen zwischen Client, Benutzer und Autorisierungsserver, wodurch die richtige Auswahl sowohl fuer die Benutzerfreundlichkeit als auch fuer die Sicherheit entscheidend ist.