Exemple d'autorisation de dispositif
Introduction
Si vous écrivez une application qui fonctionnera sur un appareil IOT dont la capacité à accepter les données de l'utilisateur est limitée (une télévision intelligente par exemple), vous pouvez utiliser OAuth 2.0 Flux d'autorisation des appareils afin de permettre aux utilisateurs d'enregistrer l'appareil IOT via un autre canal où les données sont plus faciles à saisir (un ordinateur portable ou un appareil mobile par exemple).
Pour vous aider, nous avons fourni un exemple d'application qui utilise la bibliothèque openid-connect afin que vous puissiez voir comment elle fonctionne.
Dans ce guide, vous apprendrez à configurer un exemple d'application à partir du portail des développeurs.
Prérequis
Vous devez avoir enregistré une application à l'aide du portail des développeurs dans votre locataire IBM Verify. Pour plus d'informations, consultez la section Utilisation du portail des développeurs. Lors de l'enregistrement, sélectionnez Device Flow comme type de subvention.
Vous devez avoir installé node.js sur le système où vous exécuterez l'exemple d'application. Télécharger node.js.
Un navigateur doit être installé sur le système où vous exécuterez l'exemple d'application.
Télécharger l'exemple d'application
-
Accédez au portail des développeurs de votre locataire IBM Verify. En général, il s'agit d'une tuile dans le launchpad de l'utilisateur final.
-
Sur la page Mes applications, sélectionnez votre application et cliquez sur le lien Configuration de l'application qui apparaît en haut de la barre latérale des détails.
-
Sélectionnez la tuile node.js.
-
Sélectionnez le bouton Télécharger l'application. Cette opération permet de télécharger un fichier ZIP contenant l'exemple d'application.

Télécharger un exemple d'application
- Extrayez le fichier ZIP à l'endroit où vous exécuterez l'exemple d'application.
- Copiez l'extrait généré à partir de l'interface utilisateur du portail des développeurs.
- Créez un fichier .env à la racine de votre projet, collez l'extrait fourni et enregistrez.
Installer les modules
Dans le répertoire créé lors de l'extraction du fichier ZIP, exécutez la commande suivante pour installer les modules node nécessaires à 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 créé lors de l'extraction du fichier ZIP, exécutez la commande suivante pour lancer l'exemple d'application :
npm run start
> [email protected] start
> node server.js
Server is running on http://localhost:3000
L'application tourne maintenant sur l'adresse IP 127.0.0.1 (localhost) sur le port 3000.
Tester le flux d'autorisation de l'appareil
Pour tester le flux d'autorisation du dispositif, vous avez besoin de deux navigateurs distincts :
- Le premier navigateur, qui représente l'appareil IOT, doit fonctionner sur le même système que celui où vous avez démarré l'exemple d'application.
- Le second navigateur, qui représente un navigateur normal, peut être un navigateur sur un appareil mobile, un navigateur sur un autre ordinateur ou, si vous n'avez pas d'autre option, une seconde fenêtre de navigateur sur votre système de test.
Initier le flux au niveau de l'appareil IOT
En utilisant le navigateur qui représente le dispositif IOT, naviguez vers http://localhost:3000.
La page suivante s'affiche :

Page d'accueil de l'application de l'appareil
Cliquez sur le lien Autoriser pour lancer le flux du type de subvention Autorisation du dispositif.
À ce stade, IBM Verify génère un code d'appareil et un code d'utilisateur. Le code de l'appareil est conservé dans l'application, mais le code de l'utilisateur est affiché à l'utilisateur (directement ou sous la forme d'un code QR) afin qu'il puisse l'utiliser pour autoriser la session de l'appareil.

Device displays user code
Initier l'autorisation de l'utilisateur
Deux choix s'offrent à vous :
Option 1 : Scanner le code QR
Si vous disposez d'un appareil mobile doté d'un appareil photo, vous pouvez scanner le code QR affiché par l'appareil. C'est la manière la plus simple d'initier la partie utilisateur du flux.
L' URL du code QR a le format suivant :
https://yourtenantid.verify.ibm.com/v1.0/endpoint/default/user_authorization?user_code=<code>
Comme vous pouvez le voir, l' URL contient le code utilisateur, de sorte que 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 vous rendre manuellement à l' URL affichée par l'appareil à l'aide d'un navigateur sur un autre système. Dans un système réel, cette URL (statique) pourrait être redirigée à partir d'une URL plus courte pour faciliter la saisie par l'utilisateur.
Sur la page qui s'affiche lorsque vous naviguez vers l' URL, saisissez le code de la page de l'appareil et cliquez sur Soumettre.
S'authentifier auprès de IBM Verify
L'autorisation de l'utilisateur nécessite l'authentification de l'utilisateur. La page de connexion de votre locataire IBM Verify s'affiche dans le navigateur où vous avez initié l'autorisation de l'utilisateur.
Connectez-vous à votre locataire IBM Verify. Vous pouvez utiliser n'importe quelle méthode d'authentification disponible.
L'autorisation de l'utilisateur est terminée
Une fois l'authentification terminée et le consentement de l'utilisateur éventuellement requis, l'identité de l'utilisateur authentifié est associée à la session de l'appareil. Le code utilisateur est l'index de la session de l'appareil qui permet de réaliser cette opération. Le navigateur dans lequel vous venez d'effectuer l'autorisation de l'utilisateur affiche le message suivant pour indiquer le succès de l'opération :

User authorization success message
L'appareil IOT reçoit des jetons
Tout au long des étapes d'autorisation de l'utilisateur, l'appareil IOT a interrogé le point de terminaison du jeton IBM Verify avec des demandes de jeton. Il envoie le code de l'appareil dans ces demandes.
Dès que l'autorisation de l'utilisateur est terminée, la prochaine interrogation du point de terminaison des jetons renvoie les jetons associés à l'utilisateur qui a effectué l'autorisation. Dans la session du navigateur représentant l'appareil IOT, la page suivante s'affiche, indiquant que le processus d'autorisation de l'appareil a été mené à bien :

Flow completion message
L'appareil IOT dispose désormais des 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 entre votre locataire IBM Verify et l'application sont contrôlés par les scopes OpenID Connect demandés et par la configuration du Developer Portal (qui est définie par l'administrateur de votre locataire).
Si vous souhaitez recevoir des informations supplémentaires, essayez d'ajouter des champs d'application supplémentaires au fichier .env de l'exemple d'application :
SCOPE=openid profile email phone
Updated about 1 month ago
