Obtenir la clé de délégation d’utilisateur

L’opération Get User Delegation Key obtient une clé qui peut être utilisée pour signer une signature d’accès partagé (SAS) de délégation d’utilisateur. Une SAP de délégation d’utilisateur accorde l’accès aux ressources Stockage Blob Azure à l’aide des informations d’identification Microsoft Entra. L’opération Get User Delegation Key est disponible dans la version 2018-11-09 et ultérieure.

Requête

Construisez Get User Delegation Key comme suit. HTTPS est obligatoire. Remplacez myaccount par le nom de votre compte de stockage.

URI de requête de méthode POST Version HTTP
https://myaccount.blob.core.windows.net/?restype=service&comp=userdelegationkey HTTP/1.1

Demande de service de stockage émulée

Lorsque vous effectuez une demande auprès du service de stockage local, spécifiez le nom d’hôte local et le port de stockage Blob comme 127.0.0.1:10000, suivi du nom du compte de stockage local :

URI de requête de méthode POST Version HTTP
http://127.0.0.1:10000/devstoreaccount1/?restype=service&comp=userdelegationkey HTTP/1.1

Pour plus d’informations, consultez Utiliser l’émulateur Azurite à des fins de développement local pour Stockage Azure.

Paramètres URI

Les paramètres supplémentaires suivants peuvent être spécifiés dans l'URI de la demande.

Paramètre Description
timeout facultatif. Le paramètre timeout est exprimé en secondes. Pour plus d’informations, consultez Définir des délais d’attente pour les opérations de stockage Blob.

En-têtes de requête

Le tableau suivant décrit les en-têtes de demande obligatoires ou facultatifs.

En-tête de requête Description
Authorization Obligatoire. Spécifie le schéma d’autorisation. Seule l’autorisation avec Microsoft Entra ID est prise en charge. Pour plus d’informations, consultez Autoriser avec Microsoft Entra ID.
x-ms-version Obligatoire pour toutes les demandes autorisées. Pour plus d'informations, consultez la page Contrôle de version pour les services de Stockage Microsoft Azure.
x-ms-client-request-id facultatif. Fournit une valeur opaque générée par le client avec une limite de caractères de 1 kibioctet (Kio) enregistrée dans les journaux lors de la configuration de la journalisation. Nous vous recommandons vivement d’utiliser cet en-tête pour mettre en corrélation les activités côté client avec les demandes que le serveur reçoit. Pour plus d’informations, consultez Surveiller Stockage Blob Azure.

Corps de la demande

Le corps de la demande présente le format suivant :

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

Les éléments du corps de la requête sont décrits dans le tableau suivant :

Élément Description
Start Obligatoire. Heure de début de la sape de délégation d’utilisateur, au format DE date ISO. Il doit s’agir d’une date et d’une heure valides dans les sept jours suivant la date actuelle.
Expiration Obligatoire. Heure d’expiration de la sape de délégation d’utilisateur, au format DE date ISO. Il doit s’agir d’une date et d’une heure valides dans les sept jours suivant la date actuelle.

response

La réponse inclut un code d'état HTTP et un ensemble d'en-têtes de réponse.

Code d’état

Une opération réussie envoie le code d'état 200 (OK).

Pour plus d’informations sur les codes status, consultez Codes d’état et d’erreur.

En-têtes de réponse

La réponse de l'opération inclut les en-têtes suivants. La réponse peut aussi inclure des en-têtes HTTP standard supplémentaires. Tous les en-têtes standard sont conformes à la spécification du protocole HTTP/1.1.

En-tête de réponse Description
x-ms-request-id Identifie de manière unique la demande qui a été effectuée et peut être utilisée pour résoudre la demande. Pour plus d’informations, consultez Résoudre les problèmes liés aux opérations d’API.
x-ms-version Version de Stockage Blob utilisée pour exécuter la demande.
Date Valeur de date/heure UTC générée par le service, qui indique l’heure à laquelle la réponse a été lancée.
x-ms-client-request-id Peut être utilisé pour résoudre les problèmes liés aux demandes et aux réponses correspondantes. La valeur de cet en-tête est égale à la valeur de l’en-tête x-ms-client-request-id s’il est présent dans la requête et que la valeur ne contient pas plus de 1 024 caractères ASCII visibles. Si l’en-tête x-ms-client-request-id n’est pas présent dans la demande, il ne sera pas présent dans la réponse.

