Condividi tramite


Creare ed effettuare il provisioning di un dispositivo IoT Edge in Windows usando certificati X.509

Si applicaall'icona:sì IoT Edge 1.1

Importante

IoT Edge 1.1 data di fine del supporto è stata il 13 dicembre 2022. Controlla il ciclo di vita dei prodotti Microsoft per ottenere informazioni sul modo in cui viene supportato questo prodotto, servizio, tecnologia o API. Per altre informazioni sull'aggiornamento alla versione più recente di IoT Edge, vedere Aggiornare IoT Edge.

Questo articolo fornisce istruzioni end-to-end per la registrazione e il provisioning di un dispositivo Windows IoT Edge.

Nota

Azure IoT Edge con contenitori Windows non sarà supportato a partire dalla versione 1.2 di Azure IoT Edge.

È consigliabile usare il nuovo metodo per l'esecuzione di IoT Edge nei dispositivi Windows, Azure IoT Edge per Linux in Windows.

Se si vuole usare Azure IoT Edge per Linux in Windows, è possibile seguire la procedura descritta nella guida pratica equivalente.

Ogni dispositivo che si connette a un hub IoT ha un ID dispositivo usato per tenere traccia delle comunicazioni da cloud a dispositivo o da dispositivo a cloud. Configurare un dispositivo con le informazioni di connessione, che include il nome host dell'hub IoT, l'ID dispositivo e le informazioni usate dal dispositivo per l'autenticazione per hub IoT.

I passaggi descritti in questo articolo illustrano un processo denominato provisioning manuale, in cui si connette un singolo dispositivo all'hub IoT. Per il provisioning manuale, sono disponibili due opzioni per l'autenticazione dei dispositivi IoT Edge:

  • Chiavi simmetriche: quando si crea una nuova identità del dispositivo in hub IoT, il servizio crea due chiavi. Posizionare una delle chiavi nel dispositivo e presenta la chiave per hub IoT durante l'autenticazione.

    Questo metodo di autenticazione è più rapido per iniziare, ma non come sicuro.

  • X.509 autofirmato: si creano due certificati di identità X.509 e li si inserisce nel dispositivo. Quando si crea una nuova identità del dispositivo in hub IoT, si forniscono identificazioni personali da entrambi i certificati. Quando il dispositivo esegue l'autenticazione per hub IoT, presenta un certificato e hub IoT verifica che il certificato corrisponda all'identificazione personale.

    Questo metodo di autenticazione è più sicuro e consigliato per gli scenari di produzione.

Questo articolo illustra l'uso di certificati X.509 come metodo di autenticazione. Per usare chiavi simmetriche, vedere Creare ed effettuare il provisioning di un dispositivo IoT Edge in Windows usando chiavi simmetriche.

Nota

Se sono presenti molti dispositivi da configurare e non si vuole effettuarne manualmente il provisioning, usare uno degli articoli seguenti per informazioni sul funzionamento di IoT Edge con il servizio di provisioning di dispositivi hub IoT:

Prerequisiti

Questo articolo illustra la registrazione del dispositivo IoT Edge e l'installazione di IoT Edge su di esso. Queste attività hanno prerequisiti e utilità diversi usati per eseguirle. Assicurarsi di disporre di tutti i prerequisiti coperti prima di procedere.

Strumenti di gestione dei dispositivi

È possibile usare il portale di Azure, Visual Studio Code o l'interfaccia della riga di comando di Azure per la procedura per registrare il dispositivo. Ogni utilità ha i propri prerequisiti:

Un hub IoT gratuito o standard nella sottoscrizione di Azure.

Requisiti dei dispositivi

Un dispositivo Windows.

IoT Edge con i contenitori di Windows richiede windows versione 1809/build 17763, che è la build di supporto a lungo termine di Windows più recente. Assicurarsi di esaminare l'elenco dei sistemi supportati per un elenco di SKU supportati.

