Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: IoT Edge 1.5
Importante
IoT Edge 1.5 LTS è la versione supportata. IoT Edge 1.4 LTS è di fine vita a partire dal 12 novembre 2024. Se si usa una versione precedente, vedere Aggiornare IoT Edge.
In uno scenario gateway trasparente, i dispositivi downstream, talvolta denominati dispositivi figlio, necessitano di identità nell'hub IoT come qualsiasi altro dispositivo. Questo articolo illustra le opzioni per l'autenticazione di un dispositivo downstream nell'hub IoT e illustra come dichiarare la connessione gateway.
Nota
Un dispositivo downstream invia i dati direttamente a Internet o ai dispositivi gateway, indipendentemente dal fatto che siano abilitati o meno per IoT Edge. Un dispositivo figlio può essere un dispositivo downstream o un dispositivo gateway in una topologia annidata.
Ci sono tre passaggi generali per configurare correttamente una connessione gateway trasparente. Questo articolo illustra il secondo passaggio:
- Configurare il dispositivo gateway come server in modo che i dispositivi downstream possano connettersi in modo sicuro. Configurare il gateway per ricevere messaggi dai dispositivi downstream e instradarli alla destinazione corretta. Per questi passaggi, vedere Configurare un dispositivo IoT Edge in modo che funga da gateway trasparente.
- Creare un'identità del dispositivo per il dispositivo downstream in modo che possa eseguire l'autenticazione con l'hub IoT. Configurare il dispositivo downstream per inviare messaggi tramite il dispositivo gateway.
- Connettere il dispositivo downstream al dispositivo gateway e iniziare a inviare messaggi. Per questi passaggi, vedere Connettere un dispositivo downstream a un gateway Azure IoT Edge.
I dispositivi downstream possono eseguire l'autenticazione con l'hub IoT usando uno dei tre metodi seguenti: chiavi simmetriche (talvolta denominate chiavi di accesso condiviso), certificati X.509 autofirmato o certificati firmati dall'autorità di certificazione X.509. I passaggi di autenticazione sono simili a quelli per la configurazione di qualsiasi dispositivo non IoT Edge con l'hub IoT, con piccole differenze per dichiarare la relazione tra gateway.
Il provisioning automatico dei dispositivi downstream con il Servizio di Provisioning dei Dispositivi di Azure IoT Hub (DPS) non è supportato.
Prerequisiti
Completare i passaggi descritti in Configurare un dispositivo IoT Edge per fungere da gateway trasparente.
Se si usa l'autenticazione X.509, generare certificati per il dispositivo downstream. Assicurati di avere lo stesso certificato CA radice e lo script di generazione del certificato usato nell'articolo Transparent Gateway.
Questo articolo si riferisce al nome host del gateway in diversi punti. Il nome host del gateway viene impostato nel parametro hostname del file di configurazione nel dispositivo gateway IoT Edge. Viene usato anche nella stringa di connessione del dispositivo downstream. Il nome host del gateway deve essere risolto in un indirizzo IP usando DNS o una voce di file host nel dispositivo downstream.
Registrare un dispositivo con l'hub IoT
Scegliere la modalità di autenticazione del dispositivo downstream con l'hub IoT:
Autenticazione con chiave simmetrica: l'hub IoT crea una chiave inserita nel dispositivo downstream. Quando il dispositivo esegue l'autenticazione, l'hub IoT verifica che le due chiavi corrispondano. Non è necessario creare certificati aggiuntivi per usare l'autenticazione con chiave simmetrica.
Questo metodo è più rapido per iniziare a testare i gateway in uno scenario di sviluppo o di test.
Autenticazione autofirmata X.509: talvolta denominata autenticazione di identificazione personale, perché si condivide l'identificazione personale dal certificato X.509 del dispositivo con l'hub IoT.
L'autenticazione del certificato è consigliata per i dispositivi negli scenari di produzione.
Autenticazione con firma CA X.509: caricare il certificato della CA radice nell'hub IoT. Quando i dispositivi presentano il certificato X.509 per l'autenticazione, l'hub IoT verifica che appartenga a una catena di attendibilità firmata dallo stesso certificato della CA radice.
L'autenticazione del certificato è consigliata per i dispositivi negli scenari di produzione.
Autenticazione con chiavi simmetriche
L'autenticazione tramite chiave simmetrica, o autenticazione tramite chiave di accesso condiviso, è il modo più semplice per eseguire l'autenticazione nell'hub IoT. Con l'autenticazione tramite chiave simmetrica, una chiave Base64 viene associata all'ID dispositivo IoT nell'hub IoT. Questa chiave viene inclusa nelle applicazioni IoT, in modo che il dispositivo possa presentarla quando si connette all'hub IoT.
Aggiungere un nuovo dispositivo IoT nell'hub IoT usando il portale di Azure, l'interfaccia della riga di comando di Azure o l'estensione IoT per Visual Studio Code. Tenere presente che i dispositivi downstream devono essere identificati nell'hub IoT come normali dispositivi IoT, non come dispositivi IoT Edge.
Quando si crea la nuova identità del dispositivo, fornire le informazioni seguenti:
Creare un ID per il dispositivo.
Selezionare Chiave simmetrica come tipo di autenticazione.
Selezionare Imposta un dispositivo principale e selezionare il dispositivo gateway IoT Edge a cui si connette il dispositivo a valle. È sempre possibile modificare l’elemento padre in un secondo momento.
Nota
L’impostazione del dispositivo padre usato per essere un passaggio facoltativo per i dispositivi downstream che usano l'autenticazione con chiave simmetrica. Tuttavia, a partire da IoT Edge versione 1.1.0 ogni dispositivo downstream deve essere assegnato a un dispositivo padre.
È possibile configurare l'hub IoT Edge per tornare al comportamento precedente impostando la variabile di ambiente AuthenticationMode sul valore CloudAndScope.
Inoltre, è possibile usare l'estensione IoT per l'interfaccia della riga di comando di Azure per completare la stessa operazione. L'esempio seguente usa il comando di az iot hub device-identity per creare un nuovo dispositivo IoT con autenticazione con chiave simmetrica e assegnare un dispositivo padre:
az iot hub device-identity create -n {iothub name} -d {new device ID} --device-scope {deviceScope of parent device}
Suggerimento
È possibile elencare le proprietà del dispositivo, incluso l'ambito del dispositivo usando az iot hub device-identity list --hub-name {iothub name}
.
Successivamente, recuperare e modificare la stringa di connessione in modo che il dispositivo disponga delle informazioni per la connessione tramite il gateway.
Autenticazione autofirmata X.509
Per l'opzione di autenticazione autofirmata X.509, detta anche autenticazione tramite identificazione personale, è necessario creare certificati da inserire nel dispositivo downstream. Questi certificati hanno un'identificazione personale che viene condivisa con l'hub IoT per l'autenticazione.
Usando il certificato della CA, creare due certificati del dispositivo (primario e secondario) per il dispositivo downstream.
Se non si dispone di un'autorità di certificazione per creare certificati X.509, è possibile usare gli script di certificato demo di IoT Edge per Creare certificati di dispositivo downstream. Seguire la procedura per la creazione di certificati autofirmati. Usare lo stesso certificato della CA radice che ha generato i certificati per il dispositivo gateway.
Se si creano certificati personalizzati, assicurarsi che il nome soggetto del certificato del dispositivo sia impostato sull'ID dispositivo che si userà per la registrazione del dispositivo IoT nell'hub IoT di Azure. Questa impostazione è obbligatoria per l'autenticazione.
Recuperare l'impronta digitale SHA1 (detta identificazione personale nell'interfaccia dell'hub IoT) di ogni certificato, costituita da una stringa esadecimale di 40 caratteri. Usare il comando OpenSSL seguente per visualizzare il certificato e trovare l'impronta digitale:
Finestre:
openssl x509 -in <path to primary device certificate>.cert.pem -text -fingerprint
Linux:
openssl x509 -in <path to primary device certificate>.cert.pem -text -fingerprint | sed 's/[:]//g'
Eseguire questo comando due volte, una volta per il certificato primario e una per il certificato secondario. Si forniscono le impronte digitali per entrambi i certificati quando si registra un nuovo dispositivo IoT usando certificati X.509 autofirmati.
Passare all'hub IoT nel portale di Azure e creare una nuova identità del dispositivo IoT con i valori seguenti:
- Fornire l'ID dispositivo corrispondente al nome soggetto dei certificati del dispositivo.
- Selezionare X.509 autofirmato come tipo di autenticazione.
- Incollare le stringhe esadecimali copiate dai certificati primario e secondario del dispositivo.
- Selezionare Imposta un dispositivo principale e scegliere il dispositivo di gateway IoT Edge attraverso cui si collega il dispositivo downstream. È sempre possibile modificare l’elemento padre in un secondo momento.
Copiare i certificati del dispositivo primario e secondario e le relative chiavi in qualsiasi posizione nel dispositivo downstream. Spostare inoltre una copia del certificato CA radice condiviso che ha generato sia il certificato del dispositivo gateway che i certificati dei dispositivi downstream.
Si farà riferimento a questi file di certificato in tutte le applicazioni nei dispositivi downstream che si connettono all'hub IoT. È possibile usare un servizio come Azure Key Vault o una funzione come il protocollo Secure Copy per spostare i file di certificato.
A seconda del linguaggio preferito, vedere gli esempi di come fare riferimento ai certificati X.509 nelle applicazioni IoT:
Inoltre, è possibile usare l'estensione IoT per l'interfaccia della riga di comando di Azure per completare la stessa operazione di creazione del dispositivo. L'esempio seguente usa il comando di az iot hub device-identity per creare un nuovo dispositivo IoT con l'opzione di autenticazione autofirmata X.509 dall'Autorità di certificazione e assegna un dispositivo padre:
az iot hub device-identity create -n {iothub name} -d {device ID} --device-scope {deviceScope of gateway device} --am x509_thumbprint --ptp {primary thumbprint} --stp {secondary thumbprint}
Suggerimento
È possibile elencare le proprietà del dispositivo, incluso l'ambito del dispositivo usando az iot hub device-identity list --hub-name {iothub name}
.
Successivamente, recuperare e modificare la stringa di connessione in modo che il dispositivo disponga delle informazioni per la connessione tramite il gateway.
Autenticazione con firma CA X.509
Per l'opzione di autenticazione X.509 firmato dall'Autorità di certificazione, è necessario un certificato della CA radice registrato nell'hub IoT che si usa per firmare i certificati per il dispositivo downstream. Tutti i dispositivi che usano un certificato che è stato emesso dal certificato CA radice o da uno dei relativi certificati intermedi possono eseguire l'autenticazione.
Per un'introduzione all'uso dei certificati della CA X.509 per l'autenticazione nell'hub IoT, vedere i vantaggi dell'autenticazione del certificato della CA X.509.
Per configurare l'autenticazione con firma CA X.509 per un dispositivo downstream, seguire questa procedura:
Ottenere un certificato della CA X.509 che è possibile usare per firmare i certificati per il dispositivo downstream. Per un esempio di come configurare l'autenticazione con firma CA X.509, vedere lo scenario di esempio seguente.
Creare una catena di certificati per il dispositivo downstream. Per altre informazioni, seguire la procedura descritta in Creare una CA subordinata.
Registrare il certificato della CA X.509 nell'hub IoT. Per ulteriori informazioni, seguire la procedura descritta in Registrare il certificato CA subordinato nello Hub IoT.
Copiare il certificato e le chiavi del dispositivo nel dispositivo downstream. Per altre informazioni, vedere Gestire i certificati IoT Edge.
Registrare il dispositivo con l'hub IoT per usare l'autenticazione firmata dalla CA X.509. Per altre informazioni, vedere Creare e gestire le identità dei dispositivi.
A seconda del linguaggio preferito, vedere gli esempi di come fare riferimento ai certificati X.509 nelle applicazioni IoT:
Recuperare e modificare la stringa di connessione
Dopo aver creato un'identità del dispositivo IoT nel portale, ottenere la relativa chiave primaria o secondaria. Aggiungere una di queste chiavi alla stringa di connessione usata dalle applicazioni per comunicare con l'hub IoT. Per l'autenticazione con chiave simmetrica, l'hub IoT mostra la stringa di connessione completa nei dettagli del dispositivo. Aggiungere le informazioni sul dispositivo gateway alla stringa di connessione.
Una stringa di connessione per un dispositivo downstream richiede queste parti:
- L'hub IoT a cui si connette il dispositivo:
Hostname=<Iot-Hub-Name>.azure-devices.net
- ID dispositivo registrato nell'hub:
DeviceID=<Device-ID>
- Metodo di autenticazione, chiave simmetrica o certificato X.509.
- Per l'autenticazione con chiave simmetrica, immettere la chiave primaria o secondaria:
SharedAccessKey=<Key>
- Per l'autenticazione del certificato X.509, specificare un flag:
x509=true
- Per l'autenticazione con chiave simmetrica, immettere la chiave primaria o secondaria:
- Il dispositivo gateway tramite cui si connette il dispositivo. Immettere il valore hostname dal file di configurazione del dispositivo gateway IoT Edge:
GatewayHostName=<Gateway-Hostname>
Una stringa di connessione completa è simile all'esempio seguente:
HostName=myiothub.azure-devices.net;DeviceId=myDownstreamDevice;SharedAccessKey=xxxyyyzzz;GatewayHostName=myGatewayDevice
In alternativa, per l'autenticazione del certificato X.509:
HostName=myiothub.azure-devices.net;DeviceId=myDownstreamDevice;x509=true;GatewayHostName=myGatewayDevice
A causa della relazione padre e figlio, è possibile semplificare la stringa di connessione usando il gateway direttamente come host di connessione. Ad esempio:
HostName=myGatewayDevice;DeviceId=myDownstreamDevice;SharedAccessKey=xxxyyyzzz
Usare questa stringa di connessione modificata nell'articolo successivo della serie di gateway trasparenti.
Passaggi successivi
A questo punto, si ha un dispositivo IoT Edge registrato con l'hub IoT e lo si configura come gateway trasparente. È anche disponibile un dispositivo downstream registrato con l'hub IoT e che punta al dispositivo gateway.
Configurare quindi il dispositivo downstream per considerare attendibile il dispositivo gateway e connettersi in modo sicuro. Continuare con l'articolo successivo della serie di gateway trasparenti: Connettere un dispositivo downstream a un gateway Azure IoT Edge.