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.
Le identità gestite offrono ai servizi di Azure un'identità gestita automaticamente in Microsoft Entra ID in modo sicuro. Questa funzionalità elimina la necessità per gli sviluppatori di gestire le credenziali fornendo un'identità. Esistono due tipi di identità gestite: assegnata dal sistema e assegnata dall'utente. L'hub IoT supporta entrambe.
Nell'hub IoT, le identità gestite possono essere usate per connettere l'hub IoT ad altri servizi di Azure per funzionalità come il routing dei messaggi, il caricamento di file e l'importazione/esportazione di dispositivi in blocco. Questo articolo illustra come usare le identità gestite assegnate dal sistema e assegnate dall'utente nell'hub IoT per diverse funzionalità.
Prerequisiti
Comprendere le differenze tra le identità gestite assegnate dal sistema e assegnate dall'utente in Che cosa sono le identità gestite per le risorse di Azure?
Un hub IoT nella sottoscrizione di Azure. Se non si ha ancora un hub, è possibile seguire la procedura descritta in Creare un hub IoT.
Identità gestita assegnata dal sistema
È possibile abilitare o disabilitare l'identità gestita assegnata dal sistema nel portale di Azure
Accedere al portale di Azure e passare all'hub IoT.
Selezionare Identità nella sezione Impostazioni di sicurezza del menu di spostamento.
Selezionare la scheda Assegnata dal sistema.
Impostare lo stato dell'identità gestita assegnata dal sistema su Attivato o Disattivato, quindi selezionare Salva.
Nota
Non è possibile disattivare l'identità gestita assegnata dal sistema mentre è in uso. Assicurarsi che nessun endpoint personalizzato usi l'autenticazione dell'identità gestita assegnata dal sistema prima di disabilitare la funzionalità.
Identità gestita assegnata dall'utente
Questa sezione illustra come aggiungere e rimuovere un'identità gestita assegnata dall'utente da un hub IoT usando il portale di Azure.
Prima di tutto, è necessario creare un'identità gestita assegnata dall'utente come risorsa autonoma. A tale scopo, è possibile seguire le istruzioni riportate in Gestire identità gestite assegnate dall'utente.
Passare all'hub IoT e quindi selezionare Identità in Impostazioni di sicurezza dal menu del servizio nel portale di Azure.
Nella scheda Assegnata dall'utente selezionare Associa un'identità gestita assegnata dall'utente. Scegliere l'identità gestita assegnata dall'utente da aggiungere all'hub e quindi selezionare Aggiungi.
È possibile rimuovere un'identità assegnata dall'utente da un hub IoT. Scegliere l'identità assegnata dall'utente da rimuovere e selezionare Rimuovi. La rimozione viene eseguita solo dall'hub IoT e questa rimozione non elimina l'identità assegnata dall'utente come risorsa. Per eliminare l'identità assegnata dall'utente come risorsa, seguire le istruzioni in Gestire identità gestite assegnate dall'utente.
Connettività in uscita dall'hub IoT ad altre risorse di Azure
Le identità gestite possono essere usate per la connettività in uscita dall'hub IoT ad altri servizi di Azure. È possibile scegliere l'identità gestita da usare per ogni connettività in uscita dell'hub IoT agli endpoint di proprietà del cliente, inclusi gli account di archiviazione, gli hub eventi e gli endpoint del bus di servizio.
Nota
Solo l'identità gestita assegnata dal sistema offre l'accesso tramite hub IoT alle risorse private. Se si vuole usare l'identità gestita assegnata dall'utente, è necessario abilitare l'accesso pubblico su tali risorse private per consentire la connettività.
Configurare il routing dei messaggi con identità gestite
In questa sezione viene usato il routing dei messaggi a un endpoint personalizzato di Hub eventi come esempio. L'esempio si applica anche ad altri endpoint personalizzati di routing.
Passare all'hub eventi nel portale di Azure per assegnare l'identità gestita all'accesso corretto.
Seleziona Controllo di accesso (IAM).
Selezionare Aggiungi > Aggiungi assegnazione di ruolo.
Nella scheda Ruolo, selezionare Mittente dati di Hub eventi di Azure.
Nota
Per un account di archiviazione, selezionare Collaboratore dati BLOB di archiviazione (nonCollaboratore o Collaboratore account di archiviazione) come ruolo. Per un bus di servizio, selezionare Mittente dati del bus di servizio di Azure.
Nella scheda Membri selezionare Identità gestita e quindi Seleziona membri.
Per le identità gestite assegnate dall'utente, selezionare la sottoscrizione, selezionare Identità gestita assegnata dall'utente e quindi selezionare l'identità gestita assegnata dall'utente.
Per le identità gestite assegnate dal sistema, selezionare la sottoscrizione, selezionare Tutte le identità gestite assegnate dal sistema e quindi selezionare il nome della risorsa dell'hub IoT.
Nella scheda Rivedi e assegna selezionare Rivedi e assegna per assegnare il ruolo.
Per altre informazioni sulle assegnazioni di ruolo, vedere Assegnare ruoli di Azure tramite il portale di Azure.
Se è necessario limitare la connettività all'endpoint personalizzato tramite una rete virtuale, è necessario attivare l'eccezione di prima parte Microsoft attendibile per concedere all'hub IoT l'accesso all'endpoint specifico. Ad esempio, se si aggiunge un endpoint personalizzato dell'hub eventi, passare alla scheda Firewall e reti virtuali nell'hub eventi e abilitare l'opzione Consenti l'accesso dalle reti selezionate. Nell'elenco Eccezioni selezionare la casella Consenti ai servizi Microsoft attendibili di accedere agli hub eventi e quindi selezionare Salva. Questo requisito si applica anche all'account di archiviazione e al service bus. Altre informazioni sul supporto dell'hub IoT per le reti virtuali con Collegamento privato di Azure.
Nota
È necessario completare i passaggi precedenti per assegnare all'identità gestita l'accesso corretto, prima di aggiungere l'hub eventi come endpoint personalizzato nell'hub IoT. Attendere alcuni minuti per la propagazione dell'assegnazione di ruolo.
Passare quindi all'hub IoT. Nell'hub, passare a Routing messaggi e quindi selezionare Aggiungi.
Nella scheda Endpoint, creare un endpoint per l'hub eventi specificando le informazioni seguenti:
Parametro Valore Tipo di endpoint Selezionare Hub eventi. Nome endpoint Specificare un nome univoco per un nuovo endpoint oppure selezionare Seleziona esistente per scegliere un endpoint di Hub eventi esistente. Spazio dei nomi dell'Hub eventi di Azure Usare il menu a discesa per selezionare uno spazio dei nomi di Hub eventi esistente nella sottoscrizione. Istanza di hub eventi Usare il menu a discesa per selezionare un hub eventi esistente nello spazio dei nomi. Tipo di autenticazione Selezionare Assegnato dall'utente, quindi usare il menu a discesa per selezionare l'identità assegnata dall'utente creata nell'hub eventi.
Selezionare Crea e avanti. È possibile continuare con la procedura guidata per creare una route che punta a questo endpoint oppure chiudere la procedura guidata.
È possibile modificare il tipo di autenticazione di un endpoint personalizzato esistente. Usare la procedura seguente per modificare un endpoint:
Nell'hub IoT, selezionare Routing dei messaggi nel riquadro di spostamento sinistro e quindi Endpoint personalizzati.
Selezionare la casella di controllo per l'endpoint personalizzato da modificare e quindi selezionare Modifica tipo di autenticazione.
Scegliere il nuovo tipo di autenticazione per questo endpoint e quindi selezionare Salva.
Configurare il caricamento di file con identità gestite
La funzionalità di caricamento di file dell'hub IoT consente ai dispositivi di caricare i file in un account di archiviazione di proprietà del cliente. Per consentire il caricamento dei file, l'hub IoT deve disporre di connettività all'account di archiviazione. Analogamente al routing dei messaggi, è possibile scegliere il tipo di autenticazione preferito e l'identità gestita per la connettività in uscita dell'hub IoT all'account di Archiviazione di Azure.
Nel portale di Azure passare all'account di archiviazione.
Seleziona Controllo di accesso (IAM).
Selezionare Aggiungi > Aggiungi assegnazione di ruolo.
Nella scheda Ruolo, selezionare Contributore dati BLOB di archiviazione. (Non selezionare Collaboratore oCollaboratore account di archiviazione).
Nella scheda Membri selezionare Identità gestita e quindi Seleziona membri.
Per le identità gestite assegnate dall'utente, selezionare la sottoscrizione, selezionare Identità gestita assegnata dall'utente e quindi selezionare l'identità gestita assegnata dall'utente.
Per le identità gestite assegnate dal sistema, selezionare la sottoscrizione, selezionare Tutte le identità gestite assegnate dal sistema e quindi selezionare il nome della risorsa dell'hub IoT.
Nella scheda Rivedi e assegna selezionare Rivedi e assegna per assegnare il ruolo.
Per altre informazioni sulle assegnazioni di ruolo, vedere Assegnare ruoli di Azure tramite il portale di Azure.
Se è necessario limitare la connettività all'account di archiviazione tramite una rete virtuale, è necessario attivare l'eccezione di prima parte Microsoft attendibile per concedere all'hub IoT l'accesso all'account di archiviazione. Nella pagina delle risorse dell'account di archiviazione, passare alla scheda Firewall e reti virtuali e abilitare l'opzione Consenti l'accesso dalle reti selezionate. Nell'elenco Eccezioni selezionare la casella Consenti ai servizi Microsoft attendibili di accedere a questo account di archiviazione e quindi selezionare Salva. Altre informazioni sul supporto dell'hub IoT per le reti virtuali con Collegamento privato di Azure.
Nota
È necessario completare i passaggi precedenti per assegnare all'identità gestita l'accesso corretto, prima di salvare l'account di archiviazione nell'hub IoT per il caricamento di file usando l'identità gestita. Attendere alcuni minuti per la propagazione dell'assegnazione di ruolo.
Nella pagina delle risorse dell'hub IoT, passare alla scheda Caricamento file.
Nella pagina visualizzata, selezionare il contenitore che si desidera utilizzare nell'archivio BLOB, configurare i valori per i campi Impostazioni di notifica file, Durata TTL della firma di accesso condiviso, Durata TTL predefinita e Numero massimo di distribuzioni in base alle esigenze. Scegliere il tipo di autenticazione preferito e selezionare Salva. Se viene visualizzato un errore in questo passaggio, impostare temporaneamente l'account di archiviazione per consentire l'accesso da Tutte le reti, quindi riprovare. È possibile configurare il firewall nell'account di archiviazione al termine della configurazione Caricamento file.
Nota
Nello scenario di caricamento dei file, sia l'hub che il dispositivo devono connettersi con l'account di archiviazione. I passaggi precedenti consentono di connettere l'hub IoT all'account di archiviazione con il tipo di autenticazione desiderato. È necessario connettere il dispositivo all'archiviazione utilizzando il SAS URI. Attualmente, l'URI SAS (firma di accesso condiviso) viene generato usando la stringa di connessione. Seguire la procedura descritta in Caricare file con l'hub IoT.
Configurare l'importazione/esportazione di dispositivi in blocco con identità gestite
L'hub IoT supporta la funzionalità per importare ed esportare le informazioni sul dispositivo in blocco da o in un BLOB di archiviazione fornito dal cliente. Questa funzionalità richiede la connettività dall'hub IoT all'account di archiviazione.
Nel portale di Azure passare all'account di archiviazione.
Seleziona Controllo di accesso (IAM).
Selezionare Aggiungi > Aggiungi assegnazione di ruolo.
Nella scheda Ruolo, selezionare Contributore dati BLOB di archiviazione. (Non selezionare Collaboratore oCollaboratore account di archiviazione).
Nella scheda Membri selezionare Identità gestita e quindi Seleziona membri.
Per le identità gestite assegnate dall'utente, selezionare la sottoscrizione, selezionare Identità gestita assegnata dall'utente e quindi selezionare l'identità gestita assegnata dall'utente.
Per le identità gestite assegnate dal sistema, selezionare la sottoscrizione, selezionare Tutte le identità gestite assegnate dal sistema e quindi selezionare il nome della risorsa dell'hub IoT.
Nella scheda Rivedi e assegna selezionare Rivedi e assegna per assegnare il ruolo.
Per altre informazioni sulle assegnazioni di ruolo, vedere Assegnare ruoli di Azure tramite il portale di Azure
Uso dell'API REST o dell'SDK per i processi di importazione ed esportazione
È ora possibile usare le API REST di Azure IoT per la creazione di processi di importazione ed esportazione. È necessario specificare le proprietà seguenti nel corpo della richiesta:
- storageAuthenticationType: impostare il valore su identityBased.
- inputBlobContainerUri: impostare questa proprietà solo per i processi di importazione.
- outputBlobContainerUri: impostare questa proprietà per i processi di importazione ed esportazione.
- identity: impostare il valore all'identità gestita da usare.
Gli SDK dell'hub IoT di Azure supportano questa funzionalità anche nel gestore del Registro di sistema del client del servizio. Il frammento di codice seguente mostra come avviare un processo di importazione o esportazione usando l'SDK C#.
Frammento di codice C#
// Create an export job
JobProperties jobProperties = JobProperties.CreateForExportJob(
outputBlobContainerUri: blobContainerUri,
excludeKeysInExport: false,
storageAuthenticationType: StorageAuthenticationType.IdentityBased,
identity: new ManagedIdentity
{
userAssignedIdentity = userDefinedManagedIdentityResourceId
});
// Create an import job
JobProperties jobProperties = JobProperties.CreateForImportJob(
inputBlobContainerUri: blobContainerUri,
outputBlobContainerUri: blobContainerUri,
storageAuthenticationType: StorageAuthenticationType.IdentityBased,
identity: new ManagedIdentity
{
userAssignedIdentity = userDefinedManagedIdentityResourceId
});
Frammento di codice Python
# see note below
iothub_job_manager = IoTHubJobManager("<IoT Hub connection information>")
# Create an import job
result = iothub_job_manager.create_import_export_job(JobProperties(
type="import",
input_blob_container_uri="<input container URI>",
output_blob_container_uri="<output container URI>",
storage_authentication_type="identityBased",
identity=ManagedIdentity(
user_assigned_identity="<resource ID of user assigned managed identity>"
)
))
# Create an export job
result = iothub_job_manager.create_import_export_job(JobProperties(
type="export",
output_blob_container_uri="<output container URI>",
storage_authentication_type="identityBased",
exclude_keys_in_export=True,
identity=ManagedIdentity(
user_assigned_identity="<resource ID of user assigned managed identity>"
)
))
Nota
- Se storageAuthenticationType è impostato su identityBased e la proprietà userAssignedIdentity non è Null, i processi usano l'identità gestita assegnata dall'utente specificata.
- Se l'hub IoT non è configurato con l'identità gestita assegnata dall'utente specificata in userAssignedIdentity, il processo ha esito negativo.
- Se storageAuthenticationType è impostato su identityBased la proprietà userAssignedIdentity è null, i processi usano l'identità assegnata dal sistema.
- Se l'hub IoT non è configurato con l'identità gestita assegnata dall'utente, il processo ha esito negativo.
- Se storageAuthenticationType è impostato su identityBased e le identità gestite assegnate dall'utente o assegnate dal sistema non sono configurate nell'hub, il processo ha esito negativo.
Esempi di SDK
Passaggi successivi
Usare i collegamenti seguenti per altre informazioni sulle funzionalità dell'hub IoT: