Type d'autorisation Authorization Code dans OAuth 2.0
Le type d'autorisation Authorization Code est l'un des types d'autorisation OAuth 2.0 les plus couramment utilisés. Il est spécifiquement conçu pour les applications qui peuvent maintenir leur secret client de manière confidentielle, ce qui le rend idéal pour les applications côté serveur.
Comment fonctionne Authorization Code ?
- Redirection :
- L'application cliente redirige l'utilisateur vers le point de terminaison d'autorisation du serveur d'autorisation OAuth 2.0. Cette redirection inclut généralement des paramètres de requête tels que le
client_id, leresponse_type(défini sur "code"), leredirect_uri(où le serveur d'autorisation enverra l'utilisateur après avoir accordé/refusé la permission) et lescope(qui spécifie le niveau d'accès que l'application demande).
- Authentification de l'utilisateur :
- L'utilisateur se connecte au serveur d'autorisation (s'il n'est pas déjà connecté) et examine la demande d'accès de l'application cliente.
- Émission du code d'autorisation :
- Si l'utilisateur accorde la permission, il est redirigé vers l'application cliente via le
redirect_urifourni précédemment. La redirection inclut également un code d'autorisation dans l'URL.
- Échange de token :
- L'application cliente échange le code d'autorisation contre un token d'accès en effectuant une requête POST vers le point de terminaison de token du serveur d'autorisation. Cette requête contient le code d'autorisation, le
client_id, leclient_secret, leredirect_uriet legrant_type(défini sur "authorization_code").
- Émission du token d'accès :
- Si le serveur d'autorisation vérifie avec succès le code fourni et les identifiants du client, il retourne un token d'accès (et optionnellement, un token de rafraîchissement) à l'application cliente.
- Accès à la ressource protégée :
- L'application cliente utilise le token d'accès obtenu pour effectuer des requêtes au serveur de ressources (API) au nom de l'utilisateur.
Comment configurer Authorization Code ?
- Enregistrer votre application :
- Avant de démarrer le flux OAuth, enregistrez votre application auprès du fournisseur OAuth 2.0. Après un enregistrement réussi, vous recevrez un
client_idet unclient_secret.
- Configuration du Redirect URI :
- Lors de l'enregistrement de votre application, on vous demandera souvent de fournir un
redirect_uri. Ce URI est l'endroit où le serveur d'autorisation enverra les utilisateurs après qu'ils aient accordé/refusé l'accès. Assurez-vous que ce URI est précis et sécurisé (généralement en utilisant HTTPS).
- Implémenter le flux OAuth :
- Utilisez une bibliothèque ou un SDK compatible avec le langage et le framework de votre application pour simplifier ce processus.
- Commencez le flux en redirigeant les utilisateurs vers le point de terminaison d'autorisation du serveur d'autorisation avec les paramètres de requête nécessaires.
- Implémentez un point de terminaison sur votre serveur qui correspond au
redirect_urique vous avez enregistré. Ce point de terminaison gérera le code d'autorisation entrant. - Échangez le code d'autorisation contre un token d'accès en effectuant une requête POST vers le point de terminaison de token.
- Sécuriser le Client Secret :
- N'exposez jamais votre
client_secretdans le code côté client. Utilisez-le uniquement côté serveur lors de l'échange du code d'autorisation contre un token d'accès.
- Stockage du token :
- Une fois que vous avez un token d'accès, stockez-le de manière sécurisée. Selon les besoins de votre application, cela peut être en mémoire serveur, dans une base de données ou dans un cookie sécurisé. Utilisez toujours HTTPS pour garantir une communication chiffrée.
- Gérer l'expiration du token :
- Les tokens d'accès ont souvent une durée de vie courte. Si vous avez un token de rafraîchissement, utilisez-le pour obtenir un nouveau token d'accès sans que l'utilisateur ait besoin de se réauthentifier.
Réflexions finales sur Authorization Code
Le type d'autorisation Authorization Code est une méthode robuste et sécurisée pour obtenir l'autorisation de l'utilisateur, en particulier pour les applications côté serveur. L'étape supplémentaire d'échange d'un code d'autorisation contre un token d'accès garantit que l'accès direct aux identifiants de l'utilisateur est évité. Lors de l'implémentation, privilégiez toujours la sécurité, en utilisant HTTPS et en gérant de manière sécurisée les secrets client et les tokens.