Condividi tramite


Autenticazione client MQTT con certificati

Griglia di eventi di Azure broker MQTT supporta l'autenticazione dei client tramite certificati X.509. Il certificato X.509 fornisce le credenziali per associare un determinato client al tenant. In questo modello l'autenticazione avviene in genere una volta durante l'impostazione della sessione. Si presuppone quindi che tutte le operazioni future che usano la stessa sessione provengano da tale identità.

Le modalità di autenticazione supportate sono:

  • Certificati emessi da un'autorità di certificazione (CA)
  • Certificato client autofirmato - identificazione personale
  • Token ID Microsoft Entra

Questo articolo è incentrato sui certificati. Per informazioni sull'autenticazione con i token ID di Microsoft Entra, vedere Autenticare il client con il token ID Microsoft Entra.

Certificati firmati dell'autorità di certificazione (CA)

In questo metodo, un certificato X.509 radice o intermedio viene registrato con il servizio. Essenzialmente, il certificato radice o intermedio usato per firmare il certificato client deve essere registrato prima con il servizio.

Importante

  • Assicurarsi di caricare il certificato radice o intermedio usato per firmare il certificato client. Non è necessario caricare l'intera catena di certificati.
  • Ad esempio, se si dispone di una catena di certificati radice, intermedio e foglia, assicurarsi di caricare il certificato intermedio che ha firmato i certificati foglia/client.

Screenshot che mostra la pagina certificati CA con certificati radice e intermedi usati per firmare i certificati client.

Durante la registrazione dei client, è necessario identificare il campo del certificato usato per contenere il nome di autenticazione del client. Il servizio corrisponde al nome di autenticazione del certificato con il nome di autenticazione del client nei metadati client per convalidare il client. Il servizio convalida anche il certificato client verificando se è firmato dal certificato radice o intermedio registrato in precedenza.

Screenshot che mostra i metadati client con i cinque schemi di convalida basati sulla catena di certificati.

Certificato client autofirmato - identificazione personale

In questo metodo di autenticazione, il Registro di sistema client archivia l'esatta identificazione personale del certificato che il client userà per l'autenticazione. Quando il client tenta di connettersi al servizio, il servizio convalida il client confrontando l'identificazione personale presentata nel certificato client con l'identificazione personale archiviata nei metadati client.

Screenshot che mostra i metadati client con lo schema di autenticazione identificazione personale.

Nota

  • È consigliabile includere il nome di autenticazione client nel campo nome utente del pacchetto di connessione del client. Usando questo nome di autenticazione insieme al certificato client, il servizio sarà in grado di autenticare il client.
  • Se non si specifica il nome di autenticazione nel campo nome utente, è necessario configurare i campi di origine alternativi per il nome di autenticazione client nell'ambito dello spazio dei nomi. Il servizio cerca il nome di autenticazione client nel campo corrispondente del certificato client per autenticare la connessione client.

Nella pagina di configurazione nell'ambito dello spazio dei nomi è possibile abilitare origini dei nomi di autenticazione client alternative e quindi selezionare i campi del certificato client con il nome di autenticazione client.

Screenshot che mostra la pagina di configurazione dello spazio dei nomi con le impostazioni di origine alternative del nome di autenticazione client.

L'ordine di selezione dei campi del certificato client nella pagina di configurazione dello spazio dei nomi è importante. Il servizio cerca il nome di autenticazione client nei campi del certificato client nello stesso ordine.

Ad esempio, se si seleziona prima l'opzione DNS certificato e quindi l'opzione Nome soggetto, durante l'autenticazione della connessione client,

  • service controlla prima il campo DNS del nome alternativo soggetto del certificato client per il nome di autenticazione client
  • se il campo DNS è vuoto, il servizio controlla il campo Nome soggetto del certificato client
  • se il nome di autenticazione client non è presente in uno di questi due campi, la connessione client viene negata

In entrambe le modalità di autenticazione client, si prevede che il nome di autenticazione client venga fornito nel campo nome utente del pacchetto di connessione o in uno dei campi del certificato client.

Campi del certificato client supportati per l'origine alternativa del nome di autenticazione client

È possibile usare uno dei campi seguenti per specificare il nome di autenticazione client nel certificato client.

Opzione di origine del nome di autenticazione Campo Certificato Descrizione
Nome soggetto certificato tls_client_auth_subject_dn Il nome distintivo del soggetto del certificato.
Dns certificato tls_client_auth_san_dns Voce dNSName SAN nel certificato.
Uri certificato tls_client_auth_san_uri Voce uniformResourceIdentifier SAN nel certificato.
Ip certificato tls_client_auth_san_ip L'indirizzo IPv4 o IPv6 presente nella voce SAN iPAddress nel certificato.
Indirizzo di posta elettronica certificato tls_client_auth_san_email Voce rfc822Name SAN nel certificato.

Passaggi successivi