Condividi tramite


Introduzione all'integrazione di ADR e alla gestione dei certificati X.509 supportata da Microsoft nell'hub IoT (anteprima)

Questo articolo illustra come creare un nuovo hub IoT con l'integrazione di Registro dispositivi di Azure e la gestione dei certificati X.509 supportata da Microsoft.

Importante

L'hub IoT di Azure con l'integrazione di ADR e la gestione dei certificati X.509 supportata da Microsoft è disponibile in anteprima pubblica e non è consigliata per i carichi di lavoro di produzione. Per altre informazioni, vedere domande frequenti: Novità dell'hub IoT.

Prerequisiti

  • Una sottoscrizione di Azure attiva. Se non hai una sottoscrizione di Azure, crea un account gratuito.

  • Se l'interfaccia della riga di comando di Azure non è installata, seguire la procedura per installare l'interfaccia della riga di comando di Azure.

  • Installare l'estensione CLI di Azure IoT con anteprime abilitate per accedere alle funzionalità di integrazione e gestione dei certificati per IoT Hub:

    1. Verificare la presenza di installazioni esistenti dell'estensione CLI di Azure.

      az extension list
      
    2. Rimuovere eventuali installazioni azure-iot esistenti.

      az extension remove --name azure-iot
      
    3. Installare l'estensione Azure-IoT dall'indice, con anteprime abilitate.

      az extension add --name azure-iot --allow-preview
      

      oppure scaricare il file con estensione whl dalla pagina delle versioni di GitHub per installare manualmente l'estensione.

      az extension add --upgrade --source https://github.com/Azure/azure-iot-cli-extension/releases/download/v0.30.0b1/azure_iot-0.30.0b1-py3-none-any.whl
      
    4. Dopo l'installazione, verificare che la versione dell'estensione azure-iot sia maggiore di 0.30.0b1.

      az extension list
      
  • Assicurarsi di avere il privilegio di eseguire assegnazioni di ruolo all'interno dell'ambito di destinazione. L'esecuzione di assegnazioni di ruolo in Azure richiede un ruolo con privilegi, ad esempio Proprietario o Amministratore accesso utenti nell'ambito appropriato.

Scegliere un metodo di distribuzione

Per usare la gestione dei certificati, è necessario configurare anche l'hub IoT, ADR e il servizio di provisioning dei dispositivi. Se si preferisce, è possibile scegliere di non abilitare la gestione dei certificati e configurare solo l'hub IoT con ADR.

Per configurare l'hub IoT con l'integrazione e la gestione dei certificati DIR, è possibile usare l'interfaccia della riga di comando di Azure o uno script che automatizza il processo di installazione.

Metodo di distribuzione Description
Selezionare Azure CLI nella parte superiore della pagina Usare l'interfaccia della riga di comando di Azure per creare un nuovo hub IoT, un'istanza del servizio Device Provisioning e uno spazio dei nomi ADR e configurare tutte le impostazioni necessarie.
Selezionare lo script di PowerShell nella parte superiore della pagina Usare uno script di PowerShell (solo Windows) per automatizzare la creazione di una nuova istanza di hub IoT, un'istanza del servizio Device Provisioning e uno spazio dei nomi ADR e configurare tutte le impostazioni necessarie.

Informazioni generali

Usare i comandi dell'interfaccia della riga di comando di Azure per creare un hub IoT con l'integrazione di AdR e la gestione dei certificati.

Il processo di installazione in questo articolo include i passaggi seguenti:

  1. Creare un gruppo di risorse
  2. Configurare i privilegi dell'app necessari
  3. Creare un'identità gestita assegnata dall'utente
  4. Creare uno spazio dei nomi ADR con identità gestita assegnata dal sistema
  5. Creare una credenziale (CA radice) e una politica (CA emittente) in quello spazio dei nomi
  6. Creare un Hub IoT (versione anteprima) con spazio dei nomi associato e identità gestita.
  7. Creare un servizio Device Provisioning con l'hub IoT collegato e lo spazio dei nomi
  8. Sincronizza le credenziali e i criteri (certificati CA) nello spazio dei nomi ADR
  9. Creare un gruppo di registrazione e associarlo alla tua politica per abilitare il provisioning dei certificati

Importante

Durante il periodo di anteprima, l'hub IoT con l'integrazione di AdR e le funzionalità di gestione dei certificati abilitate nell'hub IoT sono disponibili gratuitamente. Il servizio Device Provisioning (DPS) viene fatturato separatamente e non è incluso nell'offerta di anteprima. Per informazioni dettagliate sui prezzi del servizio di provisioning dei dispositivi (DPS), vedere Prezzi dell'Hub IoT di Azure.

Prepara il tuo ambiente

Per preparare l'ambiente per l'uso di Registro dispositivi di Azure, completare la procedura seguente:

  1. Aprire una finestra del terminale.

  2. Per accedere all'account Azure, eseguire az login.

  3. Per elencare tutte le sottoscrizioni e i tenant a cui si ha accesso, eseguire az account list.

  4. Se si ha accesso a più sottoscrizioni di Azure, impostare la sottoscrizione attiva in cui vengono creati i dispositivi IoT eseguendo il comando seguente.

    az account set --subscription "<your subscription name or ID>"
    
  5. Per visualizzare i dettagli dell'account corrente, eseguire az account show. Copiare entrambi i valori di seguito dall'output del comando e salvarli in un luogo sicuro.

    • Il GUID id. Questo valore viene usato per specificare l'ID sottoscrizione.
    • Il GUID tenantId. Questo valore viene usato per aggiornare le autorizzazioni usando l'ID tenant.

Configurare il gruppo di risorse, le autorizzazioni e l'identità gestita

Per creare un gruppo di risorse, un ruolo e le autorizzazioni per la soluzione IoT, seguire questa procedura:

  1. Creare un gruppo di risorse per il tuo ambiente.

    az group create --name <RESOURCE_GROUP_NAME> --location <REGION>
    
  2. Assegnare un ruolo Collaboratore all'hub IoT a livello di gruppo di risorse. Il AppId valore, ovvero l'ID principale per l'hub IoT, è 89d10474-74af-4874-99a7-c23c2f643083 lo stesso per tutte le app hub.

    az role assignment create --assignee "89d10474-74af-4874-99a7-c23c2f643083" --role "Contributor" --scope "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP_NAME>"
    
  3. Creare una nuova identità gestita assegnata dall'utente.Create a new user-assigned managed identity (UAMI).

    az identity create --name <USER_IDENTITY> --resource-group <RESOURCE_GROUP_NAME> --location <REGION>
    
  4. Recupera l'ID risorsa dell'identità gestita. È necessario l'ID risorsa per assegnare ruoli, configurare i criteri di accesso o collegare l'identità ad altre risorse.

    UAMI_RESOURCE_ID=$(az identity show --name <USER_IDENTITY> --resource-group <RESOURCE_GROUP_NAME> --query id -o tsv)
    

Creare un nuovo spazio dei nomi ADR

In questa sezione viene creato un nuovo spazio dei nomi ADR con un'identità gestita assegnata dal sistema. Questo processo genera automaticamente una credenziale CA radice e una policy CA emittente per lo spazio dei nomi. Per altre informazioni su come vengono usate le credenziali e i criteri per firmare i certificati foglia del dispositivo durante il provisioning, vedere Gestione certificati.

Annotazioni

Le credenziali sono facoltative. È anche possibile creare uno spazio dei nomi senza un'identità gestita omettendo i --enable-credential-policy flag e --policy-name .

  1. Creare un nuovo spazio dei nomi ADR. Lo spazio dei nomi name può contenere solo lettere minuscole e trattini ('-') al centro del nome, ma non all'inizio o alla fine. Ad esempio, il nome "msft-namespace" è valido.
    Il comando --enable-credential-policy crea le credenziali (CA radice) e i criteri predefiniti (CA emittente) per questo namespace. È possibile configurare il nome per questo criterio usando il --policy-name comando . Per impostazione predefinita, un criterio può rilasciare certificati con una validità di 30 giorni.

    az iot adr ns create --name <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME> --location <REGION> --enable-credential-policy true --policy-name <POLICY_NAME>
    

    Suggerimento

    Facoltativamente, è possibile creare un criterio personalizzato aggiungendo i --cert-subject parametri e --cert-validity-days . Per altre informazioni, vedere Creare un criterio personalizzato.

    Annotazioni

    La creazione dello spazio dei nomi DIR con identità gestita assegnata dal sistema potrebbe richiedere fino a 5 minuti.

  2. Verificare che sia stato creato lo spazio dei nomi con un'identità gestita attribuita automaticamente dal sistema o l'ID entità.

    az iot adr ns show --name <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME>
    
  3. Verificare che vengano creati una credenziale e una politica denominata.

    az iot adr ns credential show --namespace <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME>
    az iot adr ns policy show --namespace <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME> --name <POLICY_NAME>
    

    Annotazioni

    Se non è stato assegnato un nome di criterio, il criterio viene creato con il nome "default".

Assegnare il ruolo UAMI per accedere allo spazio dei nomi ADR

In questa sezione si assegna il ruolo Collaboratore del registro dispositivi di Azure all'identità gestita e lo si assegna allo spazio dei nomi. Questo ruolo personalizzato consente l'accesso completo ai dispositivi IoT all'interno dello spazio dei nomi ADR.

  1. Recuperare l'ID principale della Managed Identity Assegnata all'Utente. Questo ID è necessario per assegnare ruoli all'identità.

    UAMI_PRINCIPAL_ID=$(az identity show --name <USER_IDENTITY> --resource-group <RESOURCE_GROUP> --query principalId -o tsv)
    
  2. Recuperare l'ID risorsa dello spazio dei nomi ADR. Questo ID viene usato come ambito per l'assegnazione di ruolo.

    NAMESPACE_RESOURCE_ID=$(az iot adr ns show --name <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP> --query id -o tsv)
    
  3. Assegnare il ruolo Collaboratore registro dispositivi di Azure all'identità gestita. Questo ruolo concede all'identità gestita le autorizzazioni necessarie, limitato allo spazio dei nomi.

    az role assignment create --assignee $UAMI_PRINCIPAL_ID --role "a5c3590a-3a1a-4cd4-9648-ea0a32b15137" --scope $NAMESPACE_RESOURCE_ID
    

Creare un hub IoT con l'integrazione di ADR

  1. Creare un nuovo hub IoT collegato allo spazio dei nomi ADR e con l'UAMI creato in precedenza.

    az iot hub create --name <HUB_NAME> --resource-group <RESOURCE_GROUP> --location <HUB_LOCATION> --sku GEN2 --mi-user-assigned $UAMI_RESOURCE_ID --ns-resource-id $NAMESPACE_RESOURCE_ID --ns-identity-id $UAMI_RESOURCE_ID
    

    Importante

    Dato che l'hub IoT sarà individuabile pubblicamente come endpoint DNS, evitare di includere nel nome informazioni personali o sensibili.

  2. Verificare che l'hub IoT abbia l'identità corretta e le proprietà ADR configurate.

    az iot hub show --name <HUB_NAME> --resource-group <RESOURCE_GROUP> --query identity --output json
    

