Qu’est-ce que le service Azure IoT Hub Device Provisioning ?

Le service IoT Hub Device Provisioning (DPS) est un service d’assistance pour IoT Hub qui autorise un provisionnement sans contact, juste-à-temps sur le hub IoT approprié et sans aucune intervention humaine. DPS permet de provisionner plusieurs millions d’appareils de manière sécurisée et scalable. La plupart des étapes manuelles que nécessite généralement le provisionnement sont automatisées avec DPS pour réduire le temps de déploiement des appareils IoT et diminuer le risque d’erreur manuelle.

Fonctionnement du service de provisionnement des appareils

Le diagramme suivant décrit ce qui se passe dans les coulisses pour approvisionner un appareil avec DPS.

Diagram that shows how the device, Device Provisioning Service, and IoT Hub work together.

Avant le début du flux de provisionnement des appareils, il y a deux étapes de préparation à faire manuellement :

  • Côté appareil, le fabricant de l’appareil prépare l’appareil en vue de son provisionnement en le préconfigurant avec ses informations d’authentification et avec l’ID et le point de terminaison du service DPS qui lui ont été attribués.
  • Côté cloud, le fabricant de l’appareil ou vous-même préparez l’instance du service de provisionnement des appareils en ajoutant les inscriptions individuelles et les groupes d’inscription qui identifient les appareils valides et définissent le mode de provisionnement des appareils.

Une fois l’appareil et le cloud configurés pour le provisionnement, les étapes suivantes débutent automatiquement au premier démarrage de l’appareil :

  1. L’appareil démarre pour la première fois, puis se connecte au point d’accès DPS et présente ses informations d’authentification.
  2. L’instance DPS vérifie l’identité de l’appareil par rapport à sa liste d’inscriptions. Une fois l’identité de l’appareil vérifiée, DPS attribue l’appareil à un hub IoT et l’inscrit auprès du hub.
  3. L’instance DPS reçoit l’ID de l’appareil et les informations d’inscription associées du hub attribué, puis renvoie toutes ces informations à l’appareil.
  4. L’appareil utilise ses informations d’inscription pour se connecter directement au hub IoT qui lui est attribué et s’y authentifier.
  5. L’appareil et le hub IoT commencent à communiquer directement. L’instance DPS a seulement un rôle d’intermédiaire, sauf si l’appareil doit être reprovisionné.

Quand utiliser le service Device Provisioning

Nombreux sont les scénarios de provisionnement dans lesquels DPS s’avère être un excellent choix pour connecter et configurer des appareils sur IoT Hub, notamment :

  • Approvisionnement sans contact sur une solution IoT unique sans coder en dur en usine les informations de connexion IoT Hub (configuration initiale)
  • Équilibrage de la charge d’appareils sur plusieurs hubs
  • Connexion d’appareils à la solution IoT de leur propriétaire en fonction des données de transaction de vente (architecture multilocataire)
  • Connexion d’appareils à une solution IoT particulière en fonction des cas d’usage (isolement de la solution)
  • Connexion d’un appareil au hub IoT avec la latence la plus faible (géopartitionnement)
  • Reprovisionnement basé sur un changement au niveau de l’appareil
  • Restaurer les clés utilisées par l’appareil pour se connecter à IoT Hub (en cas de non-utilisation de certificats X.509 pour la connexion)

L’approvisionnement d’appareils IoT Edge imbriqués (hiérarchies parent/enfant) n’est pas actuellement pris en charge par DPS.

Processus de mise en service

Il existe deux étapes à l’avance d’un provisionnement des appareils avec DPS :

  • L’étape de fabrication qui permet de créer et préparer l’appareil en usine.
  • L’étape de configuration du cloud qui configure le service Device Provisioning pour l’approvisionnement automatique.

Ces deux étapes peuvent être intégrées dans les processus de fabrication et de déploiement existants. DPS simplifie même certains processus de déploiement qui nécessitent des tâches manuelles pour obtenir les informations de connexion sur l’appareil.

Étape de fabrication

Cette étape englobe toutes les tâches de la ligne de fabrication. Les rôles impliqués dans cette étape sont notamment le concepteur de silicium, le fabricant de silicium, l’intégrateur et/ou le fabricant final de l’appareil. Cette étape concerne la création du matériel.

Le DPS n’introduit pas une nouvelle étape dans le processus de fabrication; il se rattache plutôt à l’étape existante qui installe le logiciel initial et (idéalement) le module de sécurité matériel (HSM) sur l’appareil. Au lieu de créer un identifiant d’appareil à cette étape, l’appareil est programmé avec les informations du service d’approvisionnement, ce qui lui permet d’appeler le service d’approvisionnement pour obtenir ses informations de connexion et l’affectation de la solution IdO lorsqu’il est allumé.

Dans cette étape également, le fabricant fournit à l’opérateur ou au système de déploiement de l’appareil les informations de clé d’identification. Pour fournir ces informations, vous pouvez simplement confirmer que tous les appareils ont un certificat X.509 généré par une autorité de certification fournie par l’opérateur ou le responsable de déploiement de l’appareil, ou bien, ce qui est plus compliqué, extraire la partie publique d’une paire de clés de type EK TPM sur chaque appareil TPM. De nombreux fabricants de silicium offrent ces services.

Étape de configuration du cloud

Cette étape configure le cloud pour l’approvisionnement automatique approprié. Généralement, deux types d’utilisateurs sont impliqués dans l’étape de configuration du cloud : une personne qui sait comment les appareils doivent être configurés initialement (un opérateur d’appareil) et une autre personne qui sait comment les appareils doivent être répartis dans les hubs IoT (un opérateur de solution).

Il y a une configuration initiale unique du service d’approvisionnement, qui est généralement prise en charge par l’opérateur de la solution. Une fois le service d’approvisionnement configuré, il n’a pas besoin d’être modifié, sauf si le cas d’utilisation change.

Une fois que le service est configuré pour la configuration automatique, il doit être préparé pour inscrire les appareils. Cette étape est réalisée par l’opérateur de l’appareil, qui connaît la configuration souhaitée des appareils et s’assure que le service d’approvisionnement peut correctement attester de l’identité d’un appareil. L’opérateur d’appareil récupère les informations de la clé d’identification auprès du fabricant et les ajoute à la liste d’inscriptions. La liste d’inscriptions peut être mise à jour par la suite, à mesure que de nouvelles entrées sont ajoutées ou que des entrées existantes sont mises à jour avec les dernières informations des appareils.

Enregistrement et approvisionnement

L’approvisionnement désigne différentes choses, selon le secteur dans lequel est utilisé le terme. Dans le contexte de l’approvisionnement d’appareils IoT dans une solution cloud, il désigne un processus en deux parties :

  • La première partie établit la connexion initiale entre l’appareil et la solution IoT en enregistrant l’appareil.
  • La deuxième partie applique la configuration appropriée à l’appareil selon les exigences spécifiques de la solution dans laquelle il est enregistré.

Une fois ces deux étapes terminées, on peut dire que l’appareil est entièrement provisionné. Certains services cloud fournissent uniquement la première étape du processus d’approvisionnement (l’enregistrement des appareils au point de terminaison de la solution IoT) et ne fournissent pas la configuration initiale. DPS automatise les deux étapes pour offrir une expérience de provisionnement sans interruption pour l’appareil.

Fonctionnalités du service Device Provisioning

DPS propose de nombreuses fonctionnalités qui le rendent idéal pour le provisionnement d’appareils.

  • Prise en charge de l’attestation sécurisée pour les identités X.509 et TPM.
  • Liste d’inscriptions contenant l’enregistrement complet des appareils/groupes d’appareils susceptibles d’être enregistrés à un moment donné. La liste d’inscriptions contient des informations sur la configuration souhaitée de l’appareil après son enregistrement et peut être mise à jour à tout moment.
  • Plusieurs stratégies d’allocation sont possibles pour contrôler la façon dont DPS attribue les appareils aux hubs IoT en fonction de vos scénarios : latence la plus faible, distribution uniformément pondérée (par défaut) et configuration statique. La latence est déterminée selon la même méthode que celle utilisée par Traffic Manager. L’allocation personnalisée, qui vous permet d’implémenter vos propres stratégies d’allocation via des webhooks hébergés dans Azure Functions, est également prise en charge.
  • Monitoring et journalisation des diagnostics pour vérifier que tout fonctionne correctement.
  • La prise en charge multihub permet à DPM d’affecter des appareils à plusieurs hubs IoT. DPS peut communiquer avec les hubs de plusieurs abonnements Azure.
  • La prise en charge inter-régions permet à DPS d’affecter des appareils à des hubs IoT d’autres régions.
  • Le chiffrement des données au repos est conforme à la norme FIPS 140-2 et permet de chiffrer et déchiffrer les données dans DPM de façon transparente avec le chiffrement AES 256 bits, un des chiffrements par blocs les plus puissants actuellement disponibles.

Pour plus d’informations sur les concepts et fonctionnalités utilisés dans le provisionnement des appareils, consultez l’article Terminologie DPS et les autres articles conceptuels de la même section.

Prise en charge multiplateforme

Comme tous les services Azure IoT, DPS fonctionne sur plusieurs plateformes et avec divers systèmes d’exploitation. Azure propose des kits SDK open source dans différents langages, ce qui facilite la connexion des appareils et la gestion du service. DPS prend en charge les protocoles suivants pour la connexion des appareils :

  • HTTPS
  • AMQP
  • AMQP sur WebSockets
  • MQTT
  • MQTT sur WebSockets

DPS prend uniquement en charge les connexions HTTPS pour les opérations de service.

Régions

DPS est disponible dans de nombreuses régions. La liste des régions prises en charge pour tous les services est disponible dans Régions Azure. Pour connaître la disponibilité du service Device Provisioning, accédez à la page Statut Azure.

Pour la résilience et la fiabilité, nous vous recommandons de déployer sur l’une des régions qui prennent en charge les Zones de disponibilité.

Considération relative à la résidence des données

Le service Device Provisioning (provisionnement des appareils) stocke les données client. Par défaut, les données client sont répliquées dans une région secondaire pour prendre en charge les scénarios de récupération d’urgence. Pour les déploiements en Asie Sud-Est et au Brésil Sud, les clients peuvent choisir de conserver leurs données uniquement dans cette région en désactivant la récupération d’urgence. Pour plus d’informations, consultez la réplication interrégion dans Azure.

DPS utilise le même point de terminaison de provisionnement des appareils pour toutes les instances de service de provisionnement et effectue l’équilibrage de charge du trafic vers le point de terminaison de service disponible le plus proche. Ainsi, les secrets d’authentification peuvent être transférés temporairement en dehors de la région où l’instance DPS a été créée initialement. Toutefois, une fois que l’appareil est connecté, ses données sont transmises directement à la région d’origine de l’instance DPS. Pour vous assurer que vos données ne quittent pas la région d'origine ou la région secondaire, utilisez un point de terminaison privé. Pour savoir comment configurer des points de terminaison privés, consultez le support DPS pour les réseaux virtuels.

Quotas et limites

Chaque abonnement Azure a des limites de quota par défaut qui peuvent impacter l’étendue de votre solution IoT. La limite actuelle est de 10 instances de service de provisionnement des appareils par abonnement.

Pour plus d’informations sur les limites de quota, consultez Limites du service d’abonnement Azure.

Le tableau suivant répertorie les limites qui s’appliquent aux ressources du Service Azure IoT Hub Device Provisioning.

Ressource Limite Ajustable ?
Nombre maximal de services d’approvisionnement d’appareil par abonnement Azure 10 Non
Nombre maximal d’inscriptions 1 000 000 Non
Nombre maximal d’inscriptions individuelles 1 000 000 Non
Nombre maximal de groupes d’inscription (certificat X.509) 100 Non
Nombre maximal de groupes d’inscription (clé symétrique) 100 Non
Nombre maximal d’autorités de certification 25 Non
Nombre maximal de hubs IoT liés 50 Non
Taille maximale du message 96 Ko Non

Conseil

Si la limite inconditionnelle sur les groupes d’inscription de clé symétrique est un problème, il est recommandé d’utiliser des inscriptions individuelles comme solution de contournement.

Le service de provisionnement des appareils a les limites de débit suivantes.

Tarif Valeur par unité Ajustable ?
Operations 1 000/min/service Non
Inscriptions d’appareil 1 000/min/service Non
Opération d’interrogation des appareils 5/10 s/appareil Non

Opérations de service facturables et tarifs

Chaque appel d’API sur DPS est facturable comme une seule opération. Cela comprend toutes les API de service et l’API d’inscription d’appareil.

Les tableaux ci-dessous indiquent l’état facturable actuel pour chaque opération de l’API du service DPS. Pour plus d’informations sur la tarification de DPS, sélectionnez le tableau des tarifs en haut de la page Tarification Azure IoT Hub. Sélectionnez ensuite l’onglet Service IoT Hub Device Provisioning, ainsi que la devise et la région de votre service.

API Opération Facturable ?
API de l'appareil Recherche de l’état de l’inscription de l’appareil No
API de l'appareil Recherche de l’état de l’opération No
API de l'appareil Inscrire un appareil Yes
API du service DPS (état de l’inscription) Supprimer Yes
API du service DPS (état de l’inscription) Get Yes
API du service DPS (état de l’inscription) Requête Yes
API du service DPS (groupe d’inscription) Créer ou mettre à jour Yes
API du service DPS (groupe d’inscription) Supprimer Yes
API du service DPS (groupe d’inscription) Get Yes
API du service DPS (groupe d’inscription) Obtenir le mécanisme d’attestation Yes
API du service DPS (groupe d’inscription) Requête Yes
API du service DPS (groupe d’inscription) Exécuter une opération en bloc Yes
API du service DPS (inscription individuelle) Créer ou mettre à jour Yes
API du service DPS (inscription individuelle) Supprimer Yes
API du service DPS (inscription individuelle) Get Yes
API du service DPS (inscription individuelle) Obtenir le mécanisme d’attestation Yes
API du service DPS (inscription individuelle) Requête Yes
API du service DPS (inscription individuelle) Exécuter une opération en bloc Yes
API du certificat DPS Créer ou mettre à jour No
API du certificat DPS Supprimer No
API du certificat DPS Générer un code de vérification No
API du certificat DPS Get No
API du certificat DPS Liste No
API du certificat DPS Vérifier le certificat No
API de ressource d’IoT DPS Vérifier la disponibilité du nom du service de provisionnement No
API de ressource d’IoT DPS Créer ou mettre à jour No
API de ressource d’IoT DPS Supprimer No
API de ressource d’IoT DPS Get No
API de ressource d’IoT DPS Obtenir le résultat d’une opération No
API de ressource d’IoT DPS Filtrer par groupe de ressources No
API de ressource d’IoT DPS Lister par abonnement No
API de ressource d’IoT DPS Lister par clés No
API de ressource d’IoT DPS Lister les clés pour le nom de clé No
API de ressource d’IoT DPS Lister les références SKU valides No
API de ressource d’IoT DPS Mettre à jour No

DPS automatise le provisionnement d’appareils avec Azure IoT Hub. Découvrez plus d’informations sur IoT Hub.

Notes

Le provisionnement d’appareils de périphérie imbriquée (hiérarchies parent/enfant) n’est pas actuellement prise en charge par DPS.

Les applications IoT Central utilisent une instance DPS interne pour gérer les connexions des appareils. Pour en savoir plus, voir Comment les appareils se connectent à IoT Central.

Étapes suivantes

Vous avez maintenant une vue d’ensemble de l’approvisionnement des appareils IoT dans Azure. L’étape suivante consiste à tester un scénario IoT de bout en bout.

Configurer le service IoT Hub Device Provisioning avec le portail Azure

Créer et provisionner un appareil simulé