Delen via


MQTT-clients

In dit artikel leert u meer over het configureren van MQTT-clients en clientgroepen.

Clients

Clients kunnen apparaten of toepassingen zijn, zoals apparaten of voertuigen die MQTT-berichten verzenden/ontvangen.

Denk bijvoorbeeld aan een vlootbeheerbedrijf met honderden vrachtwagens en andere vrachtauto's. U kunt hun routering, tracering, veiligheid van stuurprogramma's en voorspelbare onderhoudsmogelijkheden verbeteren door MQTT-berichten naar/van een cloudservice te verzenden en te ontvangen.

In dit scenario kunnen voertuigen worden geconfigureerd als clients die verschillende onderwerpen publiceren/abonneren, zoals weersinformatie, wegomstandigheden, geografische locatie, motorprestaties en andere slijtageaspecten van het voertuig. En tijdens het configureren van het voertuig als een client, kan een set kenmerken, zoals voertuigtype, jaar, make & model, maximale laadcapaciteit, enzovoort, ook worden opgenomen in de metagegevens van de client.

Notitie

  • De clientnaam mag 1-128 tekens lang zijn.
  • Clientnaam kan alfanumerieke tekens, afbreekstreepjes(-), dubbele punt(:), dot(.) en onderstrepingsteken(_), geen spaties bevatten. Het is hoofdlettergevoelig en moet uniek zijn per naamruimte.

Belangrijke termen van clientmetagegevens

Naam van clientverificatie: u kunt een unieke id opgeven voor de client zonder azure Resource Manager-naamgevingsbeperkingen. Het is een verplicht veld en als dit niet expliciet is opgegeven, wordt het standaard ingesteld op de clientnaam.

Er kunnen geen twee clients dezelfde verificatienaam hebben binnen een naamruimte. Tijdens het verifiëren van een client behandelen we de naam van clientverificatie als niet hoofdlettergevoelig.

We behouden het oorspronkelijke geval van clientverificatienaam die u in de client configureert. We gebruiken de oorspronkelijke clientverificatienaam (hoofdlettergevoelig) die is opgegeven toen de client werd gemaakt, in routeringsverrijkingen, onderwerpruimtekoppeling, enzovoort.

Notitie

  • De naam van clientverificatie mag 1-128 tekens lang zijn, UTf-8-tekenreeksen, geen beperkingen
  • Naam van clientverificatie is hoofdlettergevoelig en moet uniek zijn per naamruimte (hoofdletters worden genegeerd tijdens het bepalen van de uniekheid)

Validatieschema voor clientcertificaatverificatie: Als u CA-certificaat wilt gebruiken voor verificatie, kunt u kiezen uit een van de volgende opties om de locatie van de clientidentiteit in het clientcertificaat op te geven. Wanneer de client verbinding probeert te maken met de service, vindt de service de client-id uit dit certificaatveld en komt deze overeen met de naam van de clientverificatie om de client te verifiëren.

We ondersteunen vijf certificaatvelden:

  • Onderwerp komt overeen met verificatienaam
  • Dns komt overeen met verificatienaam
  • Uri komt overeen met de verificatienaam
  • IP komt overeen met verificatienaam
  • E-mail komt overeen met de verificatienaam

Gebruik de optie Vingerafdrukovereenkomst terwijl u een zelfondertekend certificaat gebruikt om de client te verifiëren.

Notitie

  • clientCertificateAuthentication is altijd vereist met een geldige waarde van validationScheme.
  • authenticationName is niet vereist, maar nadat de eerste aanvraag is gemaakt, wordt de waarde authenticatioName standaard ingesteld op ARM-naam en kan deze niet worden bijgewerkt.
  • authenticationName kan niet worden bijgewerkt.
  • Als validationScheme iets anders is dan ThumbprintMatch, kan de lijst allowedThumbprints niet worden opgegeven.
  • de lijst allowedThumbprints kan alleen worden opgegeven en moet worden opgegeven als validationScheme ThumbprintMatch is met ten minste één vingerafdruk.
  • allowedThumbprints mogen maximaal 2 vingerafdrukken bevatten.
  • Toegestane validatiescheme-waarden zijn SubjectMatchesAuthenticationName, DnsMatchesAuthenticationName, UriMatchesAuthenticationName, IpMatchesAuthenticationName, EmailMatchesAuthenticationName, ThumbprintMatch
  • Gebruik van vingerafdruk met hergebruik van hetzelfde certificaat op meerdere clients toegestaan. Voor andere typen validatie moet de verificatienaam zich in het gekozen veld van het clientcertificaat bevindt.

Clientkenmerken

Clientkenmerken zijn een set door de gebruiker gedefinieerde sleutel-waardeparen of tags die informatie over de client bieden.

Deze clientkenmerken kunnen worden gebruikt om de clientgroepen te maken. U kunt bijvoorbeeld alle voertuigen van het type semi-vrachtwagens groeperen in één groep en alle voertuigen van het type pick-upwagens in een andere groep.

Deze kenmerken worden gebruikt in de query's van de clientgroep om een set clients te filteren. Kenmerken kunnen de fysieke of functionele kenmerken van de client beschrijven. Typisch kenmerk kan 'type' van de client zijn.

Hier volgt een voorbeeld:

  • Type: Waarden kunnen 'sensor' of 'thermostaat' of 'voertuig' zijn

Hier volgt een voorbeeldschema voor de client met kenmerkdefinitie:

{  
    "id": "device123",  
    "attributes": {  
        "type": "home-sensors",
        "sensors": ["motion", "noise", "light"]
     }
}

Houd tijdens het configureren van de clientkenmerken rekening met de onderwerpen waarop de clients publiceren (abonneren). Het achterwaarts denken van onderwerpen aan clients helpt bij het identificeren van de gemeenschappelijke kenmerken van verschillende clientrollen en het definiëren van de clientkenmerken om de clientgroepering eenvoudiger te maken.

Notitie

  • Clientkenmerksleutels moeten uniek zijn in de client. Sleutels kunnen niet worden herhaald.
  • Clientkenmerkwaarden kunnen van of integerarray of strings typen stringzijn.
  • De totale grootte van de clientkenmerken voor een client moet altijd kleiner zijn dan 4 kB.
  • De naam van het clientkenmerk (sleutel) mag alleen alfanumerieke tekens en onderstrepingstekens (_) bevatten.

Voorbeeldcontracten

Voorbeeld voor clientverificatie op basis van certificaatketens

{
    "properties": {
        "authenticationName": "127.0.0.1",
        "state": "Enabled",
        "clientCertificateAuthentication": {
            "validationScheme": "IpMatchesAuthenticationName"
        },
        "attributes": {
            "room": "345",
            "floor": 3,
            "bldg": "17"
        },
        "description": "Description of the client"
    }
}

Voorbeeld voor zelfondertekende clientverificatie op basis van vingerafdruk van certificaat

{
    "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"
    }
}

Configuratie van Azure Portal

Gebruik de volgende stappen om een client te maken:

  1. Ga naar uw naamruimte in Azure Portal

  2. Selecteer + Client onder Clients.

    Screenshot of adding a client.

  3. Kies het validatieschema voor verificatie van clientcertificaten. Zie het artikel over clientverificatie voor meer informatie over de configuratie van clientverificatie .

  • Clientkenmerken toevoegen.

    Screenshot of client configuration.

  1. Selecteer Maken.

Azure CLI-configuratie

Gebruik de volgende opdrachten om een client te maken/weergeven/verwijderen

Client maken

az eventgrid namespace client create -g myRG --namespace-name myNS -n myClient

Client ophalen

az eventgrid namespace client show -g myRG --namespace-name myNS -n myClient

Client verwijderen

az eventgrid namespace client delete -g myRG --namespace-name myNS -n myClient

Volgende stappen