Dela via


MQTT-klientautentisering med certifikat

Azure Event Grids MQTT-asynkronisering stöder autentisering av klienter med X.509-certifikat. X.509-certifikatet innehåller autentiseringsuppgifterna för att associera en viss klient med klientorganisationen. I den här modellen sker autentisering vanligtvis en gång under sessionsetableringen. Sedan antas alla framtida åtgärder som använder samma session komma från den identiteten.

Autentiseringslägen som stöds är:

  • Certifikat som utfärdats av en certifikatutfärdare (CA)
  • Självsignerat klientcertifikat – tumavtryck
  • Microsoft Entra ID-token

Den här artikeln fokuserar på certifikat. Mer information om autentisering med hjälp av Microsoft Entra-ID-token finns i autentisera klienten med hjälp av Microsoft Entra ID-token.

Certifikatutfärdare (CA) signerade certifikat

I den här metoden registreras ett rotcertifikat eller ett mellanliggande X.509-certifikat med tjänsten. Rotcertifikatet eller mellanhandscertifikatet som används för att signera klientcertifikatet måste registreras med tjänsten först.

Viktigt!

  • Se till att ladda upp det rotcertifikat eller mellanliggande certifikat som används för att signera klientcertifikatet. Det behövs inte för att ladda upp hela certifikatkedjan.
  • Om du till exempel har en kedja med rotcertifikat, mellanliggande certifikat och lövcertifikat ska du se till att ladda upp det mellanliggande certifikatet som signerade löv-/klientcertifikaten.

Skärmbild som visar ca-certifikatsidan med rotcertifikat och mellanliggande certifikat som används för att signera klientcertifikaten.

När du registrerar klienter måste du identifiera certifikatfältet som används för att lagra klientens autentiseringsnamn. Tjänsten matchar autentiseringsnamnet från certifikatet med klientens autentiseringsnamn i klientmetadata för att verifiera klienten. Tjänsten validerar även klientcertifikatet genom att verifiera om det är signerat av det tidigare registrerade rotcertifikatet eller mellanhandscertifikatet.

Skärmbild som visar klientmetadata med de fem certifikatkedjebaserade valideringsschemana.

Självsignerat klientcertifikat – tumavtryck

I den här autentiseringsmetoden lagrar klientregistret det exakta tumavtrycket för det certifikat som klienten ska använda för att autentisera. När klienten försöker ansluta till tjänsten validerar tjänsten klienten genom att jämföra tumavtrycket som visas i klientcertifikatet med tumavtrycket som lagras i klientmetadata.

Skärmbild som visar klientmetadata med autentiseringsschema för tumavtryck.

Kommentar

  • Vi rekommenderar att du inkluderar klientautentiseringsnamnet i användarnamnsfältet i klientens anslutningspaket. Med det här autentiseringsnamnet tillsammans med klientcertifikatet kan tjänsten autentisera klienten.
  • Om du inte anger autentiseringsnamnet i fältet användarnamn måste du konfigurera de alternativa källfälten för klientautentiseringsnamnet i namnområdets omfång. Tjänsten söker efter klientautentiseringsnamnet i motsvarande fält i klientcertifikatet för att autentisera klientanslutningen.

På konfigurationssidan i namnområdesomfånget kan du aktivera alternativa klientautentiseringsnamnkällor och sedan välja de klientcertifikatfält som har namnet på klientautentiseringen.

Skärmbild som visar namnområdeskonfigurationssidan med alternativa källinställningar för klientautentiseringsnamn.

Det är viktigt att välja ordning på klientcertifikatfälten på namnområdeskonfigurationssidan. Tjänsten söker efter klientautentiseringsnamnet i klientcertifikatfälten i samma ordning.

Om du till exempel väljer alternativet Certifikat-DNS först och sedan alternativet Ämnesnamn – när du autentiserar klientanslutningen,

  • tjänsten kontrollerar dns-fältet för det alternativa namnet på klientcertifikatet först för klientens autentiseringsnamn
  • om DNS-fältet är tomt kontrollerar tjänsten fältet Ämnesnamn i klientcertifikatet
  • Om klientautentiseringsnamnet inte finns i något av dessa två fält nekas klientanslutningen

I båda lägena för klientautentisering förväntar vi oss att klientautentiseringsnamnet anges antingen i användarnamnsfältet i anslutningspaketet eller i något av klientcertifikatfälten.

Klientcertifikatfält som stöds för alternativ källa för klientautentiseringsnamn

Du kan använda något av följande fält för att ange klientautentiseringsnamn i klientcertifikatet.

Källalternativ för autentiseringsnamn Certifikatfält beskrivning
Certifikatmottagarenamn tls_client_auth_subject_dn Certifikatets unika namn för certifikatet.
Certifikat-DNS tls_client_auth_san_dns SAN-posten dNSName i certifikatet.
Certifikat-URI tls_client_auth_san_uri SAN-posten uniformResourceIdentifier i certifikatet.
Certifikat-IP tls_client_auth_san_ip IPv4- eller IPv6-adressen som finns i iPAddress SAN-posten i certifikatet.
E-post för certifikat tls_client_auth_san_email SAN-posten rfc822Name i certifikatet.

Nästa steg