Assegnare ruoli dell'hub IoT per accedere allo spazio dei nomi ADR

  1. Recuperare l'ID principale dell'identità gestita dello spazio dei nomi di Azure Active Directory. Questa identità richiede le autorizzazioni per interagire con l'hub IoT.

    ADR_PRINCIPAL_ID=$(az iot adr ns show --name <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP> --query identity.principalId -o tsv)
    
  2. Recuperare l'ID risorsa dell'hub IoT. Questo ID viene usato come ambito per le assegnazioni di ruolo.

    HUB_RESOURCE_ID=$(az iot hub show --name <HUB_NAME> --resource-group <RESOURCE_GROUP> --query id -o tsv)
    
  3. Assegnare il ruolo "Collaboratore" all'altro account. Concede all'identità gestita dello spazio dei nomi ADR l'accesso come Collaboratore all'hub IoT. Questo ruolo consente un accesso ampio, inclusa la gestione delle risorse, ma non l'assegnazione di ruoli.

    az role assignment create --assignee $ADR_PRINCIPAL_ID --role "Contributor" --scope $HUB_RESOURCE_ID
    
  4. Assegnare il ruolo "Collaboratore registro hub IoT" all'identità ADR. In questo modo vengono concesse autorizzazioni più specifiche per gestire le identità dei dispositivi nell'hub IoT. Questo è essenziale per ADR per registrare e gestire i dispositivi nell'hub.

    az role assignment create --assignee $ADR_PRINCIPAL_ID --role "IoT Hub Registry Contributor" --scope $HUB_RESOURCE_ID
    

Creare un'istanza del servizio Device Provisioning con l'integrazione di ADR

  1. Creare una nuova istanza dps collegata allo spazio dei nomi ADR creato nelle sezioni precedenti. L'istanza DPS deve trovarsi nella stessa area dello spazio dei nomi ADR.

    az iot dps create --name <DPS_NAME> --resource-group <RESOURCE_GROUP> --location <LOCATION> --mi-user-assigned $UAMI_RESOURCE_ID --ns-resource-id $NAMESPACE_RESOURCE_ID --ns-identity-id $UAMI_RESOURCE_ID
    
  2. Verificare che il DPS disponga dell'identità corretta e delle proprietà ADR configurate.

    az iot dps show --name <DPS_NAME> --resource-group <RESOURCE_GROUP> --query identity --output json
    
  1. Collegare l'hub IoT al servizio Device Provisioning.

    az iot dps linked-hub create --dps-name <DPS_NAME> --resource-group <RESOURCE_GROUP> --hub-name <HUB_NAME>
    
  2. Verificare che l'hub IoT sia visualizzato nell'elenco degli hub collegati per il servizio di provisioning del dispositivo (Device Provisioning Service - DPS).

    az iot dps linked-hub list --dps-name <DPS_NAME> --resource-group <RESOURCE_GROUP>
    

Eseguire la sincronizzazione delle credenziali DIR

Sincronizzare le credenziali e i criteri con l'hub IoT. Questo passaggio garantisce che l'hub IoT registri i certificati della CA e consideri attendibili i certificati foglia rilasciati dai criteri configurati.

az iot adr ns credential sync --namespace <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP>

Convalidare il certificato della CA dell'hub

Verificare che l'hub IoT abbia registrato il certificato della CA.

az iot hub certificate list --hub-name <HUB_NAME> --resource-group <RESOURCE_GROUP>

Creare un'iscrizione nel DPS

Per effettuare il provisioning dei dispositivi usando i certificati foglia, creare un gruppo di registrazione nel servizio Device Provisioning (DPS) e assegnarlo ai criteri di credenziali appropriati con il parametro --credential-policy.

Il comando seguente crea un gruppo di registrazione, usando l'attestazione con chiave simmetrica per impostazione predefinita:

Annotazioni

Se è stato creato un criterio con un nome diverso da "default", assicurarsi di usare il nome del criterio dopo il --credential-policy parametro .

az iot dps enrollment-group create --dps-name <DPS_NAME> --resource-group <RESOURCE_GROUP> --enrollment-id <ENROLLMENT_ID> --credential-policy <POLICY_NAME>

L'hub IoT con l'integrazione e la gestione dei certificati DIR sono ora configurati e pronti per l'uso.

Comandi facoltativi

I comandi seguenti consentono di gestire gli spazi dei nomi di Active Directory, disabilitare i dispositivi, creare criteri personalizzati ed eliminare le risorse quando non sono più necessarie.

