Comment lier et gérer des hubs IoT

Azure IoT Hub Device Provisioning Service (DPS) peut approvisionner des appareils sur un ou plusieurs hubs IoT. Avant que DPS puisse approvisionner des appareils dans un hub IoT, il doit pouvoir écrire sur le registre des appareils du hub IoT. Cet article fournit des instructions sur la façon de lier des hubs IoT et de les gérer dans votre instance DPS. Une fois lié, un hub IoT peut être utilisé dans une stratégie d’allocation. Les stratégies d’allocation déterminent la façon dont les appareils sont affectés aux hubs IoT par DPS.

Paramètres liés du hub IoT

Le service Device Provisioning peut uniquement provisionner des appareils sur des hubs IoT auxquels il est lié. La liaison d’un hub IoT à une instance DPS donne à l’instance DPS les autorisations en lecture/écriture sur le registre des appareils du hub IoT. Avec ces autorisations, DPS peut inscrire un ID d’appareil et définir la configuration initiale dans le jumeau d’appareil. Les hubs IoT liés peuvent se trouver dans n’importe quelle région Azure. Vous pouvez lier des hubs d’autres abonnements à votre instance DPS.

Une fois qu’un hub IoT est lié à DPS, il est éligible pour participer à l’allocation. Sa participation à l’allocation (le cas échéant) dépend des paramètres de l’inscription via laquelle un appareil est approvisionné et des paramètres sur le hub IoT lié lui-même.

Les paramètres suivants contrôlent la façon dont DPS utilise les hubs IoT liés :

  • Chaîne de connexion : définit la chaîne de connexion IoT Hub que DPS utilise pour se connecter au hub IoT lié. La chaîne de connexion est basée sur l’une des stratégies d’accès partagé du hub IoT. DPS a besoin des autorisations suivantes sur le hub IoT : RegistryWrite et ServiceConnect. La chaîne de connexion doit correspondre à une stratégie d’accès partagé dotée de ces autorisations. Pour en savoir plus sur les stratégies d’accès partagé IoT Hub, consultez Contrôle d’accès et autorisations IoT Hub.

  • Type d’authentification : Contrôle la manière dont le DPS s’authentifie au hub IoT lié. Les valeurs prises en charge sont KeyBased (chaîne de connexion), SystemAssigned (identité managée assignée par le système) et UserAssigned (identité managée attribuée par l’utilisateur). Voir Lier un hub IoT en utilisant une identité managée.

  • Type de nom d’hôte : Définit quel point de terminaison IoT Hub DPS utilise lors du provisionnement des appareils. Utilisez classic pour le point de terminaison standard ou device pour le point de terminaison de l’appareil prenant en charge TLS 1.3. Voir Utiliser les terminaux TLS 1.3 pour les hubs liés.

  • Pondération de l’allocation : détermine la probabilité qu’un hub IoT soit sélectionné lorsque DPS hache l’affectation d’appareil sur un ensemble de hubs IoT. La valeur peut être comprise entre 1 et 1000. La valeur par défaut est 1 (ou null). Des valeurs plus élevées augmentent la probabilité de sélection du hub IoT.

  • Appliquer une stratégie d’allocation : définit si le hub IoT participe à la stratégie d’allocation. La valeur par défaut de ce paramètre est Oui (true). Si vous choisissez Non (false), les appareils ne sont pas attribués au hub IoT. Le hub IoT peut toujours être sélectionné lors d’une inscription, mais il ne participe pas à l’allocation. Vous pouvez utiliser ce paramètre pour empêcher temporairement ou définitivement un hub IoT de participer à l’allocation ; par exemple, s’il approche du nombre autorisé d’appareils.

Pour en savoir plus sur les stratégies d’allocation DPS et la façon dont les hubs IoT liés y participent, consultez Gérer les stratégies d’allocation.

Limites

Ajouter un hub IoT lié

Vous pouvez ajouter des hubs IoT qui se trouvent à l’intérieur ou à l’extérieur de votre abonnement. Lorsque vous liez un hub IoT, il peut être disponible ou non pour les allocations dans les inscriptions existantes :

  • Pour les inscriptions qui ne définissent pas explicitement les hubs IoT auxquels appliquer la stratégie d’allocation, un hub IoT nouvellement lié commence immédiatement à participer à l’allocation.

  • Pour les inscriptions qui définissent explicitement les hubs IoT auxquels appliquer la stratégie d’allocation, vous devez ajouter manuellement ou par programmation le nouveau hub IoT aux paramètres d’inscription pour qu’il participe à l’allocation.

Dans le Portail Azure, vous pouvez lier un hub IoT à partir du menu de gauche de votre instance DPS ou de l’inscription lors de la création ou de la mise à jour d’une inscription. Dans les deux cas, le hub IoT est limité à l’instance DPS (pas seulement l’inscription).

Pour lier un hub IoT à votre instance DPS dans le Portail Azure :

  1. Dans le menu de gauche de votre instance DPS, sélectionnez Hubs IoT liés.

  2. En haut de la page, sélectionnez + Ajouter.

  3. Dans la page Ajouter un lien à IoT Hub, sélectionnez l’abonnement qui contient le hub IoT, puis choisissez le nom du hub IoT dans la liste IoT Hub.

  4. Après avoir sélectionné le hub IoT, choisissez une stratégie d’accès que DPS utilisera pour se connecter au hub IoT. La liste Stratégie d’accès affiche toutes les stratégies d’accès partagé définies sur le hub IoT sélectionné qui ont à la fois des autorisations RegistryWrite et ServiceConnect définies. La valeur par défaut est la stratégie iothubowner. Cliquez sur la stratégie que vous souhaitez utiliser.

  5. Cliquez sur Enregistrer.

Remarque

Dans le Portail Azure, vous ne pouvez pas définir les paramètres Pondération d’allocation et Appliquer la stratégie d’allocation lorsque vous ajoutez un hub IoT lié. Au lieu de cela, mettez à jour ces paramètres une fois que le hub IoT est lié.

DPS prend également en charge la liaison de hubs IoT à l’aide de l’API REST Créer ou mettre à jour des ressources DPS, de modèles Resource Manager et de SDK de gestion de DPS.

Au lieu d’une chaîne de connexion de clé d’accès partagée, vous pouvez lier un hub IoT à DPS en utilisant une identité managée. DPS prend en charge les identités gérées assignées par le système et par l’utilisateur.

Prerequisites

  • Vous devez activer l’identité gérée sur votre instance DPS avant de lier.
  • L’identité gérée doit avoir le rôle IoT Hub Data Contributor (ou un rôle personnalisé avec les autorisations RegistryWrite et ServiceConnect) sur le hub IoT cible.

Pour attribuer une identité assignée par le système à votre instance DPS :

az iot dps identity assign --name <dps-name> --resource-group <resource-group> --system

Pour attribuer une identité attribuée par l’utilisateur :

az identity create --name <identity-name> --resource-group <resource-group>
UAMI_ID=$(az identity show --name <identity-name> --resource-group <resource-group> --query id --output tsv)
az iot dps identity assign --name <dps-name> --resource-group <resource-group> --user $UAMI_ID
az iot dps linked-hub create \
  --dps-name <dps-name> \
  --resource-group <resource-group> \
  --hub-name <hub-name> \
  --authentication-type SystemAssigned
az iot dps linked-hub create \
  --dps-name <dps-name> \
  --resource-group <resource-group> \
  --hub-name <hub-name> \
  --authentication-type UserAssigned \
  --user-assigned-identity <identity-resource-id>

Remarque

L’option --hostname-type service n’est pas prise en charge pour les opérations de hub lié de DPS.

Utilisez les points de terminaison TLS 1.3 pour les hubs liés (aperçu)

Lorsque vous liez un hub IoT à DPS, vous pouvez choisir quel point de terminaison DPS utilise lors du provisionnement des appareils. Par défaut, les nouveaux liens utilisent le point d’extrémité de l’appareil compatible TLS 1.3.

Type de nom d’hôte Point de terminaison utilisé par le DPS
classic <hub>.azure-devices.net
device (par défaut pour les nouveaux liens) <hub>.device.azure-devices.net

Pour spécifier le type de terminaison lors de la liaison :

# Link using the TLS 1.3 device endpoint (default)
az iot dps linked-hub create \
  --dps-name <dps-name> \
  --resource-group <resource-group> \
  --hub-name <hub-name> \
  --hostname-type device

# Link using the classic endpoint
az iot dps linked-hub create \
  --dps-name <dps-name> \
  --resource-group <resource-group> \
  --hub-name <hub-name> \
  --hostname-type classic

Migrer un hub lié vers le terminau TLS 1.3

La az iot dps linked-hub update commande ne permet pas de modifier --hostname-type un lien existant ; elle est rejetée comme un argument non reconnu. Pour déplacer un hub lié vers un autre point de terminaison, créez un nouveau lien avec le --hostname-type souhaité, puis supprimez l’ancien lien par son nom d’hôte complet.

# Create a new link that uses the TLS 1.3 device endpoint
az iot dps linked-hub create \
  --dps-name <dps-name> \
  --resource-group <resource-group> \
  --hub-name <hub-name> \
  --hostname-type device

# Delete the old link by its full hostname (for example, the classic endpoint)
az iot dps linked-hub delete \
  --dps-name <dps-name> \
  --resource-group <resource-group> \
  --linked-hub <hub-name>.azure-devices.net

Important

Si une politique d’allocation répartit les appareils sur plusieurs hubs liés utilisant différents types de points de terminaison, assurez-vous que tous les appareils prennent en charge les terminaux auxquels ils pourraient être assignés. Les appareils configurés pour un point de terminaison TLS 1.3 doivent prendre en charge le SNI et les suites de chiffrement requises. Pour plus d’informations, consultez Prise en charge de TLS 1.3.

Mettre à jour un hub IoT lié

Vous pouvez mettre à jour les paramètres d’un hub IoT lié pour modifier son poids d’allocation, déterminer s’il peut y avoir des stratégies d’allocation appliquées et changer la chaîne de connexion utilisée par DPS pour s’y connecter. Lorsque vous mettez à jour les paramètres d’un hub IoT, les modifications prennent effet immédiatement, que le hub IoT soit spécifié lors d’une inscription ou utilisé par défaut.

Dans le Portail Azure, vous pouvez mettre à jour les paramètres Pondération de l’allocation et Appliquer la stratégie d’allocation.

Pour mettre à jour les paramètres d’un hub IoT lié à l’aide du Portail Azure :

  1. Dans le menu de gauche de votre instance DPS, sélectionnez Hubs IoT liés, puis le hub IoT dans la liste.

  2. Dans la page Détails du hub IoT lié :

    Capture d’écran montrant la page de détails du hub IoT lié.

    • Utilisez le curseur ou la zone de texte Pondération de l’allocation pour choisir un poids compris entre 1 et 1000. La valeur par défaut est 1.

    • Définissez le commutateur Appliquer la stratégie d’allocation pour spécifier si le hub IoT lié doit être inclus dans l’allocation.

  3. Enregistrez vos paramètres.

Remarque

Vous ne pouvez pas mettre à jour la chaîne de connexion que DPS utilise pour se connecter au hub IoT à partir du Portail Azure. Au lieu de cela, utilisez Azure CLI pour mettre à jour la chaîne de connexion ou supprimez le hub IoT lié de votre instance DPS et liez-le à nouveau. Pour découvrir plus d’informations, consultez la section Mettre à jour les clés pour les hubs IoT liés.

DPS prend également en charge la mise à jour de hubs IoT liés à l’aide de l’API REST Créer ou mettre à jour la ressource DPS, de modèles Resource Manager et de SDK de gestion DPS.

Supprimer un hub IoT lié

Lorsque vous supprimez un hub IoT lié de votre instance DPS, il ne sera plus disponible pour les futures inscriptions. Toutefois, il peut ou non être supprimé des allocations dans les inscriptions existantes :

  • Pour les inscriptions qui ne définissent pas explicitement les hubs IoT auxquels appliquer la stratégie d’allocation, un hub IoT lié supprimé n’est plus disponible pour l’allocation.

  • Pour les inscriptions qui définissent explicitement les hubs IoT auxquels appliquer la stratégie d’allocation, vous devez supprimer manuellement ou par programmation le hub IoT des paramètres d’inscription pour qu’il soit supprimé de la participation à l’allocation. Si vous ne le faites pas, il est possible qu’une erreur se produise lorsqu’un appareil tente de s’approvisionner via l’inscription.

Pour supprimer un hub IoT lié de votre instance DPS dans le Portail Azure :

  1. Dans le menu de gauche de votre instance DPS, sélectionnez Hubs IoT liés.

  2. Dans la liste des hubs IoT, activez la case à cocher en regard du ou des hubs IoT que vous souhaitez supprimer. Sélectionnez ensuite Supprimer en haut de la page et confirmez votre choix lorsque vous y êtes invité.

DPS prend également en charge la suppression des hubs IoT liés de l’instance DPS à l’aide de l’API REST Créer ou mettre à jour la ressource DPS, de modèles Resource Manager et de SDK de gestion DPS.

Mettre à jour les clés pour les hubs IoT liés

Il peut s’avérer nécessaire de faire pivoter ou de mettre à jour les clés symétriques d’un hub IoT lié à DPS. Dans ce cas, vous devez également mettre à jour le paramètre de chaîne de connexion dans DPS pour le hub IoT lié.

L’approvisionnement d’un hub IoT échoue pendant l’intervalle entre la mise à jour d’une clé sur le hub IoT et la mise à jour de votre instance DPS avec la nouvelle chaîne de connexion basée sur cette clé. Pour cette raison, nous vous recommandons d’utiliser Azure CLI pour mettre à jour vos clés, car vous pouvez directement mettre à jour la chaîne de connexion sur le hub lié. Avec le Portail Azure, vous devez supprimer le hub IoT de votre instance DPS, puis le lier à nouveau afin de mettre à jour la chaîne de connexion.

Vous ne pouvez pas mettre à jour le paramètre de chaîne de connexion pour un hub IoT lié lors de l’utilisation du Portail Azure. À la place, vous devez supprimer le hub IoT lié de votre instance DPS, puis l’ajouter de nouveau.

Pour mettre à jour des clés symétriques pour un hub IoT lié dans le Portail Azure :

  1. Dans le menu de gauche de votre instance DPS dans le Portail Azure, sélectionnez le hub IoT pour lequel vous souhaitez mettre à jour une ou plusieurs clés.

  2. Sur la page Détails du hub IoT lié, notez les valeurs pour Pondération d’allocation et Appliquer une stratégie d’allocation. Vous aurez besoin de ces valeurs lorsque vous lierez à nouveau le hub IoT à votre instance DPS plus tard. Ensuite, sélectionnez Gérer la ressource pour accéder au hub IoT.

  3. Dans le menu de gauche du hub IoT, sous Paramètres de sécurité, sélectionnez Stratégies d’accès partagé.

  4. Dans Stratégies d’accès partagé, sous Gérer les stratégies d’accès partagé, sélectionnez la stratégie que votre instance DPS utilise pour se connecter au hub IoT lié.

  5. En haut de la page, sélectionnez Régénérer la clé primaire, Régénérer la clé secondaire ou Permuter les clés, puis confirmez votre choix lorsque vous y êtes invité.

  6. Revenez à votre instance DPS.

  7. Suivez les étapes décrites dans la section Supprimer un hub IoT lié pour supprimer le hub IoT de votre instance DPS.

  8. Suivez les étapes décrites dans la section Ajouter un hub IoT lié pour lier à nouveau le hub IoT à votre instance DPS avec la nouvelle chaîne de connexion pour la stratégie.

  9. Si vous devez restaurer la pondération d’allocation et appliquer les paramètres de stratégie d’allocation, suivez les étapes décrites dans la section Mettre à jour un hub IoT lié en utilisant les valeurs que vous avez enregistrées à l’étape 2.

Étapes suivantes