Qu'est-ce qu'un type d'autorisation (Grant Type) ?

Contexte d'autorisation OAuth 2.0

Dans le cadre de l'autorisation OAuth 2.0, le terme "Grant Type" (type d'autorisation) fait référence à la méthode par laquelle une application obtient un token d'accès. Essentiellement, le type d'autorisation spécifie le type de flux d'autorisation que l'application utilisera pour accéder aux données de l'utilisateur.

Différents types d'autorisation dans OAuth 2.0

OAuth 2.0 définit plusieurs types d'autorisation, adaptés à différents scénarios d'application :

OAuth 2.0 avec LoadFocus

  1. Authorization Code :
  • Idéal pour : Les applications qui peuvent garder le secret client en sécurité, souvent des applications côté serveur.
  • Flux : L'utilisateur est d'abord redirigé vers un serveur d'authentification. Après une authentification réussie, il est redirigé vers l'application avec un code d'autorisation. L'application échange ce code contre un token d'accès.
  1. Implicit :
  • Idéal pour : Les applications centrées sur l'agent utilisateur, comme les applications monopage.
  • Flux : Similaire au flux Authorization Code, mais le token d'accès est délivré directement sans code intermédiaire. Il est considéré comme moins sécurisé que la méthode Authorization Code.
  1. Password (Resource Owner Password Credentials) :
  • Idéal pour : Les applications hautement fiables, souvent détenues par la même organisation que le serveur de ressources.
  • Flux : Les utilisateurs saisissent directement leur nom d'utilisateur et mot de passe dans l'application. L'application utilise ensuite ces identifiants pour obtenir un token d'accès. Ce flux est généralement déconseillé sauf si le client est hautement fiable.
  1. Client Credentials :
  • Idéal pour : Les services ou applications qui doivent accéder à leurs propres ressources, pas celles d'un utilisateur.
  • Flux : L'application s'authentifie en utilisant ses propres identifiants (comme l'ID client et le secret) et obtient un token d'accès en retour.
  1. Device Code (pour les appareils sans navigateur complet) :
  • Idéal pour : Les appareils comme les TV connectées, les consoles de jeux ou les imprimantes.
  • Flux : L'appareil communique avec le serveur d'autorisation pour obtenir un code d'appareil et un code utilisateur. L'utilisateur saisit le code utilisateur sur un autre appareil (par exemple, un smartphone). Après vérification, l'appareil reçoit un token d'accès.
  1. Refresh Token :
  • Utilisation : Ce n'est pas un flux autonome mais il complète d'autres types d'autorisation. Lorsque le token d'accès expire, un token de rafraîchissement permet à l'application d'en obtenir un nouveau sans que l'utilisateur ait besoin de se reconnecter.

Pourquoi les types d'autorisation sont-ils importants ?

Les types d'autorisation offrent de la flexibilité pour différents contextes d'application. Chacun garantit que l'obtention du token d'accès est aussi sécurisée que possible, compte tenu des contraintes de l'application. Le choix du type d'autorisation affecte les interactions entre le client, l'utilisateur et le serveur d'autorisation, rendant sa sélection correcte essentielle tant pour l'utilisabilité que pour la sécurité.