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.
OAuth su REST per Azure Files consente agli utenti e alle applicazioni l'accesso in lettura e scrittura a livello amministratore alle condivisioni file di Azure tramite il protocollo di autenticazione OAuth, utilizzando Microsoft Entra ID per l'accesso basato sull'API REST. Gli utenti, i gruppi, i servizi proprietari, ad esempio il portale di Azure e le applicazioni di terze parti che usano interfacce REST, possono ora usare l'autenticazione OAuth e l'autorizzazione con un account Microsoft Entra per accedere ai dati nelle condivisioni file di Azure. I cmdlet di PowerShell e i comandi dell'interfaccia della riga di comando di Azure che chiamano le API REST possono anche usare OAuth per accedere alle condivisioni file di Azure. È necessario chiamare l'API REST usando un'intestazione esplicita per indicare la finalità di usare il privilegio aggiuntivo. Questo vale anche per l'accesso ad Azure PowerShell e all'interfaccia della riga di comando di Azure.
Importante
Questo articolo illustra come abilitare l'accesso a livello di amministratore alle condivisioni file di Azure per casi d'uso specifici dei clienti. Per un articolo più generale sull'autenticazione basata sull'identità per gli utenti finali, vedere Panoramica dell'autenticazione basata sull'identità di File di Azure per l'accesso SMB.
Si applica a
| Modello di gestione | Modello di fatturazione | Livello supporti | Ridondanza | Piccole e Medie Imprese (PMI) | NFS (Network File System) |
|---|---|---|---|---|---|
| Microsoft.Storage | Con provisioning v2 | HDD (standard) | Locale |
|
|
| Microsoft.Storage | Con provisioning v2 | HDD (standard) | Della zona |
|
|
| Microsoft.Storage | Con provisioning v2 | HDD (standard) | Geografica |
|
|
| Microsoft.Storage | Con provisioning v2 | HDD (standard) | GeoZone (GZRS) |
|
|
| Microsoft.Storage | Con provisioning v1 | SSD (Premium) | Locale |
|
|
| Microsoft.Storage | Con provisioning v1 | SSD (Premium) | Della zona |
|
|
| Microsoft.Storage | Pagamento in base al consumo | HDD (standard) | Locale |
|
|
| Microsoft.Storage | Pagamento in base al consumo | HDD (standard) | Della zona |
|
|
| Microsoft.Storage | Pagamento in base al consumo | HDD (standard) | Geografica |
|
|
| Microsoft.Storage | Pagamento in base al consumo | HDD (standard) | GeoZone (GZRS) |
|
|
Limitazioni
L'autorizzazione delle operazioni di dati dei file con Microsoft Entra ID è supportata solo per le versioni dell'API REST 2022-11-02 e successive.
Il supporto OAuth per Azure Files su REST per le API del piano dati REST che gestiscono le risorse FileService e FileShare è disponibile con le versioni dell'API REST 2024-11-04 e successive.
Vedere Controllo delle versioni per Archiviazione di Azure.
Casi d'uso dei clienti
L'autenticazione e l'autorizzazione OAuth con Azure Files tramite l'interfaccia API REST possono avvantaggiare i clienti negli scenari seguenti.
Integrazione di applicazioni e servizi
L'autenticazione e l'autorizzazione OAuth consentono agli sviluppatori di sviluppare applicazioni che accedono alle API REST di Archiviazione di Azure usando identità utente o applicazione di Microsoft Entra ID.
I clienti e i partner possono anche abilitare i servizi proprietari e di terze parti per configurare l'accesso necessario in modo sicuro e trasparente a un account di archiviazione del cliente.
Gli strumenti DevOps come il portale di Azure, PowerShell e l'interfaccia della riga di comando, AzCopy e Storage Explorer possono gestire i dati usando l'identità dell'utente, eliminando la necessità di gestire o distribuire le chiavi di accesso alle risorse di archiviazione.
Identità gestite
I clienti con applicazioni e identità gestite che richiedono l'accesso ai dati di condivisione file per scopi di backup, ripristino o controllo possono trarre vantaggio dall'autenticazione e dall'autorizzazione OAuth. L'applicazione delle autorizzazioni a livello di file e directory per ogni identità aggiunge complessità e potrebbe non essere compatibile con determinati carichi di lavoro. Ad esempio, i clienti potrebbero voler autorizzare un servizio di soluzione di backup ad accedere alle condivisioni file di Azure con accesso in sola lettura a tutti i file senza considerare le autorizzazioni specifiche dei file.
Sostituzione della chiave dell'account di archiviazione
Microsoft Entra ID offre maggiore sicurezza e facilità d'uso rispetto all'accesso con chiave condivisa. È possibile sostituire l'accesso alla chiave dell'account di archiviazione con l'autenticazione OAuth e l'autorizzazione per accedere alle condivisioni file di Azure con privilegi read-all/write-all. Questo approccio offre anche un controllo migliore e il monitoraggio dell'accesso utente specifico.
Accesso con privilegi e autorizzazioni di accesso per operazioni sui dati
Per usare la funzionalità Azure Files OAuth su REST, sono necessarie autorizzazioni aggiuntive da includere nel ruolo RBAC assegnato all'utente, al gruppo o al principale del servizio. Nell'ambito di questa funzionalità vengono introdotte due nuove azioni per i dati:
Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action
Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action
Gli utenti, i gruppi o le entità servizio che chiamano l'API REST con OAuth devono avere l'azione readFileBackupSemantics o writeFileBackupSemantics assegnata al ruolo che consente l'accesso ai dati. Si tratta di un requisito per usare questa funzionalità. Per informazioni dettagliate sulle autorizzazioni necessarie per chiamare operazioni specifiche del servizio file, vedere Autorizzazioni per chiamare le operazioni sui dati.
Questa funzionalità fornisce due nuovi ruoli predefiniti che includono queste nuove azioni.
| Ruolo | Azioni dati |
|---|---|
| Lettore con privilegi per i dati dei file di archiviazione | Microsoft.Storage/storageAccounts/fileServices/fileShares/files/readMicrosoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action |
| Collaboratore con privilegi per i dati dei file di archiviazione | Microsoft.Storage/storageAccounts/fileServices/fileShares/files/readMicrosoft.Storage/storageAccounts/fileServices/fileShares/files/writeMicrosoft.Storage/storageAccounts/fileServices/fileShares/files/deleteMicrosoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/actionMicrosoft.Storage/storageAccounts/fileServices/fileshares/files/modifypermissions/action |
Questi nuovi ruoli sono simili ai ruoli predefiniti esistenti Storage File Data SMB Share Reader e Storage File Data SMB Share Elevated Contributor, ma ci sono alcune differenze.
I nuovi ruoli contengono le azioni di dati aggiuntive necessarie per l'accesso OAuth.
Quando l'utente, il gruppo o l'entità servizio a cui sono assegnati i ruoli di Lettore privilegiato dei dati dei file di archiviazione o di Collaboratore privilegiato dei dati dei file di archiviazione chiama l'API FileREST Data usando OAuth, l'utente, il gruppo o l'entità servizio avrà:
- Lettore con privilegi per i dati dei file di archiviazione: Accesso in lettura completo su tutti i dati nelle condivisioni per tutti gli account di archiviazione configurati indipendentemente dalle autorizzazioni NTFS a livello di file/directory impostate.
- Collaboratore con privilegi per i dati dei file di archiviazione: lettura completa, scrittura, modifica degli elenchi di controllo di accesso, eliminazione dell'accesso a tutti i dati nelle condivisioni per tutti gli account di archiviazione configurati indipendentemente dalle autorizzazioni NTFS a livello di file/directory impostate.
Con queste autorizzazioni e ruoli speciali, il sistema ignora le autorizzazioni a livello di file/directory e consente l'accesso ai dati di condivisione file.
Con i nuovi ruoli e azioni sui dati, questa funzionalità consentirà privilegi a livello di account di archiviazione che sostituiscono tutte le autorizzazioni per file e cartelle in tutte le condivisioni di file all'interno dell'account di archiviazione. Tuttavia, i nuovi ruoli contengono solo le autorizzazioni per accedere ai servizi dati. Non includono autorizzazioni per accedere ai servizi di gestione delle condivisioni file (azioni nelle condivisioni file). Per usare questa funzionalità, assicurarsi di disporre delle autorizzazioni per l'accesso:
- l'account di archiviazione
- servizi di gestione delle condivisioni file
- servizi dati (i dati nella condivisione file)
Esistono molti ruoli predefiniti che forniscono l'accesso ai servizi di gestione. È anche possibile creare ruoli personalizzati con le autorizzazioni appropriate. Per ulteriori informazioni su Azure RBAC, vedere Controllo degli accessi in base al ruolo. Per altre informazioni sul modo in cui vengono definiti i ruoli predefiniti, vedere Informazioni sulle definizioni di ruolo.
Tenere presente che per il tipo di risorsa di condivisione file, l'ambito RBAC corrispondente usa shares nel piano di controllo (operazioni di gestione), ma usa fileshares nel piano dati (operazioni dati). Se provi a utilizzare un ID della risorsa di condivisione file che contiene shares nell'ambito RBAC o nelle stringhe di azione dei dati, non funzionerà. È necessario usare fileshares quando si assegnano RBAC, ad esempio:
/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>/fileServices/default/fileshares/<share-name>
Importante
Tutti i casi d'uso con caratteri jolly definiti per il percorso Microsoft.Storage/storageAccounts/fileServices/* o un ambito superiore erediteranno automaticamente l'accesso aggiuntivo e le autorizzazioni concesse tramite questa nuova azione dati. Per impedire l'accesso indesiderato o con privilegi elevati a File di Azure, sono stati implementati controlli aggiuntivi che richiedono agli utenti e alle applicazioni di indicare in modo esplicito la finalità di usare i privilegi aggiuntivi. È inoltre consigliabile che i clienti rivedano le assegnazioni di ruolo controllo degli accessi in base al ruolo degli utenti e sostituiscano qualsiasi utilizzo con caratteri jolly con autorizzazioni esplicite per garantire una corretta gestione degli accessi ai dati.
Autorizzare l'accesso ai dati dei file nel codice dell'applicazione
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 dal servizio file 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à 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 sul servizio File di Azure.
Nell'esempio di codice seguente viene illustrato come autorizzare un oggetto client usando l'ID Entra di Microsoft ed eseguire operazioni a livello di directory e file. In questo esempio si presuppone che la condivisione file esista già.
using Azure.Core;
using Azure.Identity;
using Azure.Storage.Files.Shares;
using Azure.Storage.Files.Shares.Models;
namespace FilesOAuthSample
{
internal class Program
{
static async Task Main(string[] args)
{
string tenantId = "";
string appId = "";
string appSecret = "";
string entraEndpoint = "";
string accountUri = "https://<storage-account-name>.file.core.windows.net/";
string shareName = "test-share";
string directoryName = "test-directory";
string fileName = "test-file";
TokenCredential tokenCredential = new ClientSecretCredential(
tenantId,
appId,
appSecret,
new TokenCredentialOptions()
{
AuthorityHost = new Uri(entraEndpoint)
});
// Set client options
ShareClientOptions clientOptions = new ShareClientOptions();
clientOptions.AllowTrailingDot = true;
clientOptions.AllowSourceTrailingDot = true;
// x-ms-file-intent=backup will automatically be applied to all APIs
// where it is required in derived clients
clientOptions.ShareTokenIntent = ShareTokenIntent.Backup;
ShareServiceClient shareServiceClient = new ShareServiceClient(
new Uri(accountUri),
tokenCredential,
clientOptions);
ShareClient shareClient = shareServiceClient.GetShareClient(shareName);
ShareDirectoryClient directoryClient = shareClient.GetDirectoryClient(directoryName);
await directoryClient.CreateAsync();
ShareFileClient fileClient = directoryClient.GetFileClient(fileName);
await fileClient.CreateAsync(maxSize: 1024);
await fileClient.GetPropertiesAsync();
}
}
}
Autorizzare l'accesso tramite l'API del piano dati FileREST
È anche possibile autorizzare l'accesso ai dati dei file usando il portale di Azure, Azure PowerShell o l'interfaccia della riga di comando di Azure.
Il portale di Azure può usare l'account Microsoft Entra o la chiave di accesso dell'account di archiviazione per accedere ai dati dei file 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 si tenta di accedere ai dati dei file, il portale di Azure controlla prima di tutto se ti è stato assegnato un ruolo di Azure con Microsoft.Storage/storageAccounts/listkeys/action. Se è stato assegnato un ruolo con questa azione, il portale di Azure usa la chiave dell'account per accedere ai dati dei file tramite l'autorizzazione della 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 dei file dal portale di Azure usando l'account Microsoft Entra, sono necessarie le autorizzazioni per accedere ai dati dei file e sono necessarie anche le autorizzazioni per spostarsi tra le risorse dell'account di archiviazione nel portale di Azure. I ruoli predefiniti forniti da Azure concedono l'accesso alle risorse file, 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 (ARM), ad esempio il ruolo Lettore , con ambito al livello dell'account di archiviazione o superiore. Il ruolo Lettore concede le autorizzazioni più restrittive, ma qualsiasi ruolo arm che concede l'accesso alle risorse di gestione degli account di archiviazione è accettabile.
Il portale di Azure indica quale schema di autorizzazione è in uso quando si passa a un contenitore. Per altre informazioni sull'accesso ai dati nel portale, vedere Scegliere come autorizzare l'accesso ai dati dei file nel portale di Azure.