Controllare l'accesso ad hub IoT di Azure Device Provisioning Service (DPS) tramite Microsoft Entra ID (anteprima)

È possibile usare Microsoft Entra ID per autenticare le richieste alle API di hub IoT di Azure Device Provisioning Service (DPS), ad esempio per creare un'identità del dispositivo e richiamare un 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 autorizzazioni di accesso alle API del servizio Device Provisioning (DPS) di hub IoT di Azure a un'entità di sicurezza di Microsoft Entra. L'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 Azure RBAC garantiscono maggiore sicurezza e facilità d'uso rispetto ai token di sicurezza. Per ridurre al minimo i potenziali problemi di sicurezza intrinseci nei token di sicurezza, è consigliabile usare Microsoft Entra ID con il servizio Device Provisioning (DPS) hub IoT di Azure, quando possibile.

Nota

L'autenticazione con Microsoft Entra ID non è supportata per le API del dispositivo del servizio Device Provisioning (DPS) di Hub IoT di Azure (ad esempio la registrazione del dispositivo o la verifica dello stato di registrazione del dispositivo). Usare chiavi simmetriche, X.509 o TPM per autenticare i dispositivi in hub IoT di Azure Device Provisioning Service (DPS).

Autenticazione e autorizzazione

Quando un'entità di sicurezza di Microsoft Entra richiede l'accesso a un'API del servizio Device Provisioning dei dispositivi (DPS) di Hub IoT di Azure, l'identità dell'entità viene prima di tutto 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://azure-devices-provisioning.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à Microsoft Entra, il passaggio successivo è l'autorizzazione. In questo passaggio, hub IoT di Azure Device Provisioning Service (DPS) utilizza il servizio di assegnazione dei ruoli di Microsoft Entra per determinare di quali autorizzazioni dispone il principale. Se le autorizzazioni dell'entità corrispondono alla risorsa o all'API richiesta, il Servizio Device Provisioning di Hub IoT di Azure autorizza la richiesta. Questo passaggio richiede quindi l'assegnazione di uno o più ruoli di Azure all'entità di sicurezza. Il servizio Device Provisioning (DPS) di hub IoT di Azure fornisce alcuni ruoli predefiniti che includono gruppi comuni di autorizzazioni.

Gestire l'accesso al Servizio Device Provisioning in hub IoT di Azure tramite l'assegnazione di ruoli di Azure RBAC

Con Microsoft Entra ID e il controllo degli accessi in base ai ruoli, il servizio Device Provisioning di Hub IoT di Azure richiede che l'entità che richiede l'API disponga del livello appropriato di autorizzazioni per l'autorizzazione. Per concedere l’autorizzazione all’entità, assegnarle un ruolo.

Per garantire il principio del privilegio minimo, assegna sempre il ruolo appropriato all'ambito della risorsa più basso possibile, che probabilmente corrisponde all'ambito di hub IoT di Azure Device Provisioning Service (DPS).

Il servizio Device Provisioning di hub IoT di Azure (DPS) fornisce i seguenti ruoli predefiniti di Azure per autorizzare l'accesso alle API di DPS tramite Microsoft Entra ID e il controllo degli accessi in base al ruolo (RBAC):

Ruolo Descrizione
Collaboratore ai dati del servizio Device Provisioning Consente l'accesso completo alle operazioni del piano dati di Device Provisioning Service.
Lettore di dati di Device Provisioning Service Consente l'accesso in lettura completo alle proprietà del piano dati del servizio Device Provisioning.

È anche possibile definire ruoli personalizzati da utilizzare con il servizio Device Provisioning (DPS) di Hub IoT di Azure, combinando le autorizzazioni necessarie. Per altre informazioni, vedere Creare ruoli personalizzati per il controllo degli accessi in base al ruolo di Azure.

Chiavi di scrittura del piano di controllo e dei criteri di accesso condiviso

L'azione Microsoft.Devices/provisioningServices/write permette a un principale di creare o aggiornare qualsiasi proprietà della risorsa DPS, inclusa la authorizationPolicies collezione. Poiché il contratto di Azure Resource Manager (ARM) per CreateOrUpdate accetta valori primaryKey e secondaryKey forniti dal chiamante per ogni criterio, un'entità che dispone di write su una risorsa DPS può:

  • Imposta la chiave primaria o secondaria di qualsiasi policy di accesso condiviso (inclusa la policy root provisioningserviceowner ) a un valore scelto da loro, e poi autentica come quella policy.
  • Ruotare le chiavi dei criteri di accesso condiviso, che invalidano i consumatori esistenti.
  • Aggiungi una nuova policy di accesso condiviso nominato con un valore chiave scelto.

