Share via


MQTT-clientverificatie met behulp van certificaten

De MQTT-broker van Azure Event Grid ondersteunt verificatie van clients met X.509-certificaten. X.509-certificaat biedt de referenties om een bepaalde client te koppelen aan de tenant. In dit model vindt verificatie doorgaans eenmaal plaats tijdens het instellen van sessies. Vervolgens wordt ervan uitgegaan dat alle toekomstige bewerkingen die dezelfde sessie gebruiken, afkomstig zijn van die identiteit.

Ondersteunde verificatiemodi zijn:

  • Certificaten uitgegeven door een certificeringsinstantie (CA)
  • Zelfondertekend clientcertificaat - vingerafdruk
  • Microsoft Entra ID-token

Dit artikel is gericht op certificaten. Zie de verificatieclient met behulp van het Microsoft Entra ID-token voor meer informatie over verificatie met behulp van Microsoft Entra ID-tokens.

Certificaten die zijn ondertekend door certificeringsinstantie (CA)

In deze methode wordt een basis- of tussenliggend X.509-certificaat geregistreerd bij de service. In wezen moet het basiscertificaat of het tussenliggende certificaat dat wordt gebruikt om het clientcertificaat te ondertekenen, eerst worden geregistreerd bij de service.

Belangrijk

  • Zorg ervoor dat u het basis- of tussencertificaat uploadt dat wordt gebruikt om het clientcertificaat te ondertekenen. Het is niet nodig om de hele certificaatketen te uploaden.
  • Als u bijvoorbeeld een keten van basis-, tussenliggende en bladcertificaten hebt, moet u ervoor zorgen dat u het tussenliggende certificaat uploadt dat de leaf-/clientcertificaten heeft ondertekend.

Schermopname van de pagina CA-certificaten met basis- en tussencertificaten die worden gebruikt om de clientcertificaten te ondertekenen.

Tijdens het registreren van clients moet u het certificaatveld identificeren dat wordt gebruikt voor het opslaan van de verificatienaam van de client. De service komt overeen met de verificatienaam van het certificaat met de verificatienaam van de client in de metagegevens van de client om de client te valideren. De service valideert ook het clientcertificaat door te controleren of het is ondertekend door het eerder geregistreerde basis- of intermediaire certificaat.

Schermopname van de clientmetagegevens met de vijf validatieschema's op basis van certificaatketens.

Zelfondertekend clientcertificaat - vingerafdruk

In deze verificatiemethode slaat het clientregister de exacte vingerafdruk op van het certificaat dat de client gaat gebruiken om te verifiëren. Wanneer de client verbinding probeert te maken met de service, valideert de service de client door de vingerafdruk die wordt weergegeven in het clientcertificaat te vergelijken met de vingerafdruk die is opgeslagen in clientmetagegevens.

Schermopname van de clientmetagegevens met verificatieschema voor vingerafdruk.

Notitie

  • U wordt aangeraden de naam van de clientverificatie op te nemen in het gebruikersnaamveld van het verbindingspakket van de client. Als u deze verificatienaam samen met het clientcertificaat gebruikt, kan de service de client verifiëren.
  • Als u de verificatienaam niet opgeeft in het veld gebruikersnaam, moet u de alternatieve bronvelden configureren voor de naam van de clientverificatie in het bereik van de naamruimte. Service zoekt naar de naam van de clientverificatie in het bijbehorende veld van het clientcertificaat om de clientverbinding te verifiëren.

Op de configuratiepagina bij naamruimtebereik kunt u alternatieve bronnen voor clientverificatienaam inschakelen en vervolgens de velden van het clientcertificaat met de naam van de clientverificatie selecteren.

Schermopname van de pagina naamruimteconfiguratie met alternatieve broninstellingen voor clientverificatienaam.

De volgorde van de selectie van de velden van het clientcertificaat op de configuratiepagina van de naamruimte is belangrijk. Service zoekt in dezelfde volgorde naar de naam van de clientverificatie in de velden van het clientcertificaat.

Als u bijvoorbeeld eerst de optie Dns-certificaat selecteert en vervolgens de optie Onderwerpnaam - tijdens het verifiëren van de clientverbinding,

  • de service controleert eerst het DNS-veld alternatieve naam van het onderwerp van het clientcertificaat voor de naam van de clientverificatie
  • als het DNS-veld leeg is, controleert de service het veld Onderwerpnaam van het clientcertificaat
  • als de clientverificatienaam niet aanwezig is in een van deze twee velden, wordt de clientverbinding geweigerd

In beide modi van clientverificatie verwachten we dat de naam van de clientverificatie wordt opgegeven in het veld gebruikersnaam van het verbindingspakket of in een van de velden van het clientcertificaat.

Ondersteunde clientcertificaatvelden voor alternatieve bron van clientverificatienaam

U kunt een van de volgende velden gebruiken om de clientverificatienaam in het clientcertificaat op te geven.

Optie verificatienaambron Certificaatveld Beschrijving
Onderwerpnaam van certificaat tls_client_auth_subject_dn De DN-naam van het onderwerp van het certificaat.
Dns-certificaat tls_client_auth_san_dns De dNSName SAN-vermelding in het certificaat.
Certificaat-URI tls_client_auth_san_uri De uniformResourceIdentifier SAN-vermelding in het certificaat.
Ip-adres van certificaat tls_client_auth_san_ip Het IPv4- of IPv6-adres dat aanwezig is in de IPAddress SAN-vermelding in het certificaat.
E-mailadres van certificaat tls_client_auth_san_email De rfc822Name SAN-vermelding in het certificaat.

Volgende stappen