Une brève introduction au flux de dispositif OAuth 2.0
Cet article explore le flux de dispositif OAuth 2.0, une solution pour l'authentification d'identité sur des appareils qui manquent soit d'un navigateur pour effectuer une autorisation basée sur l'agent utilisateur, soit qui ont des contraintes d'entrée, en décrivant son but et son flux d'interaction utilisateur.
En tant que cadre d'autorisation, OAuth 2.0 est largement utilisé dans divers scénarios. Parmi les flux d'authentification fournis par OAuth, le plus courant est le flux de code d'autorisation. Lorsqu'un utilisateur authentifie son identité au sein d'une application en utilisant le flux de code d'autorisation, l'application ouvrira un navigateur à partir de l'appareil pour accéder au point d'accès d'autorisation, puis l'utilisateur entrera ses identifiants (nom d'utilisateur, email, etc.) et ses informations d'identification (mot de passe, code de vérification, etc.) pour compléter l'authentification.
Cependant, lorsqu'un utilisateur essaye d'utiliser une application sur un appareil qui manque d'un navigateur ou même de la capacité d'entrer ses informations d'identification de compte, comment pouvons-nous effectuer l'authentification d'identité via OAuth 2.0? C'est ici que le « flux de dispositif » entre en jeu.
Qu'est-ce que le flux de dispositif OAuth 2.0
Le flux de dispositif OAuth 2.0 est une implémentation du protocole OAuth 2.0 conçu pour prendre en charge les appareils ayant des capacités d'entrée limitées ou manquant d'un navigateur adapté. Ces appareils incluent les télévisions intelligentes, les appareils IoT, les imprimantes, etc.
Le flux de dispositif permet aux utilisateurs d'initier des requêtes d'autorisation sur les appareils mentionnés, ensuite, l'utilisateur peut examiner la demande d'autorisation et compléter l'autorisation utilisateur via un autre appareil avec accès à un navigateur et des capacités d'entrée, tel qu'un smartphone ou un ordinateur personnel.
De plus, le flux de dispositif est souvent utilisé pour les outils en ligne de commande (comme ceux fournis par Stripe, Github, Cloudflare), car les outils en ligne de commande sont souvent exécutés sur des systèmes d'exploitation sans interface graphique.
Flux d'interaction utilisateur lors de l'utilisation du flux de dispositif
Lorsqu'un utilisateur utilise le flux de dispositif pour l'authentification, il inclut principalement les étapes suivantes:
- Le client de l'appareil demande une autorisation au serveur d'authentification avec un identifiant client (généralement l'ID client sur la plateforme du serveur d'authentification).
- Le serveur d'authentification répond au client de l'appareil avec un code de dispositif, un code utilisateur et un URI de vérification.
- Le client de l'appareil affiche l'URI de vérification et le code utilisateur à l'utilisateur sous forme de texte (ou d'un code QR, etc.), en instruisant l'utilisateur de visiter l'URI et d'entrer le code.
- En même temps que l'étape 3, le client de l'appareil commence le polling pour des jetons d'accès avec le code de l'appareil et l'identifiant client du serveur d'authentification et attend que l'utilisateur examine la demande d'autorisation et complète l'autorisation utilisateur.
- L'utilisateur visite l'URI de vérification hébergé par le serveur d'authentification, via un navigateur sur un autre appareil, et entre le code utilisateur.
- Le serveur d'authentification redirige l'utilisateur vers la page de connexion et demande à l'utilisateur de compléter la connexion.
- L'utilisateur a complété le flux de connexion et est connecté avec succès.
- Le serveur d'authentification redirige l'utilisateur vers la page de succès de la connexion et demande à l'utilisateur de fermer le navigateur.
- En même temps que l'étape 8, le serveur d'authentification retourne les jetons d'accès au client de l'appareil, puisque le client a été en polling depuis l'étape 4.
Après ces processus, le client de l'appareil pourra obtenir le jeton d'accès pour des services ultérieurs!
Résumé
Comme vous l'avez observé, le flux de dispositif OAuth 2.0 fournit une méthode de connexion conviviale pour les appareils dépourvus de capacités d'entrée faciles ou d'un navigateur. Cela est crucial pour des appareils tels que les télévisions intelligentes, les appareils IoT et les outils en ligne de commande qui fonctionnent sur un appareil dépourvu d'interfaces graphiques.
Des nouvelles excitantes vous attendent car Logto est en cours de support de la fonctionnalité de flux de dispositif. Restez à l'écoute et nous vous tiendrons informé des dernières mises à jour.