Response body

Le corps de la réponse présente le format suivant :

<?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>

Les éléments du corps de la réponse sont décrits dans le tableau suivant :

Élément Description
SignedOid Identificateur immuable d’un objet dans le système d’identité Microsoft.
SignedTid GUID qui représente le locataire Microsoft Entra dont l’utilisateur est issu.
SignedStart Heure de début de la clé de délégation utilisateur, au format de date ISO.
SignedExpiry Heure d’expiration de la clé de délégation utilisateur, au format de date ISO.
SignedService Service pour lequel la clé de délégation d’utilisateur peut être utilisée, où b représente le Stockage Blob.
SignedVersion Version de l’API REST utilisée pour obtenir la clé de délégation utilisateur.
Valeur Clé de délégation utilisateur.

Autorisation

Une autorisation est requise lors de l’appel d’une opération d’accès aux données dans stockage Azure. Vous ne pouvez autoriser l’opération qu’à l’aide Get User Delegation Key de Microsoft Entra ID.

Autorisations

Le principal de sécurité qui demande la clé de délégation utilisateur doit disposer des autorisations appropriées pour le faire. Un principal de sécurité Microsoft Entra peut être un utilisateur, un groupe, un principal de service ou une identité managée.

Vous trouverez ci-dessous l’action RBAC nécessaire pour qu’un principal de sécurité Microsoft Entra appelle l’opérationGet User Delegation Key, ainsi que le rôle Azure RBAC intégré le moins privilégié qui inclut cette action :

Tout rôle intégré qui inclut cette action RBAC Azure, explicitement ou dans le cadre d’une définition générique, est autorisé à appeler l’opération Get User Delegation Key .

Pour en savoir plus sur l’attribution de rôles à l’aide d’Azure RBAC, consultez Attribuer un rôle Azure pour l’accès aux données d’objets blob.

Étant donné que l’opération Get User Delegation Key agit au niveau du compte de stockage, l’action Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey doit être étendue au niveau du compte de stockage, du groupe de ressources ou de l’abonnement. Si le principal de sécurité se voit attribuer l’un des rôles intégrés précédemment répertoriés ou un rôle personnalisé qui inclut l’action Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey , au niveau du compte de stockage, du groupe de ressources ou de l’abonnement, le principal de sécurité peut demander la clé de délégation utilisateur.

Si le principal de sécurité se voit attribuer un rôle qui autorise l’accès aux données, mais est limité au niveau d’un conteneur, vous pouvez en outre attribuer le rôle De délégant Blob de stockage à ce principal de sécurité au niveau du compte de stockage, du groupe de ressources ou de l’abonnement. Le rôle De délégant Blob de stockage accorde au principal de sécurité des autorisations pour demander la clé de délégation utilisateur.

Pour plus d’informations sur les rôles RBAC pour Stockage Azure, consultez Autoriser avec Azure Active Directory.

Remarques

Utilisez la clé de délégation utilisateur pour créer une sap de délégation d’utilisateur. Incluez les champs retournés sur la réponse au Get User Delegation Key dans le jeton SAP de délégation utilisateur. Pour en savoir plus, consultez Créer une SAP de délégation d’utilisateur.

La clé de délégation utilisateur ne peut pas être utilisée pour accéder directement aux ressources stockage Blob.

Facturation

Les demandes de tarification peuvent provenir de clients qui utilisent des API Stockage Blob, soit directement via l’API REST Stockage Blob, soit à partir d’une bibliothèque cliente stockage Azure. Ces demandes cumulent des frais par transaction. Le type de transaction affecte la façon dont le compte est facturé. Par exemple, les transactions de lecture sont comptabilisées dans une catégorie de facturation différente de celle des transactions en écriture. Le tableau suivant montre la catégorie de facturation pour Get User Delegation Key les demandes en fonction du type de compte de stockage :

Opération Type de compte de stockage Catégorie de facturation
Obtenir la clé de délégation d’utilisateur Objet blob de blocs Premium
Usage général v2 Standard
Autres opérations
Obtenir la clé de délégation d’utilisateur Usage général v1 standard Lire les opérations

Pour en savoir plus sur la tarification de la catégorie de facturation spécifiée, consultez Stockage Blob Azure Tarification.

Voir aussi