Clients MQTT
Dans cet article, vous allez découvrir comment configurer les clients et groupes de clients MQTT.
Clients
Les clients peuvent être des appareils ou des applications, tels que des appareils ou des véhicules qui envoient/reçoivent des messages MQTT.
Par exemple, considérez une société de gestion de flotte avec des centaines de camions et d’autres véhicules de livraison. Vous pouvez améliorer leurs fonctionnalités de routage, de suivi, de sécurité des pilotes et de maintenance prévisible en envoyant et en recevant des messages MQTT vers/à partir d’un service cloud.
Dans ce scénario, les véhicules peuvent être configurés en tant que clients qui publient ou s’abonnent à divers sujets tels que les informations météorologiques, les conditions routières, l’emplacement géographique, les performances du moteur et d’autres aspects liés à l’usure du véhicule. Et, lors de la configuration du véhicule en tant que client, un ensemble d’attributs tels que le type de véhicule, l’année, la marque et le modèle, la capacité de charge maximale, etc. peuvent également être inclus dans les métadonnées du client.
Remarque
- Un nom de client peut contenir entre 1 et 128 caractères.
- Le nom du client peut inclure les alphanumériques, les traits d’union(-), deux-points(:), point(.) et les traits de soulignement(_), aucun espace. Il respecte la casse et doit être unique par espace de noms.
Termes clés des métadonnées client
Nom d’authentification du client : Vous pouvez fournir un identificateur unique pour le client sans contraintes de nommage Azure Resource Manager. Il s’agit d’un champ obligatoire et s’il n’est pas fourni explicitement, il est défini par défaut sur le Nom du client.
Aucun client ne peut avoir le même nom d’authentification dans un espace de noms. Lors de l’authentification d’un client, nous considérons le nom d’authentification du client comme insensible à la casse.
Nous conservons le cas d’origine du nom d’authentification du client que vous configurez dans le client. Nous utilisons le nom d’authentification du client d’origine (respectant la casse) qui a été fourni lors de la création du client, dans les enrichissements de routage, la correspondance d’espace de rubrique, etc.
Notes
- Le nom d’authentification client peut contenir entre 1 et 128 caractères, des chaînes UTf-8, aucune restriction
- Le nom d’authentification du client respecte la casse et doit être unique par espace de noms (la casse est ignorée lors de la détermination de l’unicité)
Schéma de validation de l’authentification par certificat client : Pour utiliser le certificat d’autorité de certification pour l’authentification, vous pouvez choisir parmi l’une des options suivantes pour spécifier l’emplacement de l’identité du client dans le certificat client. Lorsque le client tente de se connecter au service, le service recherche l’identification du client à partir de ce champ de certificat et la fait correspondre au nom d’authentification du client pour l’authentifier.
Nous prenons en charge cinq champs de certificat :
- L’objet correspond au nom d’authentification
- Le DNS correspond au nom d’authentification
- L’URI correspond au nom d’authentification
- L’IP correspond au nom d’authentification
- L’e-mail correspond au nom d’authentification
Utilisez l’option « Correspondance d’empreinte numérique » lors de l’utilisation d’un certificat auto-signé pour authentifier le client.
Notes
- clientCertificateAuthentication est toujours requis avec une valeur valide validationScheme.
- authenticationName n'est pas obligatoire, mais après la première demande de création, la valeur par défaut d'authenticationName est le nom ARM, et elle ne peut alors pas être mise à jour.
- authenticationName ne peut pas être mis à jour.
- Si validationScheme est autre que ThumbprintMatch, la liste allowedThumbprints ne peut pas être fournie.
- La liste des empreintes digitales autorisées ne peut être fournie et doit être fournie que si validationScheme est ThumbprintMatch avec au moins une empreinte digitale.
- allowedThumbprints ne peut contenir qu’un maximum de 2 empreintes.
- Les valeurs validationScheme autorisées sont SubjectMatchesAuthenticationName, DnsMatchesAuthenticationName, UriMatchesAuthenticationName, IpMatchesAuthenticationName, EmailMatchesAuthenticationName, ThumbprintMatch
- Utilisation de l’empreinte numérique avec permission de réutilisation du même certificat sur plusieurs clients. Pour d’autres types de validation, le nom d’authentification doit se trouver dans le champ choisi du certificat client.
Attributs client
Les attributs client sont un ensemble de paires clé-valeur définies par l’utilisateur ou de balises qui fournissent des informations sur le client.
Ces attributs client peuvent être utilisés pour créer les groupes de clients. Par exemple, vous pouvez regrouper tous les véhicules de type semi remorque dans un groupe et tous les véhicules de type pick-up dans un autre.
Ces attributs sont utilisés dans les requêtes de groupe de clients pour filtrer un ensemble de clients. Les attributs peuvent décrire les caractéristiques physiques ou fonctionnelles du client. L’attribut classique peut être le « type » du client.
Voici un exemple :
- Type : les valeurs peuvent être « sensor » ou « thermostat » ou « vehicle »
Voici un exemple de schéma pour le client avec une définition d’attribut :
{
"id": "device123",
"attributes": {
"type": "home-sensors",
"sensors": ["motion", "noise", "light"]
}
}
Lors de la configuration des attributs client, tenez compte des rubriques dans lesquelles les clients publient (s’abonnent). Le fait de passer des rubriques aux clients permet d’identifier plus facilement les points communs entre les rôles clients et de définir les attributs du client pour simplifier le regroupement de clients.
Notes
- Les clés d’attribut client doivent être uniques dans le client. Les clés ne peuvent pas être répétées.
- Les valeurs d’attribut client peuvent être de types
string
,integer
ouarray of strings
. - La taille totale des attributs client pour un client doit toujours être inférieure à 4 Ko.
- Le nom d’attribut client (clé) ne peut contenir que des caractères alphanumériques et un trait de soulignement(_).
Exemples de contrats
Exemple d’authentification client basée sur la chaîne de certificats
{
"properties": {
"authenticationName": "127.0.0.1",
"state": "Enabled",
"clientCertificateAuthentication": {
"validationScheme": "IpMatchesAuthenticationName"
},
"attributes": {
"room": "345",
"floor": 3,
"bldg": "17"
},
"description": "Description of the client"
}
}
Exemple d’authentification client basée sur l’empreinte numérique de certificat auto-signé
{
"properties": {
"authenticationName": "abcd@domain.com-1",
"state": "Enabled",
"clientCertificateAuthentication": {
"validationScheme": "ThumbprintMatch",
"allowedThumbprints": ["primary", "secondary"]
},
"attributes": {
"room": "345",
"floor": "3",
"bldg": 17
},
"description": "Description of the client"
}
}
Configuration du portail Azure
Utilisez les étapes suivantes pour créer un client :
Accédez à votre espace de noms dans le Portail Azure
Sous Clients, sélectionnez + Client.
Choisissez le schéma de validation de l’authentification par certificat client. Pour plus d’informations sur la configuration de l’authentification client, consultez l’article sur l’authentification du client.
Ajoutez des attributs client.
- Sélectionnez Créer
Configuration d’Azure CLI
Utilisez les commandes suivantes pour créer/afficher/supprimer un client
Créer un client
az eventgrid namespace client create -g myRG --namespace-name myNS -n myClient
Obtenir le client
az eventgrid namespace client show -g myRG --namespace-name myNS -n myClient
Supprimer le client
az eventgrid namespace client delete -g myRG --namespace-name myNS -n myClient
Étapes suivantes
- En savoir plus sur l’authentification client