Exemple d'autorisation de dispositif
Introduction
Si vous écrivez une application qui fonctionnera sur un appareil IOT ayant une capacité limitée d'accepter les saisies utilisateur (une télévision intelligente par exemple), vous pourriez vouloir utiliser le flux d'autorisation d'appareil OAuth 2.0 afin de permettre aux utilisateurs d'enregistrer l'appareil IOT via un autre canal où la saisie est plus facile (un ordinateur portable ou un appareil mobile par exemple).
Pour vous aider avec cela, nous avons fourni un exemple d'application qui utilise la bibliothèque openid-connect pour que vous puissiez voir comment cela fonctionne.
Dans ce guide, vous apprendrez comment configurer un exemple d'application depuis le portail développeur.
Prérequis
Vous devez avoir enregistré une application en utilisant le portail développeur dans votre locataire IBM Security Verify. Voir Utilisation du portail développeur pour les détails. Lors de l'enregistrement, choisissez Device Flow comme type d'octroi.
Vous devez avoir node.js installé sur le système où vous exécuterez l'application exemple. Téléchargez node.js.
Vous devez avoir un navigateur installé sur le système où vous exécuterez l'application exemple.
Télécharger l'application exemple
-
Accédez au portail développeur de votre locataire IBM Security Verify. Habituellement, vous le trouverez comme une tuile dans le launchpad d'utilisateur final.
-
Depuis la page Mes applications, sélectionnez votre application puis cliquez sur le lien Configuration de l'application qui apparaît en haut de la barre latérale de détails.
-
Sélectionnez la tuile node.js.
-
Sélectionnez le bouton Télécharger l'application. Cela téléchargera un fichier ZIP contenant l'application exemple.

Télécharger l'application exemple
- Extrayez le fichier ZIP vers l'emplacement où vous exécuterez l'application exemple.
- Copiez l'extrait généré depuis l'interface du portail développeur.
- Créez un fichier .env à la racine de votre projet, collez l'extrait fourni puis enregistrez.
Installer les modules
Dans le répertoire qui a été créé lorsque vous avez extrait le fichier ZIP, exécutez la commande suivante pour installer les modules node requis par l'application exemple :
npm install
added 262 packages, and audited 263 packages in 2s
found 0 vulnerabilities
Démarrer l'application exemple
Dans le répertoire qui a été créé lorsque vous avez extrait le fichier ZIP, exécutez la commande suivante pour démarrer l'application exemple :
npm run start
> [email protected] start
> node server.js
Server is running on http://localhost:3000
L'application s'exécute maintenant sur l'adresse IP 127.0.0.1 (localhost) sur le port 3000.
Tester le flux d'autorisation d'appareil
Pour tester le flux d'autorisation d'appareil, vous avez besoin de deux navigateurs séparés :
- Le premier navigateur, qui représente l'appareil IOT, doit s'exécuter sur le même système où vous avez démarré l'application exemple.
- Le second navigateur, qui représente un navigateur normal, pourrait être un navigateur sur un appareil mobile, un navigateur sur un ordinateur différent ou, si vous n'avez pas d'autre option, une seconde fenêtre de navigateur sur votre système de test.
Initier le flux sur l'appareil IOT
En utilisant le navigateur qui représente l'appareil IOT, naviguez vers http://localhost:3000.
Vous devriez voir la page suivante :

Page d'accueil de l'application appareil
Cliquez sur le lien Autoriser pour initier le flux de type d'octroi d'autorisation d'appareil.
À ce point, IBM Security Verify génère un device_code et un user_code. Le code d'appareil est conservé dans l'application mais le code utilisateur est affiché à l'utilisateur (soit directement soit dans un code QR) pour qu'il puisse l'utiliser pour autoriser la session d'appareil.

L'appareil affiche le code utilisateur
Initier l'autorisation utilisateur
Vous avez maintenant deux choix :
Option 1 : Scanner le code QR
Si vous avez un appareil mobile avec une caméra, vous pouvez scanner le code QR affiché par l'appareil. C'est la façon la plus facile d'initier la partie utilisateur du flux.
L'URL dans le code QR a le format :
https://yourtenantid.verify.ibm.com/v1.0/endpoint/default/user_authorization?user_code=<code>
Comme vous pouvez le voir, l'URL a le code utilisateur intégré dedans donc l'utilisateur n'a pas à le saisir manuellement.
Option 2 : Utiliser l'URL et le code
Si vous ne pouvez pas scanner le code QR, vous pouvez naviguer manuellement vers l'URL affichée par l'appareil en utilisant un navigateur sur un autre système. Dans un système réel, cette URL (statique) pourrait être redirigée depuis une URL plus courte pour faciliter la saisie par l'utilisateur.
Sur la page qui est affichée lorsque vous naviguez vers l'URL, saisissez le code depuis la page d'appareil et cliquez sur Soumettre.
S'authentifier auprès d'IBM Security Verify
L'autorisation utilisateur nécessite que l'utilisateur s'authentifie. La page de connexion de votre locataire IBM Security Verify est affichée dans le navigateur où vous avez initié l'autorisation utilisateur.
Connectez-vous à votre locataire IBM Security Verify. Vous pouvez utiliser toute méthode d'authentification disponible.
L'autorisation utilisateur se termine
Une fois l'authentification terminée, et tout consentement utilisateur requis terminé, l'identité utilisateur authentifiée est associée à la session d'appareil. Le user_code est l'index vers la session d'appareil qui permet que cela se produise. Le navigateur où vous venez d'effectuer l'autorisation utilisateur affiche le message suivant pour indiquer le succès :

Message de succès d'autorisation utilisateur
L'appareil IOT reçoit les jetons
Tout le temps que vous avez passé à compléter les étapes d'autorisation utilisateur, l'appareil IOT a interrogé le point de terminaison de jeton IBM Security Verify avec des requêtes de jeton. Il envoie le device_code dans ces requêtes.
Dès que l'autorisation utilisateur se termine, la prochaine interrogation du point de terminaison de jeton retournera les jetons associés à l'utilisateur qui a effectué l'autorisation. Dans la session de navigateur représentant l'appareil IOT, vous verrez la page suivante indiquant la complétion réussie du flux d'autorisation d'appareil :

Message de complétion de flux
L'appareil IOT a maintenant les jetons dont il a besoin pour identifier l'utilisateur et/ou appeler des API en son nom.
Attributs disponibles
Les attributs qui sont partagés depuis votre locataire IBM Security Verify vers l'application sont contrôlés par les scopes OpenID Connect demandés et par la configuration du portail développeur (qui est définie par votre administrateur de locataire).
Si vous voulez recevoir des informations supplémentaires, essayez d'ajouter des scopes supplémentaires au fichier .env
de l'application exemple :
SCOPE=openid profile email phone
Updated 21 days ago