Gestire gli spazi dei nomi

  1. Elenca tutti i namespace nel tuo gruppo di risorse.

    az iot adr ns list --resource-group <RESOURCE_GROUP_NAME>
    
  2. Mostra i dettagli di uno spazio dei nomi specifico.

    az iot adr ns show --name <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME>
    
  3. Elenca tutti i criteri nello spazio dei nomi.

    az iot adr ns policy list --namespace <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME>
    
  4. Mostra i dettagli di un criterio specifico.

    az iot adr ns policy show --namespace <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME> --name <POLICY_NAME>
    
  5. Elencare tutte le credenziali nel tuo spazio dei nomi.

    az iot adr ns credential list --namespace <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME>
    

Disabilitare i dispositivi

  1. Elencare tutti i dispositivi nell'hub IoT.

    az iot hub device-identity list --hub-name <HUB_NAME> --resource-group <RESOURCE_GROUP_NAME>
    
  2. Disabilitare un dispositivo aggiornandone lo stato a disabled. Assicurarsi di sostituire <MY_DEVICE_ID> con l'ID dispositivo da disabilitare.

    az iot hub device-identity update --hub-name <HUB_NAME> --resource-group <RESOURCE_GROUP_NAME> -d <MY_DEVICE_ID> --status disabled
    
  3. Eseguire di nuovo il dispositivo e verificare che non sia in grado di connettersi a un hub IoT.

Creare criteri personalizzati

Creare un criterio personalizzato usando il az iot adr ns policy create comando . Impostare il nome, l'oggetto del certificato e il periodo di validità per il criterio secondo le seguenti regole:

  • Il valore del criterio name deve essere univoco all'interno dello spazio dei nomi . Se si tenta di creare un criterio con un nome già esistente, viene visualizzato un messaggio di errore.
  • Il valore del soggetto cert-subject del certificato deve essere univoco per tutti i criteri nello spazio dei nomi. Se si tenta di creare un criterio con un oggetto già esistente, viene visualizzato un messaggio di errore.
  • Il valore del periodo cert-validity-days di validità deve essere compreso tra 1 e 30 giorni. Se si tenta di creare un criterio con un periodo di validità esterno a questo intervallo, viene visualizzato un messaggio di errore.

L'esempio seguente crea un criterio denominato "custom-policy" con un oggetto "CN=TestDevice" e un periodo di validità di 30 giorni.

az iot adr ns policy create --name "custom-policy" --namespace <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME> --cert-subject "CN=TestDevice" --cert-validity-days "30"

Eliminare risorse

Per eliminare lo spazio dei nomi ADR, è prima necessario eliminare tutti gli hub IoT e le istanze del servizio Device Provisioning collegati allo spazio dei nomi.

az iot hub delete --name <HUB_NAME> --resource-group <RESOURCE_GROUP_NAME>
az iot adr ns delete --name <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME>
az iot dps delete --name <DPS_NAME> --resource-group <RESOURCE_GROUP_NAME> 
az identity delete --name <USER_IDENTITY> --resource-group <RESOURCE_GROUP_NAME>

Informazioni generali

Usare lo script di PowerShell fornito per automatizzare la configurazione dell'hub IoT con l'integrazione del Registro dispositivi di Azure. Lo script esegue tutti i passaggi necessari per creare le risorse necessarie e collegarle tra loro, tra cui:

  1. Creare un gruppo di risorse
  2. Configurare i privilegi dell'app necessari
  3. Creare un'identità gestita assegnata dall'utente
  4. Creare uno spazio dei nomi ADR con identità gestita assegnata dal sistema
  5. Creare una credenziale (CA radice) e una politica (CA emittente) in quello spazio dei nomi
  6. Creare un Hub IoT (versione anteprima) con spazio dei nomi associato e identità gestita.
  7. Creare un servizio Device Provisioning con l'hub IoT collegato e lo spazio dei nomi
  8. Sincronizza le credenziali e i criteri (certificati CA) nello spazio dei nomi ADR
  9. Creare un gruppo di registrazione e associarlo alla tua politica per abilitare il provisioning dei certificati

Importante

Durante il periodo di anteprima, l'hub IoT con l'integrazione di AdR e le funzionalità di gestione dei certificati abilitate nell'hub IoT sono disponibili gratuitamente. Il servizio Device Provisioning (DPS) viene fatturato separatamente e non è incluso nell'offerta di anteprima. Per informazioni dettagliate sui prezzi del servizio di provisioning dei dispositivi (DPS), vedere Prezzi dell'Hub IoT di Azure.

Prepara il tuo ambiente

  1. Scaricare PowerShell 7 per Windows.
  2. Passare al repository GitHub e scaricare la cartella Scripts , che contiene il file di script, iothub-adr-certs-setup-preview.ps1.

Personalizzare le variabili di script

Aprire il file di script in un editor di testo e modificare le variabili seguenti in modo che corrispondano alla configurazione desiderata.

  • TenantId: ID del tenant. È possibile trovare questo valore eseguendo az account show nel terminale.
  • SubscriptionId: ID sottoscrizione. È possibile trovare questo valore eseguendo az account show nel terminale.
  • ResourceGroup: nome del gruppo di risorse.
  • Location: area di Azure in cui si vogliono creare le risorse. Vedere le località disponibili per le funzionalità di anteprima nella sezione Aree supportate .
  • NamespaceName: il nome dello spazio dei nomi può contenere solo lettere minuscole e trattini ('-') al centro del nome, ma non all'inizio o alla fine. Ad esempio, "msft-namespace" è un nome valido.
  • HubName: il nome dell'hub può contenere solo lettere minuscole e numeri.
  • DpsName: il nome dell'istanza del tuo servizio Device Provisioning.
  • UserIdentity: L'identità gestita assegnata dall'utente per le tue risorse.
  • WorkingFolder: cartella locale in cui si trova lo script.

Importante

Dato che l'hub IoT sarà individuabile pubblicamente come endpoint DNS, evitare di includere nel nome informazioni personali o sensibili.

Eseguire lo script in modo interattivo

  1. Aprire lo script ed eseguire in PowerShell 7+ come amministratore. Passare alla cartella contenente lo script ed eseguire .\iothub-adr-certs-setup-preview.ps1.

  2. Se si verifica un problema di criteri di esecuzione, provare a eseguire powershell -ExecutionPolicy Bypass -File .\iothub-adr-certs-setup-preview.ps1.

  3. Seguire le istruzioni guidate:

    • Premere Enter per procedere con un passaggio
    • Premere s o S per ignorare un passaggio
    • Premere Ctrl + C per interrompere

Annotazioni

La creazione dello spazio dei nomi ADR, dell'hub IoT, del servizio Device Provisioning e di altre risorse può richiedere fino a 5 minuti ciascuno.

Monitorare l'esecuzione e convalidare le risorse

  1. Lo script continua l'esecuzione quando vengono rilevati avvisi e si arresta solo se un comando restituisce un codice di uscita diverso da zero. Monitorare la console per i messaggi DI ERRORE rosso, che indicano problemi che richiedono attenzione.

  2. Al termine dello script, convalidare la creazione delle risorse visitando il nuovo gruppo di risorse nel portale di Azure. Verranno visualizzate le risorse seguenti create:

    • Istanza dell'hub IoT
    • Istanza del Servizio Device Provisioning (DPS)
    • Namespace del Registro dispositivi di Azure
    • identità gestita User-Assigned (UAMI)

Passaggi successivi

A questo punto, l'hub IoT con l'integrazione di ADR e la gestione dei certificati è configurato e pronto per l'uso. È ora possibile avviare l'onboarding dei dispositivi IoT nell'hub usando l'istanza del servizio Device Provisioning e gestire i dispositivi IoT in modo sicuro usando i criteri e le registrazioni configurati.

Novità: la gestione dei certificati è supportata tra gli SDK del dispositivo DPS selezionati. È ora possibile eseguire l'onboarding dei dispositivi usando la gestione dei certificati X.509 supportata da Microsoft con gli esempi di SDK seguenti: