Uwierzytelnianie klienta MQTT przy użyciu certyfikatów

Broker MQTT usługi Azure Event Grid obsługuje uwierzytelnianie klientów przy użyciu certyfikatów X.509. Certyfikat X.509 udostępnia poświadczenia do skojarzenia określonego klienta z dzierżawą. W tym modelu uwierzytelnianie zwykle odbywa się raz podczas ustanawiania sesji. Następnie zakłada się, że wszystkie przyszłe operacje korzystające z tej samej sesji pochodzą z tej tożsamości.

Obsługiwane tryby uwierzytelniania to:

  • Certyfikaty wystawione przez urząd certyfikacji
  • Certyfikat klienta z podpisem własnym — odcisk palca
  • Token identyfikatora entra firmy Microsoft

Ten artykuł koncentruje się na certyfikatach. Aby dowiedzieć się więcej na temat uwierzytelniania przy użyciu tokenów identyfikatorów Entra firmy Microsoft, zobacz uwierzytelnianie klienta przy użyciu tokenu identyfikatora Entra firmy Microsoft.

Certyfikaty podpisane przez urząd certyfikacji

W tej metodzie certyfikat główny lub pośredni X.509 jest zarejestrowany w usłudze. Zasadniczo certyfikat główny lub pośredniczący używany do podpisywania certyfikatu klienta należy najpierw zarejestrować w usłudze.

Ważne

  • Upewnij się, że przekaż certyfikat główny lub pośredni, który jest używany do podpisywania certyfikatu klienta. Nie jest konieczne przekazanie całego łańcucha certyfikatów.
  • Jeśli na przykład masz łańcuch certyfikatów głównych, pośrednich i liści, upewnij się, że przekaż certyfikat pośredni, który podpisał certyfikat liścia/klienta.

Zrzut ekranu przedstawiający stronę certyfikatów urzędu certyfikacji z certyfikatami głównymi i pośrednimi używanymi do podpisywania certyfikatów klienta.

Podczas rejestrowania klientów należy zidentyfikować pole certyfikatu używane do przechowywania nazwy uwierzytelniania klienta. Usługa pasuje do nazwy uwierzytelniania z certyfikatu z nazwą uwierzytelniania klienta w metadanych klienta w celu zweryfikowania klienta. Usługa weryfikuje również certyfikat klienta, sprawdzając, czy jest podpisany przez wcześniej zarejestrowany certyfikat główny lub pośredniczący.

Zrzut ekranu przedstawiający metadane klienta z pięcioma schematami weryfikacji opartymi na łańcuchu certyfikatów.

Certyfikat klienta z podpisem własnym — odcisk palca

W tej metodzie uwierzytelniania rejestr klienta przechowuje dokładny odcisk palca certyfikatu, którego klient będzie używać do uwierzytelniania. Gdy klient próbuje nawiązać połączenie z usługą, usługa weryfikuje klienta, porównując odcisk palca przedstawiony w certyfikacie klienta z odciskiem palca przechowywanym w metadanych klienta.

Zrzut ekranu przedstawiający metadane klienta ze schematem uwierzytelniania odcisku palca.

Uwaga

  • Zalecamy dołączenie nazwy uwierzytelniania klienta w polu nazwy użytkownika pakietu połączenia klienta. Korzystając z tej nazwy uwierzytelniania wraz z certyfikatem klienta, usługa będzie mogła uwierzytelnić klienta.
  • Jeśli nie podasz nazwy uwierzytelniania w polu nazwy użytkownika, musisz skonfigurować alternatywne pola źródłowe dla nazwy uwierzytelniania klienta w zakresie przestrzeni nazw. Usługa wyszukuje nazwę uwierzytelniania klienta w odpowiednim polu certyfikatu klienta w celu uwierzytelnienia połączenia klienta.

Na stronie konfiguracji w zakresie przestrzeni nazw można włączyć alternatywne źródła nazw uwierzytelniania klienta, a następnie wybrać pola certyfikatu klienta, które mają nazwę uwierzytelniania klienta.

Zrzut ekranu przedstawiający stronę konfiguracji przestrzeni nazw z alternatywnymi ustawieniami źródła nazwy uwierzytelniania klienta.

Kolejność wyboru pól certyfikatu klienta na stronie konfiguracji przestrzeni nazw jest ważna. Usługa wyszukuje nazwę uwierzytelniania klienta w polach certyfikatu klienta w tej samej kolejności.

Jeśli na przykład najpierw wybierzesz opcję DNS certyfikatu, a następnie opcję Nazwa podmiotu — podczas uwierzytelniania połączenia klienta,

  • usługa sprawdza pole DNS alternatywnej nazwy podmiotu certyfikatu klienta jako pierwsze dla nazwy uwierzytelniania klienta
  • jeśli pole DNS jest puste, usługa sprawdza pole Nazwa podmiotu certyfikatu klienta
  • Jeśli nazwa uwierzytelniania klienta nie istnieje w jednym z tych dwóch pól, połączenie klienta zostanie odrzucone

W obu trybach uwierzytelniania klienta spodziewamy się podania nazwy uwierzytelniania klienta w polu nazwy użytkownika pakietu połączenia lub w jednym z pól certyfikatu klienta.

Obsługiwane pola certyfikatów klienta dla alternatywnego źródła nazwy uwierzytelniania klienta

Możesz użyć jednego z następujących pól, aby podać nazwę uwierzytelniania klienta w certyfikacie klienta.

Opcja źródła nazwy uwierzytelniania Pole certyfikatu opis
Nazwa podmiotu certyfikatu tls_client_auth_subject_dn Nazwa wyróżniająca podmiotu certyfikatu.
Dns certyfikatu tls_client_auth_san_dns Wpis dNSName SIECI SAN w certyfikacie.
Identyfikator URI certyfikatu tls_client_auth_san_uri Wpis uniformResourceIdentifier SIECI SAN w certyfikacie.
Adres IP certyfikatu tls_client_auth_san_ip Adres IPv4 lub IPv6 znajdujący się we wpisie sieci SAN iPAddress w certyfikacie.
Adres e-mail certyfikatu tls_client_auth_san_email Wpis rfc822Name SIECI SAN w certyfikacie.

Następne kroki