Cos'è il servizio Device Provisioning in hub IoT di Azure?

Il servizio Device Provisioning in hub IoT è un servizio helper per Hub IoT che consente di effettuare il provisioning JIT automatizzato nell'hub IoT corretto senza alcun intervento dell'utente. Consente di effettuare il provisioning di milioni di dispositivi in modo sicuro e scalabile. Molti passaggi manuali tradizionalmente richiesti per il provisioning vengono automatizzati con il servizio Device Provisioning per ridurre il tempo di distribuzione di dispositivi IoT e il rischio di errori manuali.

Funzionamento del servizio Device Provisioning

Il diagramma seguente descrive cosa accade dietro le quinte per effettuare il provisioning di un dispositivo con DPS.

Diagram that shows how the device, Device Provisioning Service, and IoT Hub work together.

Prima dell'inizio del flusso di provisioning dei dispositivi, è necessario preparare due passaggi manuali:

  • Sul lato dispositivo, il produttore del dispositivo prepara il dispositivo per il provisioning preconfigurandolo con le credenziali di autenticazione e con l'ID servizio Device Provisioning assegnato e l'endpoint.
  • Sul lato cloud, l'utente o il produttore del dispositivo prepara l'istanza del servizio Device Provisioning con registrazioni individuali e gruppi di registrazione che identificano i dispositivi validi e definiscono come devono essere sottoposte a provisioning.

Dopo aver configurato il dispositivo e il cloud per il provisioning, i passaggi seguenti vengono avviati automaticamente non appena il dispositivo viene attivato per la prima volta:

  1. Il dispositivo viene attivato per la prima volta, quindi si connette all'endpoint dps e presenta le credenziali di autenticazione.
  2. L'istanza dps controlla l'identità del dispositivo rispetto all'elenco di registrazioni. Dopo aver verificato l'identità del dispositivo, DPS assegna il dispositivo a un hub IoT e lo registra nell'hub.
  3. L'istanza dps riceve l'ID dispositivo e le informazioni di registrazione dall'hub assegnato e le passa di nuovo al dispositivo.
  4. Il dispositivo usa le informazioni di registrazione per connettersi direttamente all'hub IoT assegnato ed eseguire l'autenticazione.
  5. Il dispositivo e l'hub IoT iniziano a comunicare direttamente. L'istanza del servizio Device Provisioning non ha un ruolo aggiuntivo come intermediario, a meno che il dispositivo non debba eseguire nuovamente il provisioning.

Quando usare il servizio Device Provisioning

Esistono molti scenari in cui il servizio Device Provisioning rappresenta una scelta eccellente per connettere i dispositivi e configurarli nell'hub IoT, ad esempio:

  • Provisioning automatico a una singola soluzione IoT senza informazioni di connessione hardcoded nell'hub IoT in fabbrica (configurazione iniziale)
  • Bilanciamento del carico dei dispositivi tra più hub
  • Connessione di dispositivi alla soluzione IoT del proprietario in base ai dati delle transazioni di vendita (multi-tenancy)
  • Connessione di dispositivi a una soluzione IoT specifica a seconda del caso di utilizzo (isolamento della soluzione)
  • Connessione di un dispositivo all'hub IoT con latenza minima (partizionamento dell'area geografica)
  • Nuovo provisioning a seguito di una modifica nel dispositivo
  • Distribuzione delle chiavi usate dal dispositivo per connettersi all'hub IoT (quando non usa i certificati X.509 per la connessione)

Il provisioning di dispositivi IoT Edge annidati (gerarchie padre/figlio) non è attualmente supportato dal servizio Device Provisioning.

Processo di provisioning

È necessario eseguire due passaggi prima del provisioning dei dispositivi con DPS:

  • La fase di produzione che riguarda la costruzione e la preparazione in fabbrica del dispositivo.
  • La fase di configurazione del cloud in cui il servizio Device Provisioning viene configurato per il provisioning automatico.

Entrambi questi passaggi possono essere incorporati nei processi di produzione e distribuzione esistenti. Il servizio Device Provisioning semplifica anche alcuni processi di distribuzione che richiedono molto lavoro manuale per ottenere le informazioni di connessione sul dispositivo.

Fase di produzione

Questa fase riguarda tutto ciò che accade nella linea di produzione. I ruoli coinvolti in questa fase includono il progettista e il produttore dei componenti al silicio, l'integratore e/o il produttore finale del dispositivo. Questa fase riguarda la creazione dell'hardware.

DPS non introduce un nuovo passaggio nel processo di produzione; piuttosto, collega nel passaggio esistente che installa il software iniziale e (idealmente) il modulo di protezione hardware (HSM) nel dispositivo. Invece di creare un ID dispositivo in questo passaggio, il dispositivo viene programmato con le informazioni del servizio di provisioning, consentendogli di chiamare il servizio di provisioning per ottenere l'assegnazione delle informazioni di connessione/IoT quando è attivata.

In questa fase il produttore fornisce anche le informazioni della chiave di identificazione al distributore/operatore del dispositivo. Questa operazione può essere semplice quanto confermare che tutti i dispositivi hanno un certificato X.509 generato da un certificato di firma ottenuto dal distributore/operatore del dispositivo o complessa quanto estrarre la parte pubblica di una chiave di verifica autenticità TPM da ogni dispositivo TPM. Molti produttori di siliconi offrono questi servizi.

Fase di configurazione del cloud

Questa fase riguarda la configurazione del cloud per un corretto provisioning automatico. In questa fase vengono in genere coinvolti due tipi di utenti: uno che conosce il modo in cui eseguire la configurazione iniziale dei dispositivi (un operatore del dispositivo) e uno che sa come devono essere suddivisi i dispositivi tra gli hub IoT (operatore della soluzione).

Esiste una configurazione iniziale una tantum del servizio di provisioning, gestita in genere dall'operatore della soluzione. Dopo aver configurato il servizio di provisioning, non è necessario modificarlo, a meno che il caso d'uso non venga modificato.

Dopo aver configurato il servizio per il provisioning automatico, è necessario prepararsi per registrare i dispositivi. Questo passaggio viene eseguito dall'operatore del dispositivo, che conosce la configurazione desiderata dei dispositivi e assicura che il servizio di provisioning possa attestare correttamente l'identità di un dispositivo. L'operatore del dispositivo riceve le informazioni relative alla chiave di identificazione dal produttore e le aggiunge all'elenco di registrazione. L'elenco di registrazione può essere soggetto ad aggiornamenti successivi man mano che vengono inserite nuove voci o quelle esistenti vengono aggiornate con le informazioni più recenti sui dispositivi.

Registrazione e provisioning

Il termine provisioning implica varie operazioni a seconda del settore in cui viene usato. Nel contesto di provisioning di dispositivi IoT alla relativa soluzione cloud, il provisioning è un processo in due fasi:

  • La prima consiste nello stabilire la connessione iniziale tra il dispositivo e la soluzione IoT tramite la registrazione del dispositivo.
  • La seconda consiste nell'applicare la configurazione adeguata al dispositivo in base ai requisiti specifici della soluzione in cui il dispositivo è stato registrato.

Una volta completati entrambi questi passaggi, il provisioning del dispositivo può considerarsi completato. Alcuni servizi cloud forniscono solo il primo passaggio del processo di provisioning, la registrazione dei dispositivi nell'endpoint della soluzione IoT, ma non forniscono la configurazione iniziale. Il servizio Device Provisioning automatizza entrambi i passaggi per semplificare l'esperienza di provisioning dei dispositivi.

Funzionalità del servizio Device Provisioning