Per questo motivo, Microsoft.Devices/provisioningServices/write equivale funzionalmente alla gestione completa delle credenziali del criterio di accesso condiviso della risorsa, indipendentemente dal fatto che l'entità disponga anche di Microsoft.Devices/provisioningServices/listkeys/action o Microsoft.Devices/provisioningServices/listkey/action.

Importante

Un ruolo personalizzato che concede Microsoft.Devices/provisioningServices/write a una risorsa DPS senza concedere listkeys/actionnon isola l'amministrazione delle credenziali dalla configurazione delle risorse. L'entità continua ad avere il pieno controllo sul materiale della chiave dei criteri di accesso condiviso tramite il percorso di scrittura. Non affidarti a questo pattern per la configurazione a privilegio minimo.

Se devi separare la configurazione delle risorse dall'amministrazione delle credenziali della policy di accesso condiviso, usa invece uno dei seguenti schemi:

  • Preferisci l'autenticazione Microsoft Entra ID per il piano dati. Assegnare i ruoli predefiniti Device Provisioning Service Data Contributor o Device Provisioning Service Data Reader per la gestione della registrazione e, ove possibile, disabilitare l'accesso tramite firma di accesso condiviso nella risorsa.
  • Limita write all'ambito delle risorse. Poiché write implica il controllo delle chiavi, concedilo solo a committenti di cui ti fidi con credenziali di policy di accesso condiviso.
  • Controlla le attività del piano di controllo. Le modifiche apportate a authorizationPolicies tramite il metodo PUT del piano di controllo vengono registrate nel log attività di Azure nell'operazione Microsoft.Devices/provisioningServices/write. Esamina questi eventi insieme agli eventi listkeys/action durante la verifica dell'accesso alle credenziali.

Le stesse considerazioni valgono per hub IoT di Azure. Per dettagli, vedi Controlla l'accesso all'hub IoT utilizzando Microsoft Entra ID.

Ambito della risorsa

Prima di assegnare un ruolo RBAC di Azure a un'entità di sicurezza, stabilire l'ambito di accesso di cui l'entità di sicurezza deve disporre. È sempre preferibile concedere solo l'ambito più restrittivo possibile. I ruoli controllo degli accessi in base al ruolo di Azure definiti in un ambito più ampio vengono 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:

  • Servizio Device Provisioning (DPS) dell'hub IoT di Azure. In questo ambito, un'assegnazione di ruolo si applica ad hub IoT di Azure Device Provisioning Service (DPS). L'assegnazione di ruolo in ambiti più limitati, quali il gruppo di registrazione o la registrazione individuale, 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.

Autorizzazioni per le API del servizio hub IoT di Azure Device Provisioning Service (DPS)

Nella tabella seguente vengono descritte le autorizzazioni disponibili per le operazioni API Device Provisioning Service (DPS) hub IoT di Azure. Per consentire a un client di richiamare una specifica operazione, assicurarsi che il ruolo RBAC assegnato al client disponga delle autorizzazioni necessarie per l'operazione.

Azione RBAC Descrizione
Microsoft.Devices/provisioningServices/attestationmechanism/details/action Recuperare i dettagli del meccanismo di attestazione
Microsoft.Devices/provisioningServices/enrollmentGroups/read Leggere i gruppi di iscrizione
Microsoft.Devices/provisioningServices/enrollmentGroups/write Scrivere i gruppi di iscrizione
Microsoft.Devices/provisioningServices/enrollmentGroups/delete Eliminare i gruppi di registrazione
Microsoft.Devices/provisioningServices/enrollments/read Leggere le iscrizioni
Microsoft.Devices/provisioningServices/enrollments/write Creare iscrizioni
Microsoft.Devices/provisioningServices/enrollments/delete Eliminare le registrazioni
Microsoft.Devices/provisioningServices/registrationStates/read Legge gli stati di registrazione
Microsoft.Devices/provisioningServices/registrationStates/delete Eliminare gli stati di registrazione

Estensione Azure IoT per l'interfaccia della riga di comando di Azure (CLI)

La maggior parte dei comandi in hub IoT di Azure Device Provisioning Service (DPS) 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 il valore key, la CLI rileva automaticamente un criterio appropriato quando interagisce con il servizio Device Provisioning (DPS) di Hub IoT di Azure.

  • Quando --auth-type ha il valore login, per l'operazione viene usato un token di accesso dell'interfaccia della riga di comando di Azure con cui è stato effettuato l'accesso all'entità.

  • I comandi seguenti supportano --auth-typeattualmente :

    • az iot dps enrollment
    • az iot dps enrollment-group
    • az iot dps registration

Per altre informazioni, vedi la pagina delle versioni dell'estensione Azure IoT per interfaccia della riga di comando di Azure.

SDK ed esempi

Accesso all'ID Microsoft Entra dal portale di Azure

Nota

L'accesso a Microsoft Entra ID dal portale di Azure non è attualmente disponibile durante l'anteprima.

Passaggi successivi