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
lubarray 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:
Przejdź do przestrzeni nazw w witrynie Azure Portal
W obszarze Klienci wybierz pozycję + Klient.
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.
- 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
- Dowiedz się więcej o uwierzytelnianiu klienta