Concetti relativi all'autenticazione dei dispositivi in IoT Central
Questo articolo descrive come i dispositivi eseguono l'autenticazione in un'applicazione IoT Central. Per altre informazioni sul processo di connessione generale, vedere Connettere un dispositivo.
I dispositivi eseguono l'autenticazione con l'applicazione IoT Central usando un token di firma di accesso condiviso o un certificato X.509. Negli ambienti di produzione è consigliabile usare i certificati X.509.
I gruppi di registrazione consentono di gestire le opzioni di autenticazione del dispositivo nell'applicazione IoT Central.
Questo articolo descrive le opzioni di autenticazione del dispositivo seguenti:
- Gruppo di registrazioni X.509
- Gruppo di registrazione della firma di accesso condiviso
- Registrazione individuale
Gruppo di registrazioni X.509
In un ambiente di produzione, l'uso di certificati X.509 è il meccanismo di autenticazione dei dispositivi consigliato per IoT Central. Per altre informazioni, vedere Autenticazione dei dispositivi con i certificati della CA X.509.
Un gruppo di registrazioni X.509 contiene un certificato X.509 radice o intermedio. I dispositivi possono eseguire l'autenticazione se hanno un certificato foglia valido derivato dal certificato radice o intermedio.
Per connettere un dispositivo con un certificato X.509 all'applicazione:
- Creare un gruppo di registrazioni che usa il tipo di attestazione Certificati (X.509).
- Aggiungere e verificare un certificato X.509 intermedio o radice nel gruppo di registrazione.
- Generare un certificato foglia dal certificato radice o intermedio nel gruppo di registrazione. Installare il certificato foglia nel dispositivo da usare quando si connette all'applicazione.
Ogni gruppo di registrazioni deve usare un certificato X.509 univoco. IoT Central non supporta l'uso dello stesso certificato X.509 tra più gruppi di registrazione.
Per altre informazioni, vedere Come connettere i dispositivi con certificati X.509
Solo a scopo di test
In un ambiente di produzione usare i certificati del provider di certificati. Solo per i test, è possibile usare le utilità seguenti per generare il certificato radice, intermedio e del dispositivo:
- Strumenti per Azure IoT SDK Device Provisioning Device: una raccolta di strumenti Node.js che è possibile usare per generare e verificare certificati X.509 e chiavi.
- Gestire i certificati della CA di test per esempi ed esercitazioni: una raccolta di script di PowerShell e Bash per:
- Creare una catena di certificati.
- Salvare i certificati come file con estensione cer da caricare nell'applicazione IoT Central.
- Usare il codice di verifica dell'applicazione IoT Central per generare il certificato di verifica.
- Creare certificati foglia per i dispositivi usando gli ID dispositivo come parametro per lo strumento.
Gruppo di registrazione della firma di accesso condiviso
Un gruppo di registrazione sas contiene chiavi di firma di accesso condiviso a livello di gruppo. I dispositivi possono eseguire l'autenticazione se hanno un token di firma di accesso condiviso valido derivato da una chiave di firma di accesso condiviso a livello di gruppo.
Per connettere un dispositivo con token di firma di accesso condiviso del dispositivo all'applicazione:
Creare un gruppo di registrazioni che usa il tipo di attestazione firma di accesso condiviso .
Copiare la chiave primaria o secondaria del gruppo di registrazione.
Usare l'interfaccia della riga di comando di Azure per generare un token del dispositivo dalla chiave di gruppo:
az iot central device compute-device-key --primary-key <enrollment group primary key> --device-id <device ID>
Usare il token del dispositivo generato quando il dispositivo si connette all'applicazione IoT Central.
Nota
Per usare le chiavi di firma di accesso condiviso esistenti nei gruppi di registrazione, disabilitare l'interruttore Genera automaticamente le chiavi e immettere manualmente le chiavi di firma di accesso condiviso.
Se si usa il gruppo di registrazione SAS-IoT-Devices predefinito, IoT Central genera automaticamente le singole chiavi del dispositivo. Per accedere a queste chiavi, selezionare Connetti nella pagina dei dettagli del dispositivo. In questa pagina vengono visualizzati l'ambito ID, l'ID dispositivo, la chiave primaria e la chiave secondaria usati nel codice del dispositivo. Questa pagina visualizza anche un codice a matrice che contiene gli stessi dati.
Registrazione individuale
In genere, i dispositivi si connettono usando credenziali derivate da un certificato X.509 o da una chiave di firma di accesso condiviso del gruppo di registrazione. Tuttavia, se i dispositivi hanno le proprie credenziali, è possibile usare le singole registrazioni. Una registrazione singola è una voce per un singolo dispositivo a cui è consentito connettersi. Le registrazioni singole possono usare sia certificati foglia X.509 che token di firma di accesso condiviso (da un TPM fisico o virtuale) come meccanismo di attestazione. Per altre informazioni, vedere Registrazione singola DPS.
Nota
Quando si crea una registrazione singola per un dispositivo, ha la precedenza sulle opzioni predefinite del gruppo di registrazione nell'applicazione IoT Central.
Creare registrazioni singole
IoT Central supporta i meccanismi di attestazione seguenti per le registrazioni individuali:
Attestazione con chiave simmetrica: L'attestazione con chiave simmetrica costituisce un approccio semplice per autenticare un dispositivo con l'istanza DPS. Per creare una registrazione singola che usa chiavi simmetriche, aprire la pagina Connessione del dispositivo per il dispositivo, selezionare Registrazione singola come tipo di autenticazione e Firma di accesso condiviso come metodo di autenticazione. Immettere le chiavi primarie e secondarie con codifica Base64 e salvare le modifiche. Usare Ambito ID, ID dispositivo e la chiave primaria o secondaria per connettere il dispositivo.
Suggerimento
Per il test, è possibile usare OpenSSL per generare chiavi con codifica Base64:
openssl rand -base64 64
Certificati X.509: Per creare una registrazione singola con certificati X.509, aprire la pagina Connessione dispositivo, selezionare Registrazione singola come tipo di autenticazione e Certificati (X.509) come metodo di autenticazione. I certificati del dispositivo usati con una voce di registrazione singola hanno un requisito per cui l'autorità di certificazione e l'oggetto CN devono essere impostati sull'ID dispositivo.
Suggerimento
Per il test, è possibile usare Strumenti per Azure IoT SDK Device Provisioning Device per Node.js per generare un certificato autofirmato:
node create_test_cert.js device "mytestdevice"
Attestazione TPM (Trusted Platform Module): Un TPM è un tipo di modulo di protezione hardware. L'uso di un TPM è uno dei modi più sicuri per connettere un dispositivo. Questo articolo presuppone che l'utente usi un TPM discreto, firmware o integrato. I TPM emulati dal software sono ideali per la creazione di prototipi o i test, ma non forniscono lo stesso livello di sicurezza di un TPM discreto, firmware o integrato. Non usare TPM software nell'ambiente di produzione. Per creare una registrazione singola che usa un TPM, aprire la pagina Connessione dispositivo , selezionare Registrazione singola come tipo di autenticazione e TPM come metodo di autenticazione. Immettere la chiave di verifica dell'autenticità del TPM e salvare le informazioni di connessione del dispositivo.
Registrare automaticamente i dispositivi
Questo scenario consente agli OEM di produrre dispositivi di massa che possono connettersi senza prima essere registrati in un'applicazione. Un OEM genera le credenziali del dispositivo appropriate e configura i dispositivi nello stabilimento.
Per registrare automaticamente i dispositivi che usano certificati X.509:
Generare i certificati foglia per i dispositivi usando il certificato radice o intermedio aggiunto al gruppo di registrazione X.509. Usare gli ID dispositivo come
CNAME
nei certificati foglia. Un ID dispositivo può contenere lettere, numeri e il carattere-
.Come OEM, eseguire il flashing di ogni dispositivo con un ID dispositivo, un certificato foglia X.509 generato e il valore dell'ambito ID applicazione. Il codice del dispositivo deve anche inviare l'ID del modello che implementa.
Quando si accende un dispositivo, questo si connette prima di tutto al servizio Device Provisioning per recuperare le informazioni di connessione IoT Central.
Il dispositivo usa le informazioni dal servizio Device Provisioning per connettersi e registrarsi nell'applicazione IoT Central.
L'applicazione IoT Central usa l'ID modello inviato dal dispositivo per assegnare il dispositivo registrato a un modello di dispositivo.
Per registrare automaticamente i dispositivi che usano token di firma di accesso condiviso:
Copiare la chiave primaria del gruppo dal gruppo di registrazione SAS-IoT-Devices :
Usare il
az iot central device compute-device-key
comando per generare le chiavi di firma di accesso condiviso del dispositivo. Usare la chiave primaria del gruppo del passaggio precedente. L'ID dispositivo può contenere lettere, numeri e il-
carattere:az iot central device compute-device-key --primary-key <enrollment group primary key> --device-id <device ID>
Come OEM, eseguire il flashing di ogni dispositivo con l'ID dispositivo, la chiave di firma di accesso condiviso del dispositivo generato e il valore dell'ambito ID applicazione. Il codice del dispositivo deve anche inviare l'ID del modello che implementa.
Quando si accende un dispositivo, questo si connette prima di tutto a DPS per recuperare le informazioni di registrazione IoT Central.
Il dispositivo usa le informazioni dal servizio Device Provisioning per connettersi e registrarsi nell'applicazione IoT Central.
L'applicazione IoT Central usa l'ID modello inviato dal dispositivo per assegnare il dispositivo registrato a un modello di dispositivo.
Passaggi successivi
Alcuni passaggi successivi suggeriti sono:
- Esaminare le procedure consigliate per lo sviluppo di dispositivi.
- Esaminare un codice di esempio che illustra come usare i token di firma di accesso condiviso in Esercitazione: Creare e connettere un'applicazione client all'applicazione Azure IoT Central
- Informazioni su come connettere i dispositivi con certificati X.509 usando Node.js SDK per dispositivi per l'applicazione IoT Central
- Vedere Monitorare la connettività dei dispositivi con l'interfaccia della riga di comando di Azure
- Informazioni sui dispositivi Azure IoT Edge e su Azure IoT Central