Generare certificati di identità del dispositivo

Il provisioning manuale con certificati X.509 richiede IoT Edge versione 1.0.10 o successiva.

Quando si effettua il provisioning di un dispositivo IoT Edge con certificati X.509, si usa il cosiddetto certificato di identità del dispositivo. Questo certificato viene usato solo per il provisioning di un dispositivo IoT Edge e l'autenticazione del dispositivo con hub IoT di Azure. Si tratta di un certificato foglia che non firma altri certificati. Il certificato di identità del dispositivo è separato dai certificati dell'autorità di certificazione (CA) presentati dal dispositivo IoT Edge ai moduli o ai dispositivi downstream per la verifica.

Per l'autenticazione del certificato X.509, le informazioni di autenticazione di ogni dispositivo vengono fornite sotto forma di identificazioni personali ottenute dai certificati di identità del dispositivo. Queste identificazioni personali vengono date a hub IoT al momento della registrazione del dispositivo in modo che il servizio possa riconoscere il dispositivo quando si connette.

Per altre informazioni sull'uso dei certificati DELLA CA nei dispositivi IoT Edge, vedere Informazioni su come Azure IoT Edge usa i certificati.

Sono necessari i file seguenti per il provisioning manuale con X.509:

  • Due certificati di identità del dispositivo con i certificati di chiave privata corrispondenti nei formati cer o pem.

    Un set di file di certificato/chiave viene fornito al runtime di IoT Edge. Quando si creano certificati di identità del dispositivo, impostare il nome comune del certificato con l'ID dispositivo che si vuole che il dispositivo abbia nell'hub IoT.

  • Identificazioni personali ottenute da entrambi i certificati di identità del dispositivo.

    I valori di identificazione personale sono di 40 caratteri esadecimali per hash SHA-1 o 64 caratteri esadecimali per hash SHA-256. Entrambe le identificazioni personali vengono fornite per hub IoT al momento della registrazione del dispositivo.

Se non sono disponibili certificati, è possibile creare certificati demo per testare IoT Edge funzionalità del dispositivo. Seguire le istruzioni riportate in questo articolo per configurare gli script di creazione dei certificati, creare un certificato CA radice e quindi creare due certificati di identità del dispositivo IoT Edge.

Un modo per recuperare l'identificazione personale da un certificato consiste nel comando openssl seguente:

openssl x509 -in <certificate filename>.pem -text -fingerprint

Registrazione del dispositivo

È possibile usare il portale di Azure, Visual Studio Code o l'interfaccia della riga di comando di Azure per registrare il dispositivo, a seconda delle preferenze.

Nell'hub IoT nell'portale di Azure, i dispositivi IoT Edge vengono creati e gestiti separatamente dai dispositivi IoT non abilitati per dispositivi perimetrali.

  1. Accedere al portale di Azure e passare all'hub IoT.

  2. Nel riquadro sinistro selezionare Dispositivi dal menu, quindi selezionare Aggiungi dispositivo.

  3. Nella pagina Crea un dispositivo specificare le informazioni seguenti:

    • Creare un ID dispositivo descrittivo. Prendere nota di questo ID dispositivo, perché verrà usato in un secondo momento.
    • Selezionare la casella di controllo IoT Edge Dispositivo.
    • Selezionare X.509 autofirmato come tipo di autenticazione.
    • Specificare le identificazioni personali del certificato di identità primaria e secondaria. I valori di identificazione personale sono di 40 caratteri esadecimali per hash SHA-1 o 64 caratteri esadecimali per hash SHA-256.
  4. Selezionare Salva.

Dopo aver registrato un dispositivo in hub IoT, recuperare le informazioni usate per completare l'installazione e il provisioning del runtime di IoT Edge.

Visualizzare i dispositivi registrati e recuperare le informazioni di provisioning

