Creare criteri di accesso archiviati con .NET

Un criterio di accesso archiviato offre un ulteriore livello di controllo sulle firme di accesso condiviso a livello di servizio sul lato server. La definizione di un criterio di accesso archiviato permette di raggruppare le firme di accesso condiviso e fornire limitazioni aggiuntive per le firme di accesso condiviso vincolate dal criterio. È possibile utilizzare un criterio di accesso archiviato per modificare l'ora di inizio, l'ora di scadenza o le autorizzazioni di una firma di accesso condiviso oppure per revocarla dopo l'emissione.

I criteri di accesso archiviati sono supportati dalle seguenti risorse di archiviazione di Azure:

  • Contenitori BLOB
  • Condivisioni file
  • Code
  • Tabelle

Nota

I criteri di accesso archiviati in un contenitore possono essere associati a una firma di accesso condiviso che concede le autorizzazioni al contenitore stesso o ai BLOB in esso contenuti. In modo simile, i criteri di accesso archiviati in una condivisione file possono essere associati a una firma di accesso condiviso che concede le autorizzazioni alla condivisione stessa o ai file in esso contenuti.

I criteri di accesso archiviati sono supportati solo per una firma di accesso condiviso di servizio. I criteri di accesso archiviati non sono supportati per la firma di accesso condiviso dell'account o della delega utente.

Per altre informazioni sui criteri di accesso archiviati, vedere Creare un criterio di accesso archiviato.

Creare un criterio di accesso archiviato

L'operazione REST sottostante per creare un criterio di accesso archiviato è Impostare l'ACL contenitore. È necessario autorizzare l'operazione a creare criteri di accesso archiviati tramite chiave condivisa usando le chiavi di accesso dell'account in una stringa di connessione. L'autorizzazione dell'operazione di Imposta contenitore ACL con le credenziali di Microsoft Entra non è supportata. Per altre informazioni, vedere Autorizzazioni per chiamare operazioni sui dati.

I seguenti esempi di codice creano un criterio di accesso archiviato su un contenitore. È possibile usare i criteri di accesso per specificare i vincoli per una firma di accesso condiviso del servizio sul contenitore o i relativi BLOB.

Per creare criteri di accesso archiviati in un contenitore con la versione 12 della libreria client .NET per Archiviazione di Azure, chiamare uno dei metodi seguenti:

L'esempio seguente crea un criterio di accesso archiviato attivo per un giorno che concede autorizzazioni di lettura/scrittura:

async static Task CreateStoredAccessPolicyAsync(string containerName)
{
    string connectionString = "";

    // Use the connection string to authorize the operation to create the access policy.
    // Azure AD does not support the Set Container ACL operation that creates the policy.
    BlobContainerClient containerClient = new BlobContainerClient(connectionString, containerName);

    try
    {
        await containerClient.CreateIfNotExistsAsync();

        // Create one or more stored access policies.
        List<BlobSignedIdentifier> signedIdentifiers = new List<BlobSignedIdentifier>
        {
            new BlobSignedIdentifier
            {
                Id = "mysignedidentifier",
                AccessPolicy = new BlobAccessPolicy
                {
                    StartsOn = DateTimeOffset.UtcNow.AddHours(-1),
                    ExpiresOn = DateTimeOffset.UtcNow.AddDays(1),
                    Permissions = "rw"
                }
            }
        };
        // Set the container's access policy.
        await containerClient.SetAccessPolicyAsync(permissions: signedIdentifiers);
    }
    catch (RequestFailedException e)
    {
        Console.WriteLine(e.ErrorCode);
        Console.WriteLine(e.Message);
    }
    finally
    {
        await containerClient.DeleteAsync();
    }
}

Vedi anche

Risorse

Per esempi di codice correlati che usano SDK .NET versione 11.x deprecata, vedere Esempi di codice con .NET versione 11.x.