Condividi tramite


Autorizzare l'accesso alle code usando Microsoft Entra ID

Azure Storage supporta l'uso di Microsoft Entra ID per autorizzare le richieste ai dati delle code. Con Microsoft Entra ID è possibile usare il controllo degli accessi in base al ruolo di Azure per concedere le autorizzazioni a un'entità di sicurezza, che può essere un utente, un gruppo o un'entità servizio dell'applicazione. L'entità di sicurezza viene autenticata da Microsoft Entra ID al fine di restituire un token OAuth 2.0. Il token può quindi essere usato per autorizzare una richiesta al servizio di coda.

L'autorizzazione con Microsoft Entra ID offre maggiore sicurezza e facilità d'uso tramite l'autorizzazione con chiave condivisa. Microsoft consiglia di usare l'autorizzazione di Microsoft Entra con le applicazioni di accodamento quando possibile per garantire l'accesso con i privilegi minimi necessari.

L'autorizzazione con Microsoft Entra ID è disponibile per tutti gli account di archiviazione per utilizzo generico in tutte le aree pubbliche e nei cloud nazionali. Solo gli account di archiviazione creati con il modello di distribuzione Azure Resource Manager supportano l'autorizzazione Microsoft Entra.

Panoramica dell'ID Microsoft Entra per le code

Quando un'entità di sicurezza (un utente, un gruppo o un'applicazione) tenta di accedere a una risorsa della coda, la richiesta deve essere autorizzata, a meno che non sia disponibile una coda per l'accesso anonimo. Con Microsoft Entra ID, l'accesso a una risorsa è un processo in due passaggi:

  1. Prima di tutto, l'identità dell'entità di sicurezza viene autenticata e viene restituito un token OAuth 2.0.

    Il passaggio di autenticazione richiede che un'applicazione richieda un token di accesso OAuth 2.0 in fase di esecuzione. Se un'applicazione viene eseguita da un'entità di Azure, ad esempio una macchina virtuale di Azure, un set di scalabilità di macchine virtuali o un'app di Funzioni di Azure, può usare un'identità gestita per accedere ai dati della coda.

  2. Il token viene quindi passato come parte di una richiesta al servizio di accodamento e usato dal servizio per autorizzare l'accesso alla risorsa specificata.

    Il passaggio di autorizzazione richiede che all'entità di sicurezza che effettua la richiesta vengano assegnati uno o più ruoli RBAC di Azure. Per altre informazioni, vedere Assegnare ruoli di Azure per i diritti di accesso.

Usare un account Microsoft Entra con il portale, PowerShell o Azure CLI

Per informazioni su come accedere ai dati nel portale di Azure con un account Microsoft Entra, vedere Accesso ai dati dal portale di Azure. Per informazioni su come chiamare i comandi di Azure PowerShell o dell'interfaccia della riga di comando di Azure con un account Microsoft Entra, vedere Accesso ai dati da PowerShell o dall'interfaccia della riga di comando di Azure.

Usare Microsoft Entra ID per autorizzare l'accesso nel codice dell'applicazione

Per autorizzare l'accesso ad Archiviazione di Azure con Microsoft Entra ID, è possibile usare una delle librerie client seguenti per acquisire un token OAuth 2.0:

  • La libreria client di Identità di Azure è consigliata per la maggior parte degli scenari di sviluppo.
  • Microsoft Authentication Library (MSAL) può essere adatto per determinati scenari avanzati.

Libreria client di Identità di Azure

La libreria client di Identità di Azure semplifica il processo di recupero di un token di accesso OAuth 2.0 per l'autorizzazione con Microsoft Entra ID tramite Azure SDK. Le versioni più recenti delle librerie client di Archiviazione di Azure per .NET, Java, Python, JavaScript e Go si integrano con le librerie di identità di Azure per ognuno di questi linguaggi per fornire un modo semplice e sicuro per acquisire un token di accesso per l'autorizzazione delle richieste di Archiviazione di Azure.

Un vantaggio della libreria client di Identità di Azure è che consente di usare lo stesso codice per acquisire il token di accesso se l'applicazione è in esecuzione nell'ambiente di sviluppo o in Azure. La libreria client di Identità di Azure restituisce un token di accesso per un'entità di sicurezza. Quando il codice è in esecuzione in Azure, l'entità di sicurezza può essere un'identità gestita per le risorse di Azure, un'entità di servizio o un utente o un gruppo. Nell'ambiente di sviluppo, la libreria client fornisce un token di accesso per un utente o un'entità servizio a scopo di test.

Il token di accesso restituito dalla libreria client di Identità di Azure viene incapsulato in una credenziale di token. È quindi possibile usare le credenziali del token per ottenere un oggetto client del servizio da usare per eseguire operazioni autorizzate in Archiviazione di Azure. Un modo semplice per ottenere il token di accesso e le credenziali del token consiste nell'usare la classe DefaultAzureCredential fornita dalla libreria client di Identità di Azure. DefaultAzureCredential tenta di ottenere le credenziali del token provando in sequenza diversi tipi di credenziali. DefaultAzureCredential funziona sia nell'ambiente di sviluppo che in Azure.

La tabella seguente punta a informazioni aggiuntive per autorizzare l'accesso ai dati in vari scenari:

Lingua .NET Giava JavaScript Pitone Vai
Panoramica dell'autenticazione con Microsoft Entra ID Come autenticare le applicazioni .NET con i servizi di Azure Autenticazione di Azure con Java e Identità di Azure Autenticare le app JavaScript in Azure utilizzando Azure SDK Autenticare le app Python su Azure utilizzando l'Azure SDK
Autenticazione con i service principal per sviluppatori Autenticare le app .NET nei servizi di Azure durante lo sviluppo locale usando le entità servizio Autenticazione Azure con entità servizio Autenticazione delle app JS per i servizi di Azure usando un'entità del servizio Autenticare le app Python nei servizi di Azure durante lo sviluppo locale usando le entità servizio Autenticazione di Azure SDK per Go con un'entità servizio
Autenticazione con account sviluppatore o utente Autenticare le app .NET nei servizi di Azure durante lo sviluppo locale usando gli account per sviluppatori Autenticazione di Azure con credenziali utente Autenticare le app JS nei servizi di Azure con account di sviluppo Autenticare le app Python nei servizi di Azure durante lo sviluppo locale usando gli account per sviluppatori Autenticazione di Azure con Azure SDK per Go
Autenticazione da app ospitate in Azure Autenticazione di app ospitate in Azure in risorse di Azure con Azure SDK per .NET Autenticare le applicazioni Java ospitate in Azure Autenticazione di app JavaScript ospitate in Azure con Azure SDK per JavaScript Autenticazione delle app ospitate su Azure verso le risorse Azure con l'SDK Azure per Python Autenticazione con Azure SDK per Go usando un'identità gestita
Autenticazione da app locali Eseguire l'autenticazione alle risorse di Azure da app .NET ospitate in locale Autenticare le app JavaScript locali nelle risorse di Azure Eseguire l'autenticazione alle risorse di Azure dalle app Python ospitate in locale
Panoramica della libreria client di identità libreria client di Azure Identity per .NET Libreria client Azure Identity per Java Libreria client di Azure Identity per JavaScript libreria client di Identità di Azure per Python Libreria cliente di Identità di Azure per Go

Microsoft Authentication Library (MSAL)

Anche se Microsoft consiglia di usare la libreria client di Identità di Azure quando possibile, la libreria MSAL potrebbe essere appropriata per l'uso in determinati scenari avanzati. Per altre informazioni, vedere Informazioni su MSAL.

Quando si usa MSAL per acquisire un token OAuth per l'accesso ad Azure Storage, è necessario fornire un ID della risorsa Microsoft Entra. L'ID risorsa Microsoft Entra indica il gruppo di destinatari per il quale è possibile usare un token rilasciato per fornire l'accesso a una risorsa di Azure. Nel caso di Archiviazione di Azure, l'ID risorsa può essere specifico di un singolo account di archiviazione oppure può essere applicato a qualsiasi account di archiviazione.

Quando si specifica un ID risorsa specifico di un singolo account di archiviazione e servizio, l'ID risorsa viene usato per acquisire un token per autorizzare le richieste solo all'account e al servizio specificati. La tabella seguente elenca il valore da usare per l'ID risorsa, in base al cloud in uso. Sostituire <account-name> con il nome dell'account di archiviazione.

Nuvola ID risorsa
Azure Global https://<account-name>.queue.core.windows.net
Azure Government (Servizi governativi di Azure) https://<account-name>.queue.core.usgovcloudapi.net
Azure China 21Vianet https://<account-name>.queue.core.chinacloudapi.cn

È anche possibile specificare un ID risorsa applicabile a qualsiasi account di archiviazione, come illustrato nella tabella seguente. Questo ID risorsa è lo stesso per tutti i cloud pubblici e sovrani e viene usato per acquisire un token per autorizzare le richieste a qualsiasi account di archiviazione.

Nuvola ID risorsa
Azure Global
Azure Government (Servizi governativi di Azure)
Azure China 21Vianet
https://storage.azure.com/

Assegnare ruoli di Azure per i diritti di accesso

Microsoft Entra autorizza i diritti di accesso alle risorse protette tramite Azure RBAC. Archiviazione di Azure definisce un set di ruoli RBAC predefiniti che includono set comuni di autorizzazioni utilizzate per accedere ai dati delle code. È anche possibile definire ruoli personalizzati per l'accesso ai dati della coda. Per altre informazioni sull'assegnazione dei ruoli di Azure per l'accesso alla coda, vedere Assegnare un ruolo di Azure per l'accesso ai dati della coda.

Un'entità di sicurezza di Microsoft Entra può essere un utente, un gruppo, un'entità servizio applicazione oppure un'identità gestita per le risorse di Azure. I ruoli RBAC assegnati a un'entità di sicurezza determinano le autorizzazioni che l'entità avrà. Per altre informazioni sull'assegnazione dei ruoli di Azure per l'accesso alla coda, vedere Assegnare un ruolo di Azure per l'accesso ai dati della coda

In alcuni casi potrebbe essere necessario abilitare l'accesso granulare alle risorse della coda o semplificare le autorizzazioni quando si dispone di un numero elevato di assegnazioni di ruolo per una risorsa di archiviazione. È possibile usare il controllo degli accessi in base all'attributo di Azure per configurare le condizioni per le assegnazioni di ruolo. È possibile usare le condizioni con un ruolo personalizzato o selezionare ruoli predefiniti. Per ulteriori informazioni sulla configurazione delle condizioni per le risorse di archiviazione di Azure con ABAC, consultare Autorizzare l'accesso alle code utilizzando le condizioni di assegnazione dei ruoli di Azure. Per informazioni dettagliate sulle condizioni supportate per le operazioni sui dati della coda, vedere Azioni e attributi per le condizioni di assegnazione di ruolo di Azure per le code di Azure.

Annotazioni

Quando si crea un account di archiviazione di Azure, non vengono assegnate automaticamente le autorizzazioni per accedere ai dati tramite Microsoft Entra ID. È necessario assegnare in modo esplicito a se stessi un ruolo di Azure per l'accesso all'archiviazione code. È possibile assegnarlo a livello di sottoscrizione, gruppo di risorse, account di archiviazione o coda.

Ambito della risorsa

Prima di assegnare un ruolo RBAC di Azure a un'entità di sicurezza, determina l'ambito di accesso di cui l'entità di sicurezza deve disporre. Le procedure consigliate determinano che è sempre consigliabile concedere solo l'ambito più ristretto possibile. I ruoli di Azure RBAC definiti su un ambito più ampio sono ereditati dalle risorse sottostanti.

È possibile definire l'ambito dell'accesso alle risorse della coda di Azure ai livelli seguenti, a partire dall'ambito più ristretto:

  • Una singola coda. In questo ambito, un'assegnazione di ruolo si applica ai messaggi nella coda e alle proprietà e ai metadati della coda.
  • Account di archiviazione dati. In questo ambito, un'assegnazione di ruolo si applica a tutte le code e ai relativi messaggi.
  • Il gruppo di risorse. In questo ambito, un'assegnazione di ruolo si applica a tutte le code in tutti gli account di archiviazione nel gruppo di risorse.
  • La sottoscrizione. In questo ambito, un'assegnazione di ruolo si applica a tutte le code presenti in tutti gli account di archiviazione dei vari gruppi di risorse all'interno della sottoscrizione.
  • Un gruppo di gestione. Nell'ambito di questo contesto, un'assegnazione di ruolo si applica a tutte le code presenti in tutti gli account di archiviazione, in ogni gruppo di risorse e in tutte le sottoscrizioni del gruppo di gestione.

Per ulteriori informazioni sull'ambito per le assegnazioni di ruolo Controllo degli accessi in base al ruolo di Azure, consultare Informazioni sull'ambito per il controllo degli accessi in base al ruolo di Azure.

Ruoli predefiniti di Azure per le code

Azure RBAC offre diversi ruoli predefiniti per autorizzare l'accesso ai dati della coda usando Microsoft Azure AD e OAuth. Alcuni esempi di ruoli che forniscono le autorizzazioni per le risorse dati in Archiviazione di Azure includono:

Per informazioni su come assegnare un ruolo predefinito di Azure a un'entità di sicurezza, vedere Assegnare un ruolo di Azure per l'accesso ai dati della coda. Per informazioni su come elencare i ruoli per il controllo degli accessi in base al ruolo di Azure e le relative autorizzazioni, vedere Elencare le definizioni dei ruoli di Azure.

Per altre informazioni sulla definizione dei ruoli predefiniti per Archiviazione di Azure, vedere Informazioni sulle definizioni dei ruoli. Per informazioni sulla creazione di ruoli personalizzati di Azure, vedere Ruoli personalizzati di Azure.

Solo i ruoli definiti in modo esplicito per l'accesso ai dati consentono a un'entità di sicurezza di accedere ai dati della coda. Ruoli integrati, ad esempio Proprietario, Collaboratoree Collaboratore account di archiviazione, consentono a un'entità di sicurezza di gestire un account di archiviazione, ma non forniscono l'accesso ai dati della coda all'interno di tale account tramite Microsoft Entra ID. Tuttavia, se un ruolo include Microsoft.Storage/storageAccounts/listKeys/action, un utente a cui è assegnato tale ruolo può accedere ai dati nell'account di archiviazione tramite l'autorizzazione con chiave condivisa con le chiavi di accesso dell'account. Per altre informazioni, vedere Scegliere come autorizzare l'accesso ai dati della coda nel portale di Azure.

Per informazioni dettagliate sui ruoli predefiniti di Azure per l'Archiviazione per i servizi dati e il servizio di gestione, vedere la sezione Archiviazione nei ruoli predefiniti di Azure per Azure RBAC. Per informazioni sui diversi tipi di ruoli che forniscono autorizzazioni in Azure, vedere Ruoli di Azure, ruoli di Microsoft Entra e ruoli di amministratore della sottoscrizione classica.

Importante

La propagazione delle assegnazioni di ruolo di Azure può richiedere fino a 30 minuti.

Autorizzazioni di accesso per le operazioni dei dati

Per informazioni dettagliate sulle autorizzazioni necessarie per chiamare operazioni specifiche del servizio Queue, consultare Autorizzazioni per chiamare le operazioni sui dati.

Accedere ai dati con un account Microsoft Entra

L'accesso ai dati della coda tramite il portale di Azure, PowerShell o l'interfaccia della riga di comando di Azure può essere autorizzato usando l'account Microsoft Entra dell'utente o usando le chiavi di accesso dell'account (autorizzazione con chiave condivisa).

Attenzione

L'autorizzazione con chiave condivisa non è consigliata perché potrebbe essere meno sicura. Per una sicurezza ottimale, disabilitare l'autorizzazione tramite chiave condivisa per l'account di archiviazione, come descritto in Impedire l'autorizzazione con chiave condivisa per un account di archiviazione di Azure.

L'uso di chiavi di accesso e stringhe di connessione deve essere limitato alle app di verifica iniziali o ai prototipi di sviluppo che non accedono a dati sensibili o di produzione. In caso contrario, le classi di autenticazione basate su token disponibili in Azure SDK devono essere sempre preferite quando si esegue l'autenticazione alle risorse di Azure.

Microsoft consiglia ai client di usare l'ID Microsoft Entra o una firma di accesso condiviso per autorizzare l'accesso ai dati in Archiviazione di Azure. Per altre informazioni, vedere Autorizzare le operazioni per l'accesso ai dati.

Accesso ai dati dal portale di Azure

Il portale di Azure può usare l'account Microsoft Entra o le chiavi di accesso dell'account per accedere ai dati della coda in un account di archiviazione di Azure. Lo schema di autorizzazione usato dal portale di Azure dipende dai ruoli di Azure assegnati all'utente.

Quando tenti di accedere ai dati della coda, il portale di Azure anzitutto controlla se ti è stato assegnato un ruolo di Azure con Microsoft.Storage/storageAccounts/listkeys/action. Se ti è stato assegnato un ruolo che include questa azione, il portale di Azure utilizza la chiave dell'account per accedere ai dati delle code tramite l'autorizzazione con chiave condivisa. Se non è stato assegnato un ruolo con questa azione, il portale di Azure tenta di accedere ai dati usando l'account Microsoft Entra.

Per accedere ai dati della coda dal portale di Azure usando l'account Microsoft Entra, sono necessarie le autorizzazioni per accedere ai dati della coda e sono necessarie anche le autorizzazioni per spostarsi tra le risorse dell'account di archiviazione nel portale di Azure. I ruoli predefiniti forniti da Archiviazione di Azure concedono l'accesso alle risorse della coda, ma non concedono autorizzazioni alle risorse dell'account di archiviazione. Per questo motivo, l'accesso al portale richiede anche l'assegnazione di un ruolo di Azure Resource Manager, ad esempio il ruolo Lettore , con ambito al livello dell'account di archiviazione o superiore. Il ruolo Lettore concede le autorizzazioni più limitate, ma è accettabile anche un altro ruolo di Azure Resource Manager che concede l'accesso alle risorse di gestione degli account di archiviazione. Per altre informazioni su come assegnare autorizzazioni agli utenti per l'accesso ai dati nel portale di Azure con un account Microsoft Entra, vedere Assegnare un ruolo di Azure per l'accesso ai dati della coda.

Il portale di Azure indica quale schema di autorizzazione è in uso quando si naviga verso una coda. Per altre informazioni sull'accesso ai dati nel portale, vedere Scegliere come autorizzare l'accesso ai dati della coda nel portale di Azure.

Accesso ai dati da PowerShell o dall'interfaccia della riga di comando di Azure

L'interfaccia della riga di comando di Azure e PowerShell supportano l'accesso con le credenziali di Microsoft Entra. Dopo l'accesso, la sessione viene eseguita con tali credenziali. Per altre informazioni, vedere uno degli articoli seguenti:

Passaggi successivi