Klienci MQTT

Z tego artykułu dowiesz się więcej o konfigurowaniu klientów i grup klientów MQTT.

Klienci

Klienci mogą być urządzeniami lub aplikacjami, takimi jak urządzenia lub pojazdy, które wysyłają/odbierają komunikaty MQTT.

Rozważmy na przykład firmę zajmującą się zarządzaniem flotą z setkami ciężarówek i innymi pojazdami dostawczymi. Możesz poprawić ich routing, śledzenie, bezpieczeństwo kierowcy i przewidywalne możliwości konserwacji, wysyłając i odbierając komunikaty MQTT do/z usługi w chmurze.

W tym scenariuszu pojazdy można skonfigurować jako klientów, którzy publikują/subskrybują różne tematy, takie jak informacje o pogodzie, warunki drogowe, lokalizacja geograficzna, wydajność silnika i inne aspekty zużycia i łzawienia pojazdu. Podczas konfigurowania pojazdu jako klienta można również uwzględnić zestaw atrybutów, takich jak typ pojazdu, rok, model i model, maksymalna pojemność obciążenia itp.

Uwaga

  • Nazwa klienta może mieć długość od 1 do 128 znaków.
  • Nazwa klienta może zawierać alfanumeryczne, łączniki(-), colon(:), dot(.) i podkreślenie(_), bez spacji. Uwzględniana jest wielkość liter i musi być unikatowa dla przestrzeni nazw.

Kluczowe terminy metadanych klienta

Nazwa uwierzytelniania klienta: możesz podać unikatowy identyfikator klienta bez ograniczeń nazewnictwa usługi Azure Resource Manager. Jest to pole obowiązkowe i jeśli nie zostanie jawnie podane, jest ono domyślnie ustawione na nazwę klienta.

Żaden z dwóch klientów nie może mieć tej samej nazwy uwierzytelniania w przestrzeni nazw. Podczas uwierzytelniania klienta traktujemy nazwę uwierzytelniania klienta jako bez uwzględniania wielkości liter.

Zachowujemy oryginalny przypadek nazwy uwierzytelniania klienta skonfigurowanej w kliencie. Używamy oryginalnej nazwy uwierzytelniania klienta (uwzględniana wielkość liter), która została podana podczas tworzenia klienta, w wzbogacaniach routingu, dopasowywaniu przestrzeni tematu itp.

Uwaga

  • Nazwa uwierzytelniania klienta może mieć długość od 1 do 128 znaków, ciągi UTf-8, bez ograniczeń
  • W nazwie uwierzytelniania klienta jest rozróżniana wielkość liter i musi być unikatowa dla przestrzeni nazw (wielkość liter jest ignorowana podczas określania unikatowości)

Schemat weryfikacji uwierzytelniania certyfikatu klienta: aby użyć certyfikatu urzędu certyfikacji do uwierzytelniania, można wybrać jedną z następujących opcji, aby określić lokalizację tożsamości klienta w certyfikacie klienta. Gdy klient próbuje nawiązać połączenie z usługą, usługa odnajduje klienta z tego pola certyfikatu i dopasuje go do nazwy uwierzytelniania klienta w celu uwierzytelnienia klienta.

Obsługujemy pięć pól certyfikatów:

  • Podmiot pasuje do nazwy uwierzytelniania
  • Dns pasuje do nazwy uwierzytelniania
  • Identyfikator URI pasuje do nazwy uwierzytelniania
  • Adres IP pasuje do nazwy uwierzytelniania
  • Adres e-mail pasuje do nazwy uwierzytelniania

Użyj opcji "Dopasowanie odcisku palca" podczas uwierzytelniania klienta przy użyciu certyfikatu z podpisem własnym.

Uwaga

  • clientCertificateAuthentication jest zawsze wymagany z prawidłową wartością validationScheme.
  • Wartość authenticationName nie jest wymagana, ale po pierwszym żądaniu utworzenia wartość authenticatioName jest domyślnie ustawiona na nazwę arm, a następnie nie można jej zaktualizować.
  • Nie można zaktualizować nazwy uwierzytelniania.
  • Jeśli validationScheme jest czymkolwiek innym niż ThumbprintMatch, nie można podać listy allowedThumbprints.
  • allowedThumbprints listy można podać tylko i należy podać, jeśli validationScheme jest ThumbprintMatch z atleast jednym odciskiem palca.
  • allowedThumbprints mogą przechowywać maksymalnie 2 odciski palca.
  • Dozwolone wartości validationScheme to SubjectMatchesAuthenticationName, DnsMatchesAuthenticationName, UriMatchesAuthenticationName, IpMatchesAuthenticationName, EmailMatchesAuthenticationName, ThumbprintMatch
  • Używanie odcisku palca z zezwoleniem na ponowne użycie tego samego certyfikatu na wielu klientach. W przypadku innych typów weryfikacji nazwa uwierzytelniania musi znajdować się w wybranym polu certyfikatu klienta.

Atrybuty klienta

Atrybuty klienta to zestaw par klucz-wartość zdefiniowanych przez użytkownika lub tagów, które zawierają informacje o kliencie.

Te atrybuty klienta mogą służyć do tworzenia grup klientów. Można na przykład zgrupować wszystkie pojazdy typu semi-truck w jedną grupę, a wszystkie pojazdy typu pickup-truck do innego.

Te atrybuty są używane w zapytaniach grupy klientów do filtrowania zestawu klientów. Atrybuty mogą opisywać cechy fizyczne lub funkcjonalne klienta. Typowy atrybut może być "typem" klienta.

Oto przykład:

  • Typ: Wartości mogą być "czujnik" lub "termostat" lub "pojazd"

Oto przykładowy schemat klienta z definicją atrybutu:

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

Podczas konfigurowania atrybutów klienta należy wziąć pod uwagę tematy publikowane przez klientów (subskrybowanie). Myślenie wstecz od tematów do klientów ułatwia identyfikowanie typowości między rolami klienta i definiowanie atrybutów klienta w celu uproszczenia grupowania klientów.

Uwaga

  • Klucze atrybutów klienta muszą być unikatowe w kliencie. Nie można powtórzyć kluczy.
  • Wartości atrybutów klienta mogą być typu string, integer lub array of strings .
  • Całkowity rozmiar atrybutów klienta dla klienta musi być zawsze mniejszy niż 4 KB.
  • Nazwa atrybutu klienta (klucz) może zawierać tylko znaki alfanumeryczne i podkreślenie(_).

Przykładowe kontrakty

Przykład uwierzytelniania klienta opartego na łańcuchu certyfikatów

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

Przykład uwierzytelniania klienta opartego na odcisku palca certyfikatu z podpisem własnym

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

Konfiguracja witryny Azure Portal

Aby utworzyć klienta, wykonaj następujące czynności:

  1. Przejdź do przestrzeni nazw w witrynie Azure Portal

  2. W obszarze Klienci wybierz pozycję + Klient.

    Screenshot of adding a client.

  3. Wybierz schemat weryfikacji uwierzytelniania certyfikatu klienta. Aby uzyskać więcej informacji na temat konfiguracji uwierzytelniania klienta, zobacz artykuł dotyczący uwierzytelniania klienta.

  • Dodaj atrybuty klienta.

    Screenshot of client configuration.

  1. Wybierz pozycję Utwórz

Konfiguracja interfejsu wiersza polecenia platformy Azure

Użyj następujących poleceń, aby utworzyć/pokazać/usunąć klienta

Tworzenie klienta

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

Pobieranie klienta

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

Usuwanie klienta

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

Następne kroki