Ottenere la chiave di delega utente

L'operazione Get User Delegation Key ottiene una chiave che può essere usata per firmare una firma di accesso condiviso di delega utente (firma di accesso condiviso). Una firma di accesso condiviso di delega utente concede l'accesso alle risorse Archiviazione BLOB di Azure usando le credenziali di Microsoft Entra. L'operazione Get User Delegation Key è disponibile nella versione 2018-11-09 e versioni successive.

Richiesta

Creare l'operazione Get User Delegation Key come illustrato di seguito. HTTPS è obbligatorio. Sostituire myaccount con il nome dell'account di archiviazione.

URI richiesta del metodo POST Versione HTTP
https://myaccount.blob.core.windows.net/?restype=service&comp=userdelegationkey HTTP/1.1

Richiesta del servizio di archiviazione emulata

Quando si effettua una richiesta nel servizio di archiviazione locale, specificare il nome host locale e la porta di archiviazione BLOB come 127.0.0.1:10000, seguita dal nome dell'account di archiviazione locale:

URI richiesta del metodo POST Versione HTTP
http://127.0.0.1:10000/devstoreaccount1/?restype=service&comp=userdelegationkey HTTP/1.1

Per altre informazioni, vedere Usare l'emulatore Azurite per lo sviluppo locale di Archiviazione di Azure.

Parametri URI

Nell'URI richiesta è possibile specificare i seguenti parametri aggiuntivi.

Parametro Descrizione
timeout Facoltativa. Il parametro timeout viene espresso in secondi. Per altre informazioni, vedere Impostare timeout per le operazioni di archiviazione BLOB.

Intestazioni della richiesta

Nella seguente tabella vengono descritte le intestazioni di richiesta obbligatorie e facoltative.

Intestazione della richiesta Descrizione
Authorization Obbligatorio. Specifica lo schema di autorizzazione. È supportata solo l'autorizzazione con Microsoft Entra ID. Per altre informazioni, vedere Autorizzare con Microsoft Entra ID.
x-ms-version Obbligatorio per tutte le richieste autorizzate. Per altre informazioni, vedere Controllo delle versioni per i servizi di archiviazione di Azure.
x-ms-client-request-id facoltativo. Fornisce un valore opaco generato dal client con un limite di caratteri di 1 kibibyte (KiB) registrato nei log quando la registrazione è configurata. È consigliabile usare questa intestazione per correlare le attività lato client con le richieste ricevute dal server. Per altre informazioni, vedere Monitorare Archiviazione BLOB di Azure.

Testo della richiesta

Il formato del corpo della richiesta è il seguente:

<?xml version="1.0" encoding="utf-8"?>  
<KeyInfo>  
    <Start>String, formatted ISO Date</Start>
    <Expiry>String, formatted ISO Date </Expiry>
</KeyInfo>  

Gli elementi del corpo della richiesta sono descritti nella tabella seguente:

Elemento Descrizione
Inizia Obbligatorio. Ora di inizio per la firma di accesso condiviso della delega utente, in formato data ISO. Deve essere una data e un'ora validi entro sette giorni dalla data corrente.
Expiry Obbligatorio. Ora di scadenza della firma di accesso condiviso della delega utente, in formato data ISO. Deve essere una data e un'ora validi entro sette giorni dalla data corrente.

Risposta

Nella risposta sono inclusi un codice di stato HTTP e un set di intestazioni per la risposta.

Codice stato

Un'operazione completata correttamente restituisce 200 (OK).

Per altre informazioni sui codici di stato, vedere Codici di stato e di errore.

Intestazioni di risposta

Nella risposta per questa operazione sono incluse le intestazioni riportate di seguito; inoltre, possono essere incluse intestazioni HTTP standard aggiuntive. Tutte le intestazioni standard sono conformi alla specifica del protocollo HTTP/1.1.

Intestazione risposta Descrizione
x-ms-request-id Identifica in modo univoco la richiesta effettuata e può essere usata per risolvere la richiesta. Per altre informazioni, vedere Risolvere i problemi relativi alle operazioni api.
x-ms-version Versione di Archiviazione BLOB usata per eseguire la richiesta.
Date Valore di data/ora UTC generato dal servizio, che indica l'ora in cui è stata avviata la risposta.
x-ms-client-request-id Può essere usato per risolvere le richieste e le risposte corrispondenti. Il valore di questa intestazione è uguale al valore dell'intestazione x-ms-client-request-id se presente nella richiesta e il valore non contiene più di 1.024 caratteri ASCII visibili. Se l'intestazione x-ms-client-request-id non è presente nella richiesta, non sarà presente nella risposta.

Corpo della risposta

Il formato del corpo della risposta è il seguente:

<?xml version="1.0" encoding="utf-8"?>
<UserDelegationKey>
    <SignedOid>String containing a GUID value</SignedOid>
    <SignedTid>String containing a GUID value</SignedTid>
    <SignedStart>String formatted as ISO date</SignedStart>
    <SignedExpiry>String formatted as ISO date</SignedExpiry>
    <SignedService>b</SignedService>
    <SignedVersion>String specifying REST api version to use to create the user delegation key</SignedVersion>
    <Value>String containing the user delegation key</Value>
</UserDelegationKey>

Nella tabella seguente vengono descritti gli elementi del corpo della risposta:

Elemento Descrizione
SignedOid Identificatore non modificabile per un oggetto nel sistema di identità Microsoft.
SignedTid GUID che rappresenta il tenant Microsoft Entra che l'utente proviene.
Avvio firmato Ora di inizio della chiave di delega utente, in formato data ISO.
SignedExpiry Ora di scadenza della chiave di delega utente, in formato data ISO.
SignedService Servizio per cui può essere usata la chiave di delega utente, in cui b rappresenta l'archiviazione BLOB.
SignedVersion Versione dell'API REST usata per ottenere la chiave di delega utente.
Valore Chiave di delega utente.

Autorizzazione

L'autorizzazione è necessaria quando si chiama qualsiasi operazione di accesso ai dati in Archiviazione di Azure. È possibile autorizzare l'operazione Get User Delegation Key solo usando Microsoft Entra ID.

Autorizzazioni

L'entità di sicurezza che richiede la chiave di delega utente deve disporre delle autorizzazioni appropriate a tale scopo. Un'entità di sicurezza Microsoft Entra può essere un utente, un gruppo, un'entità servizio o un'identità gestita.

Di seguito è riportata l'azione RBAC necessaria per un'entità di sicurezza Microsoft Entra per chiamare l'operazione Get User Delegation Key e il ruolo di controllo degli accessi in base al ruolo predefinito di Azure con privilegi minimi che include questa azione:

Qualsiasi ruolo predefinito che include questa azione di controllo degli accessi in base al ruolo di Azure, esplicitamente o come parte di una definizione con caratteri jolly, può chiamare l'operazione Get User Delegation Key .

Per altre informazioni sull'assegnazione dei ruoli tramite controllo degli accessi in base al ruolo di Azure, vedere Assegnare un ruolo di Azure per l'accesso ai dati BLOB.

Poiché l'operazione Get User Delegation Key agisce a livello di account di archiviazione, l'azione Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey deve essere ambito a livello di account di archiviazione, gruppo di risorse o sottoscrizione. Se l'entità di sicurezza viene assegnata a uno dei ruoli predefiniti elencati in precedenza o a un ruolo personalizzato che include l'azione Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey , a livello di account di archiviazione, il gruppo di risorse o la sottoscrizione, l'entità di sicurezza sarà in grado di richiedere la chiave di delega utente.

Se l'entità di sicurezza viene assegnata a un ruolo che consente l'accesso ai dati, ma è compreso nell'ambito di un contenitore, è inoltre possibile assegnare il ruolo Delegator BLOB di archiviazione a tale entità di sicurezza a livello di account di archiviazione, gruppo di risorse o sottoscrizione. Il ruolo Delegar BLOB di archiviazione concede le autorizzazioni dell'entità di sicurezza per richiedere la chiave di delega utente.

Per altre informazioni sui ruoli di controllo degli accessi in base al ruolo per Archiviazione di Azure, vedere Autorizzare con Azure Active Directory.

Commenti

Usare la chiave di delega utente per creare una firma di accesso condiviso di delega utente. Includere i campi restituiti nella risposta al Get User Delegation Key token di firma di accesso condiviso della delega utente. Per altre informazioni, vedere Creare una firma di accesso condiviso di delega utente.

La chiave di delega utente non può essere usata per accedere direttamente alle risorse di archiviazione BLOB.

Fatturazione

Le richieste di prezzi possono derivare dai client che usano le API di archiviazione BLOB, direttamente tramite l'API REST dell'archiviazione BLOB o da una libreria client di Archiviazione di Azure. Queste richieste accumulano addebiti per transazione. Il tipo di transazione influisce sul modo in cui viene addebitato l'account. Ad esempio, le transazioni di lettura si accumulano in una categoria di fatturazione diversa rispetto alle transazioni di scrittura. Nella tabella seguente viene illustrata la categoria di fatturazione per Get User Delegation Key le richieste in base al tipo di account di archiviazione:

Operazione Tipo di account di archiviazione Categoria di fatturazione
Ottenere la chiave di delega utente BLOB di blocchi Premium
Utilizzo generico v2 Standard
Altre operazioni
Ottenere la chiave di delega utente Utilizzo generico standard v1 Operazioni di lettura

Per informazioni sui prezzi per la categoria di fatturazione specificata, vedere prezzi Archiviazione BLOB di Azure.

Vedi anche