Il servizio Device Provisioning include molte funzionalità che lo rendono una soluzione ideale per il provisioning dei dispositivi.

  • Supporto dell'attestazione protetta sia per le entità basate sul certificato X.509 che per quelle basate sul modulo TPM.
  • Elenco di registrazione contenente il record completo dei dispositivi/gruppi di dispositivi che con il tempo potrebbero registrarsi. L'elenco di registrazione contiene le informazioni sulla configurazione desiderata del dispositivo registrato e può essere aggiornato in qualsiasi momento.
  • Più criteri di allocazione per controllare il modo in cui dps assegna i dispositivi agli hub IoT a supporto degli scenari: latenza più bassa, distribuzione ponderata uniforme (impostazione predefinita) e configurazione statica. La latenza viene determinata con lo stesso metodo di Gestione traffico. È supportata anche l'allocazione personalizzata, che consente di implementare criteri di allocazione personalizzati tramite webhook ospitati in Funzioni di Azure.
  • Monitoraggio e registrazione diagnostica per assicurarsi che tutto funzioni correttamente.
  • Supporto di più hub per consentire al servizio Device Provisioning di assegnare dispositivi a più hub IoT. Il servizio Device Provisioning può dialogare con gli hub tramite più sottoscrizioni di Azure.
  • Supporto tra aree per consentire al servizio Device Provisioning di assegnare i dispositivi a hub IoT in altre aree.
  • Crittografia per i dati inattivi per crittografare e decrittografare i dati nel servizio Device Provisioning con la crittografia AES a 256 bit, una delle crittografie a blocchi più solide disponibili, conforme a FIPS 140-2.

Per altre informazioni sui concetti e sulle funzionalità coinvolti nel provisioning dei dispositivi, vedere l'articolo terminologia del servizio Device Provisioning insieme agli altri articoli concettuali nella stessa sezione.

Supporto tra piattaforme

Proprio come tutti i servizi IoT di Azure, DPS funziona multipiattaforma con vari sistemi operativi. Azure offre SDK open source in diversi linguaggi per facilitare la connessione dei dispositivi e la gestione del servizio. Il servizio Device Provisioning supporta i protocolli seguenti per la connessione di dispositivi:

  • HTTPS
  • AMQP
  • AMQP su WebSocket
  • MQTT
  • MQTT su WebSocket

Il servizio Device Provisioning supporta le connessioni HTTPS solo per le operazioni nel servizio.

Aree

Il servizio Device Provisioning è disponibile in molte aree. L'elenco delle aree supportate per tutti i servizi è disponibile in Aree di Azure. È possibile controllare la disponibilità del servizio Device Provisioning nella pagina Stato di Azure.

Per garantire resilienza e affidabilità, è consigliabile eseguire la distribuzione in una delle aree che supportano zone di disponibilità.

Considerazioni sulla residenza dei dati

Il servizio Device Provisioning archivia i dati dei clienti. Per impostazione predefinita, i dati dei clienti vengono replicati in un'area secondaria per supportare gli scenari di ripristino di emergenza. Per le distribuzioni in Asia sud-orientale e Brasile meridionale, i clienti possono scegliere di mantenere i dati solo all'interno di tale area disabilitando il ripristino di emergenza. Per altre informazioni, vedere Replica tra aree in Azure.

Il servizio Device Provisioning usa lo stesso endpoint di provisioning dei dispositivi per tutte le istanze del servizio di provisioning ed esegue il bilanciamento del carico del traffico all'endpoint di servizio più vicino disponibile. Di conseguenza, i segreti di autenticazione possono essere trasferiti temporaneamente all'esterno dell'area in cui è stata creata inizialmente l'istanza del servizio Device Provisioning. Tuttavia, una volta connesso il dispositivo, i dati del dispositivo passano direttamente all'area originale dell'istanza del servizio Device Provisioning. Per assicurarsi che i dati non lascino l'area originale o secondaria, usare un endpoint privato. Per informazioni su come configurare gli endpoint privati, vedere Supporto del servizio Device Provisioning per le reti virtuali.

Quote e limiti

Ogni sottoscrizione di Azure ha limiti di quota predefiniti che possono influire sull'ambito della soluzione IoT del cliente. Il limite corrente è 10 istanze del servizio Device Provisioning per ogni sottoscrizione.

Per altre informazioni sui limiti di quota, vedere Limiti del servizio di sottoscrizione di Azure.

La tabella seguente elenca i limiti applicabili alle risorse del servizio Device Provisioning in hub IoT di Azure.

Conto risorse Limite Rettificabile?
Numero massimo di servizi di provisioning di dispositivi per sottoscrizione di Azure 10 No
Numero massimo di registrazioni 1\.000.000 No
Numero massimo di registrazioni singole 1\.000.000 No
Numero massimo di gruppi di registrazioni (certificato X.509) 100 No
Numero massimo di gruppi di registrazioni (chiave simmetrica) 100 No
Numero massimo di autorità di certificazione 25 No
Numero massimo di hub IoT collegati 50 No
Dimensioni massime del messaggio 96 KB No

Suggerimento

Se il limite rigido per i gruppi di registrazione con chiave simmetrica è un problema di blocco, è consigliabile usare le registrazioni singole come soluzione alternativa.

Il servizio Device Provisioning ha i limiti di frequenza seguenti.

Tariffa Valore per unità Rettificabile?
Operazioni 1.000/min/servizio No
Registrazioni del dispositivo 1.000/min/servizio No
Operazione di polling di dispositivo 5/10 sec/dispositivo No

Operazioni e prezzi fatturabili del servizio

Ogni chiamata API al servizio Device Provisioning è fatturabile come un'unica operazione. Sono incluse tutte le API del servizio e l'API di registrazione del dispositivo.

Le tabelle seguenti mostrano lo stato fatturabile corrente per ogni operazione dell'API del servizio Device Provisioning. Per altre informazioni sui prezzi per DPS, selezionare Tabella prezzi nella parte superiore della pagina dei prezzi di hub IoT di Azure. Selezionare quindi la scheda Servizio Device Provisioning hub IoT e la valuta e l'area per il servizio.

API Operazione Fatturabile?
API del dispositivo Ricerca stato registrazione dispositivo No
API del dispositivo Ricerca dello stato dell'operazione No
API del dispositivo Registrare il dispositivo
API del servizio DPS (stato di registrazione) CANC
API del servizio DPS (stato di registrazione) GET
API del servizio DPS (stato di registrazione) Query
API del servizio DPS (gruppo di registrazione) Creare o aggiornare
API del servizio DPS (gruppo di registrazione) CANC
API del servizio DPS (gruppo di registrazione) GET
API del servizio DPS (gruppo di registrazione) Get Attestation Mechanism
API del servizio DPS (gruppo di registrazione) Query
API del servizio DPS (gruppo di registrazione) Eseguire un'operazione bulk
API del servizio DPS (registrazione singola) Creare o aggiornare
API del servizio DPS (registrazione singola) CANC
API del servizio DPS (registrazione singola) GET
API del servizio DPS (registrazione singola) Get Attestation Mechanism
API del servizio DPS (registrazione singola) Query
API del servizio DPS (registrazione singola) Eseguire un'operazione bulk
API del certificato DPS Creare o aggiornare No
API del certificato DPS CANC No
API del certificato DPS Generare il codice di verifica No
API del certificato DPS GET No
API del certificato DPS Elenco No
API del certificato DPS Verificare il certificato No
API risorsa DPS IoT Controllare la disponibilità del nome del servizio di provisioning No
API risorsa DPS IoT Creare o aggiornare No
API risorsa DPS IoT CANC No
API risorsa DPS IoT GET No
API risorsa DPS IoT Ottenere il risultato dell'operazione No
API risorsa DPS IoT List By Resource Group No
API risorsa DPS IoT Elenco per sottoscrizione No
API risorsa DPS IoT Elenca per chiavi No
API risorsa DPS IoT List Keys for Key Name No
API risorsa DPS IoT Elencare GLI SKU validi No
API risorsa DPS IoT Aggiornamento No

Il servizio Device Provisioning automatizza il provisioning dei dispositivi con l'hub IoT di Azure. Altre informazioni sull'hub IoT.

Nota

Il provisioning di dispositivi perimetrali annidati (gerarchie padre/figlio) non è attualmente supportato dal servizio Device Provisioning.

Le applicazioni IoT Central usano un'istanza dps interna per gestire le connessioni dei dispositivi. Per altre informazioni, vedere Come i dispositivi si connettono a IoT Central.

Passaggi successivi

Dopo questa panoramica del provisioning dei dispositivi IoT in Azure, il passaggio successivo consiste nel provare uno scenario di IoT end-to-end.

Configurare il servizio Device Provisioning in hub IoT con il portale di Azure

Creare ed effettuare il provisioning di un dispositivo simulato