Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Chaque hub IoT a un registre des identités qui stocke des informations sur les appareils et modules autorisés à se connecter à ce hub IoT. Pour qu’un appareil ou module puisse se connecter à un hub IoT, une entrée correspondant à cet appareil ou module doit figurer dans le registre des identités du hub IoT. Un appareil ou module s’authentifie auprès du hub IoT à l’aide des informations d’identification stockées dans le registre des identités.
L’ID d’appareil ou l’ID de module stocké dans le registre des identités respecte la casse.
Le registre des identités est une collection compatible REST de ressources d’identité. Lorsque vous ajoutez une entrée au registre des identités, IoT Hub crée un ensemble de ressources par appareil, comme une file d'attente contenant des messages du cloud vers l'appareil en cours de transmission.
Utilisez le registre des identités pour :
- Provisionner des appareils ou modules qui se connectent à votre hub IoT.
- Contrôler l’accès par appareil/par module aux points de terminaison de votre hub.
Opérations du registre d’identité
Le registre des identités IoT Hub expose les opérations suivantes :
- Créer une identité
- Mettre à jour l'identité
- Récupérer une identité via un ID
- Supprimer une identité
- Répertorier jusqu’à 1 000 identités
- Exporter des identités vers Stockage Blob Azure
- Importation de toutes les identités depuis le stockage Blob Azure
Toutes ces opérations peuvent utiliser la concurrence optimiste, comme spécifié dans RFC 7232.
Un registre des identités IoT Hub ne contient pas de métadonnées d’application.
Important
Utilisez le registre des identités uniquement pour les opérations de gestion et d’approvisionnement. Les opérations à débit élevé au moment de l’exécution ne doivent pas dépendre des opérations effectuées dans le registre des identités. Par exemple, la vérification de l’état de connexion d’un appareil avant d’envoyer une commande n’est pas un modèle pris en charge. Veillez à vérifier les taux de limitation du registre d’identités.
Remarque
L’obtention d’une identité d’appareil ou de module peut prendre quelques secondes après la création. Si des échecs se produisent, vous pouvez réessayer l’opération get des identités d’appareil ou de module.
Désactivation d’appareils
Vous pouvez désactiver les appareils en mettant à jour la propriété status d’une identité dans le registre des identités. Généralement, cette propriété est utilisée dans deux scénarios :
Au cours d’un processus d’orchestration d’approvisionnement. Pour plus d’informations, consultez Provisionnement des appareils.
Si vous pensez qu’un appareil est compromis ou non autorisé pour une raison quelconque.
Important
IoT Hub ne vérifie pas les listes de révocation de certificats lors de l’authentification des appareils avec une authentification basée sur un certificat. Si vous avez un appareil dont vous avez besoin d’empêcher la connexion à IoT Hub en raison d’un certificat potentiellement compromis, vous devez désactiver l’appareil dans le registre des identités.
Cette fonctionnalité n’est pas disponible pour les modules.
Pour plus d’informations, consultez la section Désactiver ou supprimer un appareil de Créer et gérer des identités d’appareil.
Importer et exporter les identités des appareils
La seule façon de récupérer toutes les identités dans le registre d’identités d’un hub IoT est d’utiliser la fonctionnalité d’exportation.
Utilisez des opérations asynchrones sur le point de terminaison du fournisseur de ressources IoT Hub pour importer ou exporter des identités d’appareils en bloc depuis le registre des identités du hub IoT. Les importations et les exportations sont des travaux de longue durée qui utilisent un conteneur d’objets blob fourni par le client.
Pour plus d’informations sur les API d’importation et d’exportation, consultez la ressource IoT Hub. Pour en savoir plus sur l’exécution de travaux d’importation et d’exportation, consultez Importer et exporter des identités d’appareil IoT Hub en bloc.
Les identités d’appareil peuvent également être exportées et importées à partir d’un hub IoT à l’aide de l’API de service via l’API REST ou l’un des kits SDK de service IoT Hub.
Approvisionnement des appareils
Les données d’appareil qu’une solution IoT donnée stocke dépendent des exigences spécifiques de cette solution. Mais une solution doit au minimum stocker les clés d’authentification et les identités des appareils. Le registre des identités IoT Hub peut stocker des valeurs pour chaque appareil, comme les ID, les clés d’authentification et les codes d’état. Une solution peut utiliser d’autres services Azure, comme le stockage Table, le stockage Blob ou Azure Cosmos DB pour stocker d’autres données d’appareil.
Approvisionnement des appareils est le processus d'ajout des données d'appareil initial aux magasins dans votre solution. Pour permettre à un nouvel appareil de se connecter à votre hub, vous ajoutez un ID d’appareil et des clés au registre des identités IoT Hub. Dans le cadre du processus d’approvisionnement, vous devrez peut-être initialiser les données spécifiques à l’appareil dans d’autres magasins de la solution. Vous pouvez également utiliser le service IoT Hub Device Provisioning d'Azure pour activer l'approvisionnement sans contact et JAT vers un ou plusieurs hubs IoT. Pour plus d’informations, consultez la documentation du service Azure IoT Hub Device Provisioning.
Notifications de cycle de vie des appareils et des modules
IoT Hub peut avertir votre solution IoT quand une identité d’appareil est créée ou supprimée, en envoyant des notifications de cycle de vie. Pour ce faire, votre solution IoT doit créer un itinéraire et définir la source de données DeviceLifecycleEvents. Par défaut, aucune notification de cycle de vie n’est envoyée, autrement dit, aucune telle route n’existe. Lorsque vous créez un itinéraire avec une source de données égale à DeviceLifecycleEvents, les événements de cycle de vie sont envoyés pour les identités d’appareil et les identités de module. Le contenu du message varie selon que les événements sont générés pour les identités de module ou les identités d’appareil. Pour plus d’informations sur les propriétés et le corps retournés dans le message de notification, consultez Schémas d’événements autres que les événements de télémétrie Azure IoT Hub.
Les notifications pour la création d’une identité de module diffèrent selon qu’il s’agit d’un module IoT Edge ou d’un autre module. Pour les modules IoT Edge, la notification de création est envoyée uniquement si l’appareil IoT Edge correspondant est en cours d’exécution. Pour tous les autres modules, les notifications de cycle de vie sont envoyées chaque fois que l’identité de module est mise à jour côté IoT Hub.
Propriétés d’identité des appareils
Les identités des appareils sont représentées sous forme de documents JSON avec les propriétés suivantes :
| Propriété | Options | Description |
|---|---|---|
| identifiant de l'appareil | obligatoire, en lecture seule sur les mises à jour | Une chaîne qui respecte la casse (jusqu’à 128 caractères) de caractères alphanumériques 7 bits ASCII plus certains caractères spéciaux : - . % _ * ? ! ( ) , : = @ $ '. Les caractères spéciaux + # ne sont pas pris en charge. |
| generationId | obligatoire, en lecture seule | Une chaîne qui respecte la casse, générée par IoT Hub, d’une longueur maximale de 128 caractères. Cette valeur est utilisée pour distinguer les appareils avec le même deviceId, lorsqu’ils sont supprimés et recréés. |
| etag | obligatoire, en lecture seule | Chaîne représentant un ETag faible pour l’identité de l’appareil, conformément à la norme RFC 7232. |
| Authentification | facultatif | Un objet composite contenant des informations d’authentification et des éléments de sécurité. Pour plus d’informations, consultez AuthenticationMechanism dans la documentation de l’API REST. |
| capacités | facultatif | Ensemble de fonctionnalités de l’appareil. Par exemple, si l’appareil est un appareil de périphérie ou pas. Pour plus d’informations, consultez DeviceCapabilities dans la documentation de l’API REST. |
| deviceScope | facultatif | Portée de l’appareil. Pour les appareils de périphérie, généré automatiquement et immuable. Déconseillé dans les appareils de non-périphérie. Toutefois, sur les appareils enfants (leaf), attribuez à cette propriété la même valeur que la propriété parentScopes (deviceScope du périphérique parent) pour la compatibilité descendante avec les versions précédentes de l’API. Pour plus d’informations, consultez la section Relations parent et enfant de la façon dont un appareil IoT Edge peut être utilisé comme passerelle. |
| parentScopes | facultatif | Portée du parent direct d’un appareil enfant (valeur de la propriété deviceScope de l’appareil parent). Pour les périphériques de périphérie, la valeur est vide si l’appareil n’a pas de parent. Pour les périphériques de non-périphérie, la propriété est absente si l’appareil n’a pas de parent. Pour plus d’informations, consultez la section Relations parent et enfant de la façon dont un appareil IoT Edge peut être utilisé comme passerelle. |
| status | obligatoire | Un indicateur d’accès. Peut être Enabled ou Disabled. Si la valeur est Enabled, l’appareil est autorisé à se connecter. Si la valeur est Disabled, l’appareil ne peut accéder à aucun point de terminaison d’appareil. |
| statusReason | facultatif | Une chaîne de 128 caractères qui stocke le motif de l’état de l’identité de l’appareil. Tous les caractères UTF-8 sont autorisés. |
| statusUpdateTime | en lecture seule | Un indicateur temporel, indiquant la date et l’heure de la dernière mise à jour de l’état. |
| état de connexion | en lecture seule | Un champ indiquant l’état de la connexion : Connected ou Disconnected. Ce champ représente la vue IoT Hub de l’état de connexion de l’appareil. Important : Ce champ doit être utilisé uniquement à des fins de développement/débogage. L’état de la connexion est mis à jour uniquement pour les appareils utilisant les protocoles AMQP ou MQTT. C'est basé sur les pings au niveau du protocole (pings MQTT ou AMQP) et cela peut avoir un délai maximum de seulement 5 minutes. C’est pourquoi de faux positifs peuvent survenir. Par exemple, un appareil peut être signalé comme étant connecté, alors qu’il est déconnecté. |
| connectionStateUpdatedTime | en lecture seule | Un indicateur temporel, indiquant la date et la dernière heure de mise à jour de l’état de la connexion. |
| lastActivityTime | en lecture seule | Un indicateur temporel, indiquant la date et la dernière heure de connexion de l’appareil, de réception d’un message ou d’envoi d’un message. Cette propriété est finalement cohérente, mais peut être retardée pendant 5 à 10 minutes. Pour cette raison, elle ne doit pas être utilisée dans les scénarios de production. |
Remarque
L’état de la connexion peut uniquement représenter la vue IoT Hub de l’état de la connexion. Les mises à jour de cet état peuvent être retardées, en fonction des conditions réseau et des configurations.
Propriétés d’identité des modules
Les identités des modules sont représentées sous forme de documents JSON avec les propriétés suivantes :
| Propriété | Options | Description |
|---|---|---|
| deviceId | obligatoire, en lecture seule sur les mises à jour | Une chaîne qui respecte la casse (jusqu’à 128 caractères) de caractères alphanumériques 7 bits ASCII plus certains caractères spéciaux : - . % _ * ? ! ( ) , : = @ $ '. |
| moduleId | obligatoire, en lecture seule sur les mises à jour | Une chaîne qui respecte la casse (jusqu’à 128 caractères) de caractères alphanumériques 7 bits ASCII plus certains caractères spéciaux : - . % _ * ? ! ( ) , : = @ $ '. Les caractères spéciaux + # ne sont pas pris en charge. |
| generationId | obligatoire, en lecture seule | Une chaîne qui respecte la casse, générée par IoT Hub, d’une longueur maximale de 128 caractères. Cette valeur est utilisée pour distinguer les appareils avec le même deviceId, lorsqu’ils sont supprimés et recréés. |
| etag | obligatoire, en lecture seule | Chaîne représentant un ETag faible pour l’identité de l’appareil, conformément à la norme RFC 7232. |
| Authentification | facultatif | Un objet composite contenant des informations d’authentification et des éléments de sécurité. Pour plus d’informations, consultez AuthenticationMechanism dans la documentation de l’API REST. |
| managedBy | facultatif | Identifie qui gère ce module. Par exemple, cette valeur est IoT Edge si le runtime Edge est propriétaire de ce module. |
| cloudToDeviceMessageCount | en lecture seule | Nombre de messages cloud-à-module actuellement mis en file d’attente à envoyer au module. |
| état de connexion | en lecture seule | Un champ indiquant l’état de la connexion : Connected ou Disconnected. Ce champ représente la vue IoT Hub de l’état de connexion de l’appareil. Important : Ce champ doit être utilisé uniquement à des fins de développement/débogage. L’état de la connexion est mis à jour uniquement pour les appareils utilisant les protocoles AMQP ou MQTT. De plus, cela est basé sur des pings au niveau du protocole (pings MQTT ou AMQP) et peut avoir un délai maximum de 5 minutes. C’est pourquoi de faux positifs peuvent survenir. Par exemple, un appareil peut être signalé comme étant connecté, alors qu’il est déconnecté. |
| connectionStateUpdatedTime | en lecture seule | Un indicateur temporel, indiquant la date et la dernière heure de mise à jour de l’état de la connexion. |
| lastActivityTime | en lecture seule | Un indicateur temporel, indiquant la date et la dernière heure de connexion de l’appareil, de réception d’un message ou d’envoi d’un message. |
Contenu connexe
La rubrique Points de terminaison IoT Hub, qui décrit les différents points de terminaison que chaque hub IoT expose pour les opérations d’exécution et de gestion.
La rubrique SDK Azure IoT Hub, qui répertorie les SDK en différents langages que vous pouvez utiliser pour le développement d’applications d’appareil et de service qui interagissent avec IoT Hub.
Le langage de requête de IoT Hub pour les jumeaux numériques d'appareil et de module, les tâches et le routage des messages décrit le langage de requête que vous pouvez utiliser afin de récupérer des données à partir de IoT Hub concernant vos jumeaux numériques et tâches d'appareil.
Pour savoir comment utiliser le service d’approvisionnement des appareils IoT Hub afin d’activer l’approvisionnement sans contact et juste-à-temps, consultez :