Flux d’autorisation d’appareil

Au lieu d’authentifier directement les utilisateurs, les appareils à saisie limitée qui se connectent à l’internet demandent aux utilisateurs d’aller cliquer sur un lien sur leur ordinateur ou leur téléphone intelligent et d’y autoriser l’appareil. Cela permet d’améliorer l’expérience utilisateur pour les appareils qui ne disposent pas d’un moyen facile de saisir du texte. Pour ce faire, les applications des appareils utilisent le flux d’autorisation d’appareil (ratifié dans OAuth 2.0), dans lequel ils transmettent leur ID client pour lancer le processus d’autorisation et obtenir un jeton.

Fonctionnement

Le flux d’autorisation d’appareil contient deux chemins différents; l’un concernant l’appareil demandant l’autorisation et l’autre concernant un navigateur. Le flux de navigateur, dans lequel un code d’appareil est lié à la session dans le navigateur, se produit parallèlement à une partie du flux d’appareil.

Flux - Autorisation d’appareil - Schéma de la séquence d’Authorization (Autorisation)

Flux d’appareil

  1. L’utilisateur démarre l’application sur son appareil.

  2. L’application de l’appareil demande une autorisation au serveur d’autorisation Auth0 à l’aide de son ID client (point de terminaison /oauth/device/code)

  3. Le serveur d’autorisations Auth0 répond par un device_code, un user_code, un verification_uri, un verification_uri_completeexpires_in (durée de vie en secondes pour device_code et user_code) et l’interval d’interrogation.

  4. L’application de l’appareil demande à l’utilisateur de l’activer à l’aide de son ordinateur ou de son téléphone intelligent. Pour ce faire, l’application peut :

    • Demander à l’utilisateur de visiter le verification_uri et de saisir le user_code après avoir affiché ces valeurs à l’écran.

    • Demander à l’utilisateur d’interagir avec un code QR ou une URL abrégée avec un code utilisateur intégré généré à partir de verification_uri_complete.

    • Naviguer directement vers la page de vérification avec le code utilisateur intégré en utilisant verification_uri_complete, si elle est exécutée nativement sur un appareil basé sur un navigateur.

  5. L’application commence à interroger le serveur d’autorisations Auth0 pour obtenir un jeton d’accès (point de terminaison /oauth/token) en utilisant la période spécifiée par l’intervalle et en comptant à partir de la réception de la réponse à la dernière demande d’interrogation. L’application de l’appareil poursuit son interrogation jusqu’à ce que l’utilisateur ait terminé le parcours du navigateur ou que le code d’utilisateur ait expiré.

  6. Lorsque l’utilisateur termine avec succès le parcours du navigateur, votre serveur d’autorisations Auth0 répond avec un jeton d’accès (et éventuellement un jeton d’actualisation). L’application de l’appareil doit maintenant oublier son device_code car il va expirer.

  7. Votre application d’appareil peut utiliser le jeton d’accès pour appeler une API afin d’accéder aux informations concernant l’utilisateur.

  8. L’API répond avec les données demandées.

Flux de navigateur

  1. L’utilisateur visite le verification_uri sur son ordinateur, saisit le user_code et confirme que l’appareil activé affiche le user_code. Si l’utilisateur visite le verification_uri_complete par un autre mécanisme (par exemple en scannant un code QR), seule la confirmation de l’appareil sera nécessaire.

  2. Votre serveur d’autorisations Auth0 redirige l’utilisateur vers l’invite de connexion et de consentement, si nécessaire.

  3. L’utilisateur s’authentifie en utilisant l’une des options de connexion configurées et peut voir une page de consentement demandant d’autoriser l’application de l’appareil.

  4. Votre application d’appareil est autorisée à accéder à l’API.

Comment la mettre en œuvre?

La façon la plus simple d’implémenter le flux d’autorisation d’appareil est de suivre notre tutoriel : Appel d’API en utilisant le flux d’autorisation d’appareil.

Comment forcer la réautorisation

Pour forcer l’utilisateur à réautoriser un appareil, vous devez révoquer le jeton d’actualisation attribué à l’appareil. Pour en savoir plus, consultez Dissocier les appareils des utilisateurs. Notez que l’appareil ne sera pas obligé de se réautoriser tant que le jeton d’accès actuel n’aura pas expiré et que l’application n’aura pas essayé d’utiliser le jeton d’actualisation révoqué. Pour en savoir plus sur les jetons d’actualisation, lisez Jetons d’actualisation.

En savoir plus