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 :
- Créer un espace de noms Event Grid et activer MQTT broker
- Créer des sous-ressources telles que des clients, des groupes de clients et des espaces de rubrique
- Accorder aux clients l’accès à la publication et à l’abonnement aux espaces de rubrique
- 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%).
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
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
Pour afficher l’empreinte numérique, exécutez la commande Step.
step certificate fingerprint client1-authn-ID.pem
À 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
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
Connectez-vous au portail Azure.
Dans la barre de recherche, tapez Event Grid Namespaces, puis sélectionnez Event Grid Namespaces dans la liste déroulante.
Sur la page Event Grid Namespaces, sélectionnez + Créer dans la barre d’outils.
Dans la page Créer un espace de noms, suivez ces étapes :
Sélectionnez votre abonnement Azure.
Sélectionnez un groupe de ressources existant ou sélectionnez Créer, puis entrez un nom pour le groupe de ressources.
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
-
.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.
Au bas de la page, sélectionnez Examiner et créer.
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.
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.
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.
Dans la page Configuration, sélectionnez l’option Activer MQTT broker, puis sélectionnez Appliquer pour appliquer les paramètres.
Créer des clients
Dans le menu de gauche, sélectionnez Clients dans la section MQTT broker.
Dans la page Clients, sélectionnez + Client dans la barre d’outils.
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.
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 commeUsername
dans le paquet CONNECT.Dans ce tutoriel, vous utilisez l’authentification basée sur l’empreinte numérique. Incluez l’empreinte du certificat client dans l’empreinte primaire.
Sélectionnez Créer dans la barre d’outils pour créer un autre client.
Répétez les étapes ci-dessus pour créer un deuxième client nommé
client2
. Modifiez le nom d’authentification pourclient2-authn-ID
et incluez l’empreinte numérique du deuxième certificat client dans l’empreinte primaire.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
Dans le menu de gauche, sélectionnez Espaces de rubrique dans la section MQTT broker.
Dans la page Espaces de rubrique, sélectionnez + Espace de rubrique dans la barre d’outils.
Indiquez un nom pour l’espace de rubrique, dans la page Créer un espace de rubrique.
Sélectionnez + Ajouter un modèle de rubrique.
Entrez
contosotopics/topic1
pour le modèle de rubrique, puis sélectionnez Créer pour créer l’espace de rubrique.
Configuration du contrôle d’accès à l’aide de liaisons d’autorisation
Dans le menu de gauche, sélectionnez Liaisons d’autorisation dans la section MQTT broker.
Dans la page Liaisons d’autorisation, sélectionnez + Liaison d’autorisation dans la barre d’outils.
Configurez la liaison d’autorisation comme suit :
Donnez un nom à la liaison d’autorisation. Par exemple :
contosopublisherbinding
.Pour le nom du groupe client, sélectionnez $all.
Pour le nom de l’espace de rubrique, sélectionnez l’espace de rubrique que vous avez créé à l’étape précédente.
Accordez l’autorisation Éditeur au groupe de clients sur l’espace de rubrique.
Sélectionnez Vérifier + créer pour créer la liaison d’autorisation.
Créez une autre liaison d’autorisation (
contososubscriberbinding
) en sélectionnant + Liaison d’autorisation dans la barre d’outils.Fournissez un nom et donnez à $all groupe de clients Abonné l’accès à ContosoTopicSpace comme indiqué.
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
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/.
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.
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.
Mettre à jour le port à 8883.
Basculez SSL/TLS sur ON.
Basculez SSL Secure sur ON pour garantir la validation du certificat de service.
Sélectionnez Certificat en tant que auto-signé.
Indiquez le chemin d’accès au fichier de certificat client.
Indiquez le chemin d’accès du fichier de clé client.
Les autres paramètres peuvent être conservés avec des valeurs par défaut prédéfinies.
Sélectionnez Se connecter pour connecter le client répartiteur MQTT.
Répétez les étapes ci-dessus pour connecter le deuxième client client2, avec les informations d’authentification correspondantes, comme indiqué.
Publier/s’abonner à l’aide de l’application MQTTX
Après avoir connecté les clients, pour client2, sélectionnez le bouton + Nouvel abonnement.
Ajoutez
contosotopics/topic1
en tant que rubrique, puis sélectionnez Confirmer. Vous pouvez conserver la valeur par défaut de tous les autres champs.Sélectionnez client1 dans le rail gauche.
Pour client1, en haut de la zone de composition de message, tapez
contosotopics/topic1
comme rubrique à publier.Composez un message. Vous pouvez utiliser n’importe quel format ou JSON comme indiqué.
Sélectionnez le bouton Envoyer.
Le message doit être affiché comme publié dans le client 1.
Passez au client2. Vérifiez que client2 a reçu le message.