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.
È possibile usare Microsoft Entra ID per autenticare le richieste alle API del servizio hub IoT di Azure, ad esempio creare un'identità del dispositivo e richiamare il metodo diretto. È anche possibile usare il controllo degli accessi in base al ruolo di Azure per autorizzare le stesse API del servizio. Usando queste tecnologie insieme, è possibile concedere le autorizzazioni per accedere alle API del servizio hub IoT a un'entità di sicurezza di Microsoft Entra. Questa entità di sicurezza può essere un utente, un gruppo o un'entità servizio dell'applicazione.
L'autenticazione dell'accesso tramite Microsoft Entra ID e il controllo delle autorizzazioni tramite il RBAC di Azure offrono maggiore sicurezza e facilità d'uso rispetto ai token di sicurezza. Per ridurre al minimo i potenziali problemi di sicurezza insiti nei token di sicurezza, è consigliabile applicare l'autenticazione di Microsoft Entra quando possibile.
Nota
L'autenticazione con Microsoft Entra ID non è supportata per le API del dispositivo hub IoT (come i messaggi da dispositivo a cloud e l'aggiornamento delle proprietà segnalate). Usare le chiavi simmetriche o X.509 per autenticare i dispositivi nell'hub IoT.
L'autenticazione è il processo di dimostrazione di chi si dice di essere. L'autenticazione verifica l'identità di un utente o di un dispositivo nell'hub IoT. In lingua inglese, il termine autenticazione viene talvolta abbreviato in AuthN.
L'autorizzazione è il processo di conferma delle autorizzazioni per un utente o un dispositivo autenticato nell'hub IoT. L'autorizzazione specifica le risorse e i comandi a cui è consentito accedere e le operazioni che è possibile eseguire con tali risorse e comandi. In lingua inglese, il termine autorizzazione viene talvolta abbreviato in AuthZ.
Quando un'entità di sicurezza di Microsoft Entra richiede l'accesso a un'API del servizio hub IoT, l'identità dell'entità viene prima autenticata. Per l'autenticazione, la richiesta deve contenere un token di accesso OAuth 2.0 in fase di esecuzione. Il nome della risorsa per la richiesta del token è https://iothubs.azure.net
. Se l'applicazione viene eseguita in una risorsa di Azure come una macchina virtuale di Azure, un'app di Funzioni di Azure o un'app del servizio app di Azure, può essere rappresentata come un'identità gestita.
Dopo l'autenticazione dell'entità di sicurezza Microsoft Entra, il passaggio successivo è 'autorizzazione. In questo passaggio, l'hub IoT utilizza il servizio di assegnazione dei ruoli Microsoft Entra per determinare quali autorizzazioni possiede il soggetto. Se le autorizzazioni dell'entità corrispondono alla risorsa o all'API richiesta, l'hub IoT autorizza la richiesta. Questo passaggio richiede quindi l'assegnazione di uno o più ruoli di Azure all'entità di sicurezza. L'hub IoT fornisce alcuni ruoli predefiniti con gruppi comuni di autorizzazioni.
Gestire l'accesso all'hub IoT usando l'assegnazione di ruolo controllo degli accessi in base al ruolo di Azure
Con Microsoft Entra ID e RBAC, l'hub IoT richiede che il principale che richiede l’API disponga del livello di autorizzazione appropriato. Per concedere all'entità l'autorizzazione, assegnarle un'assegnazione di ruolo.
- Se il titolare è un utente, un gruppo o un'entità di servizio dell'applicazione, segui le indicazioni su assegnare i ruoli di Azure usando il portale di Azure.
- Se l'entità è un'identità gestita, seguire le indicazioni in Assegnare un accesso all'identità gestita a una risorsa di Azure o a un'altra risorsa.
Per garantire il privilegio minimo, assegnare sempre il ruolo appropriato all'ambito di risorsa più basso possibile, che è probabilmente l'ambito dell'hub IoT.
L'hub IoT fornisce i ruoli predefiniti di Azure seguenti per autorizzare l'accesso alle API del servizio hub IoT usando Microsoft Entra ID e controllo degli accessi in base al ruolo:
Ruolo | Descrizione |
---|---|
Collaboratore dati IoT Hub | Consente l'accesso completo alle operazioni del piano dati di IoT Hub. |
Lettore dati hub IoT | Consente l'accesso in lettura completo alle proprietà del piano dati dell'hub IoT. |
Collaboratore del registro di sistema dell'hub IoT | Consente l'accesso completo al registro dei dispositivi hub IoT. |
Collaboratore gemello dell'hub IoT | Consente l'accesso in lettura e scrittura a tutti i dispositivi e i moduli gemelli dell'hub IoT. |
È anche possibile definire ruoli personalizzati da usare con l'hub IoT combinando le autorizzazioni necessarie. Per altre informazioni, vedere Ruoli personalizzati in Azure.
Prima di assegnare un ruolo di Azure RBAC a un'entità di sicurezza, determina l'ambito di accesso che essa deve avere. È sempre preferibile concedere solo l'ambito più restrittivo possibile. I ruoli di Azure RBAC definiti su un ambito più ampio sono ereditati dalle risorse sottostanti.
Questo elenco descrive i livelli in cui è possibile definire l'ambito di accesso all’hub IoT, a partire dall'ambito più restrittivo:
- Hub IoT. In questo ambito, un'assegnazione di ruolo viene applicata all'hub IoT. Non esiste un ambito inferiore a un singolo hub IoT. L'assegnazione di ruolo in ambiti più piccoli, ad esempio l'identità del singolo dispositivo, non è supportata.
- Il gruppo di risorse. In questo ambito, un'assegnazione di ruolo viene applicata a tutti gli hub IoT nel gruppo di risorse.
- La sottoscrizione. In questo ambito, un'assegnazione di ruolo viene applicata a tutti gli hub IoT in tutti i gruppi di risorse nella sottoscrizione.
- Un gruppo di gestione. In questo ambito, un'assegnazione di ruolo viene applicata a tutti gli hub IoT in tutti i gruppi di risorse in tutte le sottoscrizioni nel gruppo di gestione.
Nella tabella seguente vengono descritte le autorizzazioni disponibili per le operazioni dell'API del servizio hub IoT. Per consentire a un client di chiamare una determinata operazione, assicurarsi che il ruolo controllo degli accessi in base al ruolo assegnato al client offra autorizzazioni sufficienti per l'operazione.
Azione controllo degli accessi in base al ruolo | Descrizione |
---|---|
Microsoft.Devices/IotHubs/devices/read |
Legge qualsiasi identità del dispositivo o del modulo. |
Microsoft.Devices/IotHubs/devices/write |
Creare o aggiornare qualsiasi identità del dispositivo o del modulo. |
Microsoft.Devices/IotHubs/devices/delete |
Eliminare qualsiasi identità del dispositivo o del modulo. |
Microsoft.Devices/IotHubs/twins/read |
Legge qualsiasi dispositivo o modulo gemello. |
Microsoft.Devices/IotHubs/twins/write |
Scrivere qualsiasi dispositivo o modulo gemello. |
Microsoft.Devices/IotHubs/jobs/read |
Restituisce un elenco di processi. |
Microsoft.Devices/IotHubs/jobs/write |
Crea o aggiorna qualsiasi lavoro. |
Microsoft.Devices/IotHubs/jobs/delete |
Elimina qualsiasi lavoro. |
Microsoft.Devices/IotHubs/cloudToDeviceMessages/send/action |
Invia un messaggio dal cloud a qualsiasi dispositivo. |
Microsoft.Devices/IotHubs/cloudToDeviceMessages/feedback/action |
Ricevere, completare o abbandonare una notifica di feedback dei messaggi da cloud a dispositivo. |
Microsoft.Devices/IotHubs/cloudToDeviceMessages/queue/purge/action |
Eliminare tutti i comandi in sospeso per un dispositivo. |
Microsoft.Devices/IotHubs/directMethods/invoke/action |
Richiamare un metodo diretto in qualsiasi dispositivo o modulo. |
Microsoft.Devices/IotHubs/fileUpload/notifications/action |
Ricevere, completare o abbandonare le notifiche di caricamento dei file. |
Microsoft.Devices/IotHubs/statistics/read |
Leggere le statistiche dei dispositivi e dei servizi. |
Microsoft.Devices/IotHubs/configurations/read |
Leggere le configurazioni di gestione dei dispositivi. |
Microsoft.Devices/IotHubs/configurations/write |
Creare o aggiornare le configurazioni di gestione dei dispositivi. |
Microsoft.Devices/IotHubs/configurations/delete |
Eliminare qualsiasi configurazione di gestione dei dispositivi. |
Microsoft.Devices/IotHubs/configurations/applyToEdgeDevice/action |
Applicare il contenuto di configurazione a un dispositivo perimetrale. |
Microsoft.Devices/IotHubs/configurations/testQueries/action |
Convalidare la condizione di destinazione e le query di metrica personalizzate per una configurazione. |
Suggerimento
- L'operazione Aggiorna registro richiede sia
Microsoft.Devices/IotHubs/devices/write
cheMicrosoft.Devices/IotHubs/devices/delete
. - L'operazione Get Twins richiede
Microsoft.Devices/IotHubs/twins/read
. - Ottenere gemello digitale richiede
Microsoft.Devices/IotHubs/twins/read
. Aggiornare il Gemello Digitale richiedeMicrosoft.Devices/IotHubs/twins/write
. - Sia Invoke Component Command che Invoke Root Level Command richiedono
Microsoft.Devices/IotHubs/directMethods/invoke/action
.
Nota
Per ottenere dati dall'hub IoT usando Microsoft Entra ID, configurare il routing a un endpoint di Hub eventi personalizzato. Per accedere all’endpoint compatibile con Hub eventi predefinito, usare il metodo stringa di connessione (chiave di accesso condiviso) come in precedenza.
Per impostazione predefinita, l'hub IoT supporta l'accesso all'API del servizio tramite Microsoft Entra ID e i criteri di accesso condiviso e i token di sicurezza. Per ridurre al minimo le potenziali vulnerabilità di sicurezza intrinseche nei token di sicurezza, è possibile disabilitare l'accesso con i criteri di accesso condiviso.
Avviso
Negando le connessioni tramite criteri di accesso condiviso, tutti gli utenti e i servizi che si connettono con questo metodo perdono immediatamente l'accesso. In particolare, poiché il servizio Device Provisioning supporta solo il collegamento degli hub IoT tramite criteri di accesso condiviso, tutti i flussi di provisioning dei dispositivi hanno esito negativo con errore "non autorizzato". Procedere con cautela e pianificare la sostituzione dell'accesso con l'accesso basato sui ruoli di Microsoft Entra.
Non procedere se si utilizza il servizio di provisioning dei dispositivi.
Assicurarsi che i clienti e gli utenti del servizio abbiano un accesso sufficiente all'hub IoT. Seguire il principio del privilegio minimo.
Accedere al portale di Azure e passare all'hub IoT.
Selezionare Criteri di accesso condiviso nella sezione Impostazioni di sicurezza del menu di spostamento.
In corrispondenza di Connetti usando i criteri di accesso condivisi, selezionare Rifiuta e controllare l'avviso.
Seleziona Salva.
È ora possibile accedere alle API del servizio dell'hub IoT solo tramite Microsoft Entra ID e controllo degli accessi in base al ruolo.
È possibile fornire l'accesso all'hub IoT dal portale di Azure con i criteri di accesso condiviso o le autorizzazioni di Microsoft Entra.
Quando si prova ad accedere all'hub IoT dal portale di Azure, il portale di Azure verifica innanzitutto se è stato assegnato un ruolo di Azure con Microsoft.Devices/iotHubs/listkeys/action
. In caso affermativo, il portale di Azure usa le chiavi dei criteri di accesso condiviso per accedere a hub IoT. In caso contrario, il portale di Azure tenta di accedere ai dati usando l'account Microsoft Entra.
Per accedere all'hub IoT dal portale di Azure usando l'account Microsoft Entra, sono necessarie le autorizzazioni per accedere alle risorse dati dell'hub IoT, ad esempio dispositivi e gemelli. Sono necessarie anche le autorizzazioni per passare alla risorsa dell'hub IoT nel portale di Azure. I ruoli predefiniti forniti da hub IoT concedono l'accesso a risorse come dispositivi e dispositivi gemelli, ma non concedono l'accesso alla risorsa hub IoT. L'accesso al portale richiede quindi anche l'assegnazione di un ruolo di Azure Resource Manager, ad esempio Lettore. Il ruolo lettore è una scelta ottimale poiché è il ruolo più limitato che consente di esplorare il portale. Non include l'autorizzazione Microsoft.Devices/iotHubs/listkeys/action
(che fornisce l'accesso a tutte le risorse dati dell'hub IoT tramite criteri di accesso condiviso).
Per assicurarsi che un account non abbia accesso all'esterno delle autorizzazioni assegnate, non includere l'autorizzazione Microsoft.Devices/iotHubs/listkeys/action
quando si crea un ruolo personalizzato. Ad esempio, per creare un ruolo personalizzato in grado di leggere le identità dei dispositivi, ma non può creare o eliminare i dispositivi, creare un ruolo personalizzato che:
- Ha l'azione dati
Microsoft.Devices/IotHubs/devices/read
. - Non dispone dell'azione dati
Microsoft.Devices/IotHubs/devices/write
. - Non dispone dell'azione dati
Microsoft.Devices/IotHubs/devices/delete
. - Non dispone dell'azione
Microsoft.Devices/iotHubs/listkeys/action
.
Assicurarsi quindi che l'account non disponga di altri ruoli che dispongono dell'autorizzazione Microsoft.Devices/iotHubs/listkeys/action
, ad esempio Proprietario o Collaboratore. Per consentire all'account di avere accesso alle risorse e spostarsi nel portale, assegnare Lettore.
La maggior parte dei comandi sull'hub IoT supporta l'autenticazione di Microsoft Entra. È possibile controllare il tipo di autenticazione usato per eseguire i comandi usando il parametro --auth-type
, che accetta valori key
o login
. Il valore key
è il valore predefinito.
Quando
--auth-type
ha valorekey
, come in precedenza, l'interfaccia della riga di comando individua automaticamente un criterio appropriato quando interagisce con l'hub IoT.Quando
--auth-type
ha il valorelogin
, viene usato un token di accesso dall'interfaccia della riga di comando di Azure connesso all'entità per l'operazione.
Per ulteriori informazioni, vedere la pagina del rilascio dell'estensione Azure IoT per CLI di Azure.
- Per altre informazioni sui vantaggi dell'uso di Microsoft Entra ID nell'applicazione, vedere Integrazione con Microsoft Identity Platform.
- Per informazioni su come vengono usati i token di accesso, i token di aggiornamento e i token ID nell'autorizzazione e nell'autenticazione, vedere Panoramica dei token e delle attestazioni.