I dispositivi che usano l'autenticazione del certificato X.509 richiedono il nome dell'hub IoT, il nome del dispositivo e i relativi file di certificato per completare l'installazione e il provisioning del runtime IoT Edge.

I dispositivi abilitati per dispositivi perimetrali che si connettono all'hub IoT sono elencati nella pagina Dispositivi . È possibile filtrare l'elenco in base al tipo Dispositivo Iot Edge.

Screenshot di come visualizzare tutti i dispositivi IoT Edge nell'hub IoT.

Installare IoT Edge

In questa sezione si prepara la macchina virtuale Windows o il dispositivo fisico per IoT Edge. Installare quindi IoT Edge.

Azure IoT Edge si basa su un runtime per contenitori compatibile con OCI. Moby, un motore basato su Moby, è incluso nello script di installazione, il che significa che non ci sono passaggi aggiuntivi per installare il motore.

Per installare il runtime di IoT Edge:

  1. Eseguire PowerShell come amministratore.

    Usare una sessione AMD64 di PowerShell, non PowerShell(x86). Se non si è certi del tipo di sessione in uso, eseguire il comando seguente:

    (Get-Process -Id $PID).StartInfo.EnvironmentVariables["PROCESSOR_ARCHITECTURE"]
    
  2. Eseguire il comando Deploy-IoTEdge , che esegue le attività seguenti:

    • Verifica che il computer Windows sia in una versione supportata
    • Attiva la funzionalità contenitori
    • Scarica il motore moby e il runtime di IoT Edge
    . {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; `
    Deploy-IoTEdge
    
  3. Riavviare il dispositivo, se richiesto.

Quando si installa IoT Edge in un dispositivo, è possibile usare parametri aggiuntivi per modificare il processo, tra cui:

  • Indirizzare il traffico attraverso un server proxy
  • Puntare il programma di installazione a una directory locale per l'installazione offline

Per altre informazioni su questi parametri aggiuntivi, vedere Script di PowerShell per IoT Edge con i contenitori di Windows.

Effettuare il provisioning del dispositivo con la relativa identità cloud

Ora che il motore del contenitore e il runtime di IoT Edge sono installati nel dispositivo, si è pronti per il passaggio successivo, che consiste nel configurare il dispositivo con le relative informazioni di autenticazione e identità cloud.

  1. Nel dispositivo IoT Edge eseguire PowerShell come amministratore.

  2. Usare il comando Initialize-IoTEdge per configurare il runtime IoT Edge nel computer.

    . {Invoke-WebRequest -useb https://aka.ms/iotedge-win} | Invoke-Expression; `
    Initialize-IoTEdge -ManualX509
    
    • Se il IoTEdgeSecurityDaemon.ps1 script è stato scaricato nel dispositivo per l'installazione offline o specifica della versione, assicurarsi di fare riferimento alla copia locale dello script.

      . <path>/IoTEdgeSecurityDaemon.ps1
      Initialize-IoTEdge -ManualX509
      
  3. Quando richiesto, specificare le informazioni seguenti:

    • IotHubHostName: nome host dell'hub IoT a cui si connetterà il dispositivo. Ad esempio, {IoT_hub_name}.azure-devices.net.
    • DeviceId: ID specificato al momento della registrazione del dispositivo.
    • X509IdentityCertificate: percorso assoluto di un certificato di identità nel dispositivo. Ad esempio, C:\path\identity_certificate.pem.
    • X509IdentityPrivateKey: percorso assoluto del file di chiave privata per il certificato di identità specificato. Ad esempio, C:\path\identity_key.pem.

Quando si effettua manualmente il provisioning di un dispositivo, è possibile usare parametri aggiuntivi per modificare il processo, tra cui:

  • Indirizzare il traffico attraverso un server proxy
  • Dichiarare un'immagine del contenitore edgeAgent specifica e specificare le credenziali se si trova in un registro privato

Per altre informazioni su questi parametri aggiuntivi, vedere Script di PowerShell per IoT Edge con i contenitori di Windows.


Verificare la corretta configurazione

Verificare che il runtime sia stato installato e configurato correttamente nel dispositivo IoT Edge.

Verificare lo stato del servizio IoT Edge.

Get-Service iotedge

Esaminare i log del servizio.

. {Invoke-WebRequest -useb aka.ms/iotedge-win} | Invoke-Expression; Get-IoTEdgeLog

Elencare i moduli in esecuzione.

iotedge list

Installazione della versione offline o specifica (facoltativa)

I passaggi descritti in questa sezione sono relativi agli scenari non coperti dai passaggi di installazione standard. Ciò può includere:

  • Installare IoT Edge offline
  • Installare una versione finale candidata
  • Installare una versione diversa dalla versione più recente

Durante l'installazione vengono scaricati tre file:

  • Uno script di PowerShell che contiene le istruzioni di installazione
  • Microsoft Azure IoT Edge cab, che contiene il daemon di sicurezza IoT Edge (iotedged), il motore del contenitore Moby e l'interfaccia della riga di comando di Moby
  • Programma di installazione di Visual C++ Redistributable Package (VC Runtime)

Se il dispositivo sarà offline durante l'installazione o se si vuole installare una versione specifica di IoT Edge, è possibile scaricare questi file in anticipo nel dispositivo. Quando è il momento di installare, puntare lo script di installazione nella directory che contiene i file scaricati. Il programma di installazione controlla prima la directory e quindi scarica solo i componenti che non vengono trovati. Se tutti i file sono disponibili offline, è possibile installare senza connessione Internet.

  1. Per i file di installazione IoT Edge più recenti insieme alle versioni precedenti, vedere Versioni di Azure IoT Edge.

  2. Trovare la versione che si vuole installare e scaricare i file seguenti dalla sezione Asset delle note sulla versione nel dispositivo IoT:

    • IoTEdgeSecurityDaemon.ps1
    • Microsoft-Azure-IoTEdge-amd64.cab dal canale di versione 1.1.

    È importante usare lo script di PowerShell dalla stessa versione del file .cab usato perché le funzionalità cambiano per supportare le funzionalità in ogni versione.

  3. Se nel file .cab scaricato è presente un suffisso dell'architettura, rinominare il file in Microsoft-Azure-IoTEdge.cab.

  4. Facoltativamente, scaricare un programma di installazione per Visual C++ redistributable. Ad esempio, lo script di PowerShell usa questa versione: vc_redist.x64.exe. Salvare il programma di installazione nella stessa cartella nel dispositivo IoT come file IoT Edge.

  5. Per eseguire l'installazione con i componenti offline, usare dot source la copia locale dello script di PowerShell.

  6. Eseguire il comando Deploy-IoTEdge con il -OfflineInstallationPath parametro . Specificare il percorso assoluto della directory del file. Ad esempio,

    . path_to_powershell_module_here\IoTEdgeSecurityDaemon.ps1
    Deploy-IoTEdge -OfflineInstallationPath path_to_file_directory_here
    

    Il comando di distribuzione userà tutti i componenti trovati nella directory di file locale fornita. Se manca il file .cab o il programma di installazione di Visual C++, tenterà di scaricarli.

Disinstallare IoT Edge

Se si vuole rimuovere l'installazione IoT Edge dal dispositivo Windows, usare il comando Uninstall-IoTEdge da una finestra amministrativa di PowerShell. Questo comando rimuove il runtime di IoT Edge, insieme alla configurazione esistente e ai dati del motore Moby.

. {Invoke-WebRequest -useb aka.ms/iotedge-win} | Invoke-Expression; `
Uninstall-IoTEdge

Per altre informazioni sulle opzioni di disinstallazione, usare il comando Get-Help Uninstall-IoTEdge -full.

Passaggi successivi

Continuare a distribuire moduli IoT Edge per informazioni su come distribuire moduli nel dispositivo.