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.
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:
Verificare la presenza di installazioni esistenti dell'estensione CLI di Azure.
az extension listRimuovere eventuali installazioni azure-iot esistenti.
az extension remove --name azure-iotInstallare l'estensione Azure-IoT dall'indice, con anteprime abilitate.
az extension add --name azure-iot --allow-previewoppure 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.whlDopo 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:
- Creare un gruppo di risorse
- Configurare i privilegi dell'app necessari
- Creare un'identità gestita assegnata dall'utente
- Creare uno spazio dei nomi ADR con identità gestita assegnata dal sistema
- Creare una credenziale (CA radice) e una politica (CA emittente) in quello spazio dei nomi
- Creare un Hub IoT (versione anteprima) con spazio dei nomi associato e identità gestita.
- Creare un servizio Device Provisioning con l'hub IoT collegato e lo spazio dei nomi
- Sincronizza le credenziali e i criteri (certificati CA) nello spazio dei nomi ADR
- 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:
Aprire una finestra del terminale.
Per accedere all'account Azure, eseguire
az login.Per elencare tutte le sottoscrizioni e i tenant a cui si ha accesso, eseguire
az account list.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>"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.
- Il GUID
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:
Creare un gruppo di risorse per il tuo ambiente.
az group create --name <RESOURCE_GROUP_NAME> --location <REGION>Assegnare un ruolo Collaboratore all'hub IoT a livello di gruppo di risorse. Il
AppIdvalore, ovvero l'ID principale per l'hub IoT, è89d10474-74af-4874-99a7-c23c2f643083lo 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>"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>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 .
Creare un nuovo spazio dei nomi ADR. Lo spazio dei nomi
namepuò 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-policycrea le credenziali (CA radice) e i criteri predefiniti (CA emittente) per questo namespace. È possibile configurare il nome per questo criterio usando il--policy-namecomando . 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-subjectparametri 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.
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>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.
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)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)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
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_IDImportante
Dato che l'hub IoT sarà individuabile pubblicamente come endpoint DNS, evitare di includere nel nome informazioni personali o sensibili.
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
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)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)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_IDAssegnare 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
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_IDVerificare 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
Collegare l'hub IoT all'istanza del servizio Device Provisioning
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>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
Elenca tutti i namespace nel tuo gruppo di risorse.
az iot adr ns list --resource-group <RESOURCE_GROUP_NAME>Mostra i dettagli di uno spazio dei nomi specifico.
az iot adr ns show --name <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME>Elenca tutti i criteri nello spazio dei nomi.
az iot adr ns policy list --namespace <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME>Mostra i dettagli di un criterio specifico.
az iot adr ns policy show --namespace <NAMESPACE_NAME> --resource-group <RESOURCE_GROUP_NAME> --name <POLICY_NAME>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
Elencare tutti i dispositivi nell'hub IoT.
az iot hub device-identity list --hub-name <HUB_NAME> --resource-group <RESOURCE_GROUP_NAME>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 disabledEseguire 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
namedeve 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-subjectdel 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-daysdi 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:
- Creare un gruppo di risorse
- Configurare i privilegi dell'app necessari
- Creare un'identità gestita assegnata dall'utente
- Creare uno spazio dei nomi ADR con identità gestita assegnata dal sistema
- Creare una credenziale (CA radice) e una politica (CA emittente) in quello spazio dei nomi
- Creare un Hub IoT (versione anteprima) con spazio dei nomi associato e identità gestita.
- Creare un servizio Device Provisioning con l'hub IoT collegato e lo spazio dei nomi
- Sincronizza le credenziali e i criteri (certificati CA) nello spazio dei nomi ADR
- 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
- Scaricare PowerShell 7 per Windows.
- 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 eseguendoaz account shownel terminale. -
SubscriptionId: ID sottoscrizione. È possibile trovare questo valore eseguendoaz account shownel 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
Aprire lo script ed eseguire in PowerShell 7+ come amministratore. Passare alla cartella contenente lo script ed eseguire
.\iothub-adr-certs-setup-preview.ps1.Se si verifica un problema di criteri di esecuzione, provare a eseguire
powershell -ExecutionPolicy Bypass -File .\iothub-adr-certs-setup-preview.ps1.Seguire le istruzioni guidate:
- Premere
Enterper procedere con un passaggio - Premere
soSper ignorare un passaggio - Premere
Ctrl+Cper interrompere
- Premere
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
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.
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: