Démarrage rapide : Publier et s’abonner à des messages MQTT sur l’espace de noms Event Grid avec Portail Azure

Dans cet article, vous utilisez le portail Azure pour effectuer les tâches suivantes :

  1. Créer un espace de noms Event Grid et activer MQTT broker
  2. Créer des sous-ressources telles que des clients, des groupes de clients et des espaces de rubrique
  3. Accorder aux clients l’accès à la publication et à l’abonnement aux espaces de rubrique
  4. Publier et recevoir des messages entre clients

Prérequis

  • Créez un compte Azure gratuit si vous n’avez pas d’abonnement Azure.
  • Lisez l’article Vue d’ensemble d’Event Grid avant de commencer ce tutoriel si vous débutez avec Azure Event Grid.
  • Assurez-vous que le port 8883 est ouvert dans votre pare-feu. L’exemple dans ce tutoriel utilise le protocole MQTT, lequel communique sur le port 8883. Ce port peut être bloqué dans certains environnements réseau professionnels et scolaires.
  • Vous avez besoin d’un certificat client X.509 pour générer l’empreinte numérique et authentifier la connexion cliente.

Générer un exemple de certificat client et d’empreinte numérique

Si vous n’avez pas encore de certificat, vous pouvez créer un échantillon de certificat à l’aide de Step CLI. Envisagez d’installer manuellement pour Windows.

Une fois l’installation réussie lors de cette étape, vous devez ouvrir une invite de commandes dans le dossier de votre profil utilisateur (Win+R type %USERPROFILE%).

  1. Pour générer des certificats racine et intermédiaires, exécutez la commande suivante. N’oubliez pas le mot de passe à utiliser à l’étape suivante.

    step ca init --deployment-type standalone --name MqttAppSamplesCA --dns localhost --address 127.0.0.1:443 --provisioner MqttAppSamplesCAProvisioner
    
  2. Utilisez les fichiers d’autorité de certification générés pour créer un certificat pour le premier client. Assurez-vous d’utiliser le chemin d’accès approprié pour les fichiers de certificat et de secrets dans la commande.

    step certificate create client1-authn-ID client1-authn-ID.pem client1-authn-ID.key --ca .step/certs/intermediate_ca.crt --ca-key .step/secrets/intermediate_ca_key --no-password --insecure --not-after 2400h
    
  3. Pour afficher l’empreinte numérique, exécutez la commande Step.

    step certificate fingerprint client1-authn-ID.pem
    
  4. À présent, créez un certificat pour le deuxième client.

    step certificate create client2-authn-ID client2-authn-ID.pem client2-authn-ID.key --ca .step/certs/intermediate_ca.crt --ca-key .step/secrets/intermediate_ca_key --no-password --insecure --not-after 2400h
    
  5. Pour afficher l’empreinte numérique à utiliser avec le deuxième client, exécutez la commande Étape.

    step certificate fingerprint client2-authn-ID.pem
    

Créer un espace de noms

  1. Connectez-vous au portail Azure.

  2. Dans la barre de recherche, tapez Event Grid Namespaces, puis sélectionnez Event Grid Namespaces dans la liste déroulante.

    Screenshot of searching for Event Grid namespace on Azure portal.

  3. Sur la page Event Grid Namespaces, sélectionnez + Créer dans la barre d’outils.

  4. Dans la page Créer un espace de noms, suivez ces étapes :

    1. Sélectionnez votre abonnement Azure.

    2. Sélectionnez un groupe de ressources existant ou sélectionnez Créer, puis entrez un nom pour le groupe de ressources.

    3. Indiquez un nom unique pour l’espace de noms. Le nom de l’espace de noms doit être unique par région, car il représente une entrée DNS. N’utilisez pas le nom indiqué dans l’image. Au lieu de cela, créez votre propre nom : il doit comprendre entre 3 et 50 caractères, et contenir uniquement des valeurs a-z, A-Z, 0-9 et -.

    4. Sélectionnez un emplacement pour l’espace de noms Event Grid. Actuellement, l’espace de noms Event Grid n’est disponible que dans certaines régions.

      Screenshot showing Event Grid namespace create flow basics tab.

  5. Au bas de la page, sélectionnez Examiner et créer.

  6. Sous l’onglet Vérifier + créer de la page Créer un espace de noms, sélectionnez Créer.

    Notes

    Pour simplifier le démarrage rapide, vous utiliserez uniquement la page Informations de base pour créer un espace de noms. Pour obtenir des informations détaillées sur la configuration du réseau, de la sécurité et d'autres paramètres sur d'autres pages de l'assistant, voir Créer un espace de noms.

  7. Une fois le déploiement terminé, sélectionnez Accéder à la ressource pour voir la page Vue d'ensemble de l'espace de noms Event Grid pour votre espace de noms.

  8. Dans la page Vue d’ensemble, vous voyez que MQTT broker est à l’état Désactivé. Pour activer MQTT broker, sélectionnez le lien Désactivé. Il vous redirige vers la page Configuration.

  9. Dans la page Configuration, sélectionnez l’option Activer MQTT broker, puis sélectionnez Appliquer pour appliquer les paramètres.

    Screenshot showing Event Grid namespace configuration page to enable MQTT.

Créer des clients

  1. Dans le menu de gauche, sélectionnez Clients dans la section MQTT broker.

  2. Dans la page Clients, sélectionnez + Client dans la barre d’outils.

    Screenshot of the Clients page with Add button selected.

  3. Dans la page Créer un client, entrez un nom pour le client. Les noms de client doivent être uniques dans un espace de noms.

  4. Le nom d’authentification du client est défini par défaut sur le nom du client. Pour ce didacticiel, remplacez-le par client1-authn-ID. Vous devez inclure ce nom comme Username dans le paquet CONNECT.

  5. Dans ce tutoriel, vous utilisez l’authentification basée sur l’empreinte numérique. Incluez l’empreinte du certificat client dans l’empreinte primaire.

    Screenshot of client 1 configuration.

  6. Sélectionnez Créer dans la barre d’outils pour créer un autre client.

  7. Répétez les étapes ci-dessus pour créer un deuxième client nommé client2. Modifiez le nom d’authentification pour client2-authn-ID et incluez l’empreinte numérique du deuxième certificat client dans l’empreinte primaire.

    Screenshot of client 2 configuration.

    Remarque

    • Pour simplifier le démarrage rapide, vous allez utiliser la correspondance d’empreinte numérique pour l’authentification. Pour obtenir des étapes détaillées sur l’utilisation de la chaîne de certificats de l’autorité de certification X.509 pour l’authentification du client, consultez Authentification client à l’aide de la chaîne de certificats.
    • En outre, nous utilisons le groupe de clients $all par défaut, qui inclut tous les clients de l’espace de noms pour cet exercice. Pour en savoir plus sur la création de groupes de clients personnalisés à l’aide d’attributs client, consultez Groupes de clients.

Créer des espaces de rubrique

  1. Dans le menu de gauche, sélectionnez Espaces de rubrique dans la section MQTT broker.

  2. Dans la page Espaces de rubrique, sélectionnez + Espace de rubrique dans la barre d’outils.

    Screenshot of Topic spaces page with create button selected.

  3. Indiquez un nom pour l’espace de rubrique, dans la page Créer un espace de rubrique.

  4. Sélectionnez + Ajouter un modèle de rubrique.

    Screenshot of Create topic space with the name.

  5. Entrez contosotopics/topic1 pour le modèle de rubrique, puis sélectionnez Créer pour créer l’espace de rubrique.

    Screenshot of topic space configuration.

Configuration du contrôle d’accès à l’aide de liaisons d’autorisation

  1. Dans le menu de gauche, sélectionnez Liaisons d’autorisation dans la section MQTT broker.

  2. Dans la page Liaisons d’autorisation, sélectionnez + Liaison d’autorisation dans la barre d’outils.

    Screenshot that shows the Permission bindings page with the Create button selected.

  3. Configurez la liaison d’autorisation comme suit :

    1. Donnez un nom à la liaison d’autorisation. Par exemple : contosopublisherbinding.

    2. Pour le nom du groupe client, sélectionnez $all.

    3. Pour le nom de l’espace de rubrique, sélectionnez l’espace de rubrique que vous avez créé à l’étape précédente.

    4. Accordez l’autorisation Éditeur au groupe de clients sur l’espace de rubrique.

      Screenshot showing creation of first permission binding.

  4. Sélectionnez Vérifier + créer pour créer la liaison d’autorisation.

  5. Créez une autre liaison d’autorisation (contososubscriberbinding) en sélectionnant + Liaison d’autorisation dans la barre d’outils.

  6. Fournissez un nom et donnez à $all groupe de clients Abonné l’accès à ContosoTopicSpace comme indiqué.

    Screenshot showing creation of second permission binding.

  7. Sélectionnez Vérifier + créer pour créer la liaison d’autorisation.

Connexion des clients à l’espace de noms EG à l’aide de l’application MQTTX

  1. Pour publier/s’abonner aux messages MQTT, vous pouvez utiliser l’un de vos outils favoris. À des fins de démonstration, la publication/l’abonnement s’affiche à l’aide de l’application MQTTX, qui peut être téléchargée à partir de https://mqttx.app/.

    Screenshot showing MQTTX app left rail to add new client.

  2. Configuration de client1

    • Nom comme client1 (cette valeur peut être tout)

    • ID client en tant que client1-session1 (l’ID client dans le paquet CONNECT est utilisé pour identifier l’ID de session pour la connexion cliente)

    • Nom d’utilisateur en tant que client1-authn-ID. Cette valeur doit correspondre à la valeur du nom d’authentification client que vous avez spécifiée lors de la création du client dans le portail Azure.

      Important

      Le nom d’utilisateur doit correspondre au nom d’authentification du client dans les métadonnées du client.

  3. Mettez à jour le nom d’hôte en nom d’hôte MQTT à partir de la page Vue d’ensemble de l’espace de noms.

    Screenshot showing Event Grid namespace overview page, which has MQTT hostname.

  4. Mettre à jour le port à 8883.

  5. Basculez SSL/TLS sur ON.

  6. Basculez SSL Secure sur ON pour garantir la validation du certificat de service.

  7. Sélectionnez Certificat en tant que auto-signé.

  8. Indiquez le chemin d’accès au fichier de certificat client.

  9. Indiquez le chemin d’accès du fichier de clé client.

  10. Les autres paramètres peuvent être conservés avec des valeurs par défaut prédéfinies.

    Screenshot showing client 1 configuration part 1 on MQTTX app.

  11. Sélectionnez Se connecter pour connecter le client répartiteur MQTT.

  12. Répétez les étapes ci-dessus pour connecter le deuxième client client2, avec les informations d’authentification correspondantes, comme indiqué.

    Screenshot showing client 2 configuration part 1 on MQTTX app.

    Screenshot showing client 2 configuration part 2 on MQTTX app.

Publier/s’abonner à l’aide de l’application MQTTX

  1. Après avoir connecté les clients, pour client2, sélectionnez le bouton + Nouvel abonnement.

  2. Ajoutez contosotopics/topic1 en tant que rubrique, puis sélectionnez Confirmer. Vous pouvez conserver la valeur par défaut de tous les autres champs.

    Screenshot showing subscription topic configuration on MQTTX app.

  3. Sélectionnez client1 dans le rail gauche.

  4. Pour client1, en haut de la zone de composition de message, tapez contosotopics/topic1 comme rubrique à publier.

  5. Composez un message. Vous pouvez utiliser n’importe quel format ou JSON comme indiqué.

  6. Sélectionnez le bouton Envoyer.

    Screenshot showing message publishing on the topic in MQTTX app.

  7. Le message doit être affiché comme publié dans le client 1.

    Screenshot showing message published on the topic in MQTTX app.

  8. Passez au client2. Vérifiez que client2 a reçu le message.

    Screenshot showing the message received by the subscribing client on MQTTX app.

Étapes suivantes