Dela via


MQTT-klienter

I den här artikeln lär du dig att konfigurera MQTT-klienter och klientgrupper.

Klienter

Klienter kan vara enheter eller program, till exempel enheter eller fordon som skickar/tar emot MQTT-meddelanden.

Tänk dig till exempel ett vagnparkshanteringsföretag med hundratals lastbilar och andra leveransfordon. Du kan förbättra deras funktioner för routning, spårning, drivrutinssäkerhet och förutsägbart underhåll genom att skicka och ta emot MQTT-meddelanden till/från en molntjänst.

I det här scenariot kan fordon konfigureras som klienter som publicerar/prenumererar på olika ämnen som väderinformation, vägförhållanden, geoplats, motorprestanda och andra slitageaspekter av fordonet. Och när du konfigurerar fordonet som en klient kan även en uppsättning attribut som fordonstyp, år, modell, maxlastkapacitet osv. ingå i klientmetadata.

Kommentar

  • Klientnamnet kan vara 1–128 tecken långt.
  • Klientnamnet kan innehålla alfanumeriskt, bindestreck(-), kolon(:), punkt(.) och understreck(_), inga blanksteg. Det är skiftlägeskänsligt och måste vara unikt per namnområde.

Viktiga termer för klientmetadata

Namn på klientautentisering: Du kan ange en unik identifierare för klienten utan namngivningsbegränsningar för Azure Resource Manager. Det är ett obligatoriskt fält och om det inte uttryckligen anges är det standardinställningen klientnamn.

Inga två klienter kan ha samma autentiseringsnamn i ett namnområde. När vi autentiserar en klient behandlar vi klientautentiseringsnamnet som skiftlägesokänsligt.

Vi bevarar det ursprungliga fallet med det klientautentiseringsnamn som du konfigurerar i klienten. Vi använder det ursprungliga klientautentiseringsnamnet (skiftlägeskänsligt) som angavs när klienten skapades, i routningsberikningar, matchning av ämnesutrymme osv.

Kommentar

  • Klientautentiseringsnamnet kan vara 1–128 tecken långt, UTf-8-strängar, inga begränsningar
  • Klientens autentiseringsnamn är skiftlägeskänsligt och måste vara unikt per namnområde (ärendet ignoreras vid fastställandet av unikhet)

Valideringsschema för klientcertifikatautentisering: Om du vill använda CA-certifikat för autentisering kan du välja något av följande alternativ för att ange platsen för klientidentiteten i klientcertifikatet. När klienten försöker ansluta till tjänsten hittar tjänsten klientidentifieringen från det här certifikatfältet och matchar den med klientens autentiseringsnamn för att autentisera klienten.

Vi stöder fem certifikatfält:

  • Ämne matchar autentiseringsnamn
  • Dns matchar autentiseringsnamn
  • Uri matchar autentiseringsnamn
  • IP matchar autentiseringsnamn
  • E-post matchar autentiseringsnamn

Använd alternativet "Tumavtrycksmatchning" när du använder självsignerat certifikat för att autentisera klienten.

Kommentar

  • clientCertificateAuthentication krävs alltid med ett giltigt värde för validationScheme.
  • authenticationName krävs inte, men efter den första skapa begäran, authenticatioName värdet standard till ARM-namn, och sedan kan inte uppdateras.
  • authenticationName kan inte uppdateras.
  • Om validationScheme är något annat än ThumbprintMatch kan listan allowedThumbprints inte anges.
  • allowedThumbprints-listan kan endast anges och måste anges om validationScheme är ThumbprintMatch med minst ett tumavtryck.
  • allowedThumbprints kan bara innehålla högst 2 tumavtryck.
  • Tillåtna valideringScheme-värden är SubjectMatchesAuthenticationName, DnsMatchesAuthenticationName, UriMatchesAuthenticationName, IpMatchesAuthenticationName, EmailMatchesAuthenticationName, ThumbprintMatch
  • Använda tumavtryck med tillåt återanvändning av samma certifikat mellan flera klienter. För andra typer av validering måste autentiseringsnamnet finnas i det valda fältet i klientcertifikatet.

Klientattribut

Klientattribut är en uppsättning användardefinierade nyckel/värde-par eller taggar som ger information om klienten.

Dessa klientattribut kan användas för att skapa klientgrupperna. Du kan till exempel gruppera alla fordon av typen semitruckar i en grupp och alla fordon av typen pickup-trucks i en annan.

Dessa attribut används i klientgruppens frågor för att filtrera en uppsättning klienter. Attribut kan beskriva klientens fysiska eller funktionella egenskaper. Typiskt attribut kan vara "typ" av klienten.

Här är ett exempel:

  • Typ: Värden kan vara "sensor" eller "termostat" eller "fordon"

Här är ett exempelschema för klienten med attributdefinition:

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

När du konfigurerar klientattributen bör du överväga de ämnen som klienterna publicerar (prenumererar på). Att tänka bakåt från ämnen till klienter hjälper till att identifiera gemensamma egenskaper mellan klientroller enklare och definiera klientattributen för att göra klientgruppering enklare.

Kommentar

  • Klientattributnycklar måste vara unika i klienten. Det går inte att upprepa nycklar.
  • Värden för klientattribut kan vara av string, integer eller array of strings typer.
  • Den totala storleken på klientattributen för en klient måste alltid vara mindre än 4 KB.
  • Klientattributnamnet (nyckeln) får bara innehålla alfanumeriska tecken och understreck(_).

Exempelkontrakt

Exempel på certifikatkedjebaserad klientautentisering

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

Exempel på självsignerad tumavtrycksbaserad klientautentisering för certifikat

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

Konfiguration av Azure-portalen

Använd följande steg för att skapa en klient:

  1. Gå till ditt namnområde i Azure-portalen

  2. Under Klienter väljer du + Klient.

    Screenshot of adding a client.

  3. Välj verifieringsschemat för klientcertifikatautentisering. Mer information om konfiguration av klientautentisering finns i artikeln om klientautentisering .

  • Lägg till klientattribut.

    Screenshot of client configuration.

  1. Välj Skapa

Konfiguration av Azure CLI

Använd följande kommandon för att skapa/visa/ta bort en klient

Skapa klient

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

Hämta klient

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

Ta bort klient

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

Nästa steg