Abrufen des Benutzerdelegierungsschlüssels

Der Get User Delegation Key Vorgang ruft einen Schlüssel ab, der zum Signieren einer SAS für die Benutzerdelegierung (Shared Access Signature) verwendet werden kann. Eine SAS für die Benutzerdelegierung gewährt Mithilfe von Microsoft Entra Anmeldeinformationen Zugriff auf Azure Blob Storage Ressourcen. Der Get User Delegation Key Vorgang ist ab Version 2018-11-09 verfügbar.

Anforderung

Erstellen Sie Get User Delegation Key wie folgt. HTTPS ist erforderlich. Ersetzen Sie myaccount durch den Namen Ihres Speicherkontos.

POST-Methodenanforderungs-URI HTTP-Version
https://myaccount.blob.core.windows.net/?restype=service&comp=userdelegationkey HTTP/1.1

Emulierte Speicherdienstanforderung

Wenn Sie eine Anforderung an den lokalen Speicherdienst stellen, geben Sie den lokalen Hostnamen und den Blob Storage-Port als 127.0.0.1:10000an, gefolgt vom Namen des lokalen Speicherkontos:

POST-Methodenanforderungs-URI HTTP-Version
http://127.0.0.1:10000/devstoreaccount1/?restype=service&comp=userdelegationkey HTTP/1.1

Weitere Informationen finden Sie unter Verwenden des Azurite-Emulators für lokale Azure Storage-Entwicklung.

URI-Parameter

Im Anforderungs-URI können die folgenden zusätzlichen Parameter angegeben werden.

Parameter BESCHREIBUNG
timeout Optional. Der timeout-Parameter wird in Sekunden angegeben. Weitere Informationen finden Sie unter Festlegen von Timeouts für Blob Storage-Vorgänge.

Anforderungsheader

In der folgenden Tabelle werden erforderliche und optionale Anforderungsheader beschrieben.

Anforderungsheader BESCHREIBUNG
Authorization Erforderlich. Gibt das Autorisierungsschema an. Nur die Autorisierung mit Microsoft Entra ID wird unterstützt. Weitere Informationen finden Sie unter Autorisieren mit Microsoft Entra ID.
x-ms-version Erforderlich für alle autorisierten Anforderungen. Weitere Informationen finden Sie unter Versionsverwaltung für die Azure-Speicherdienste.
x-ms-client-request-id Optional. Stellt einen vom Client generierten, undurchsichtigen Wert mit einem Zeichenlimit von 1 Kibibyte (KiB) bereit, der in den Protokollen aufgezeichnet wird, wenn die Protokollierung konfiguriert ist. Es wird dringend empfohlen, diesen Header zu verwenden, um clientseitige Aktivitäten mit Anforderungen zu korrelieren, die der Server empfängt. Weitere Informationen finden Sie unter Überwachen Azure Blob Storage.

Anforderungstext

Der Anforderungstext weist das folgende Format auf:

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

Die Elemente des Anforderungstexts werden in der folgenden Tabelle beschrieben:

Element Beschreibung
Starten Erforderlich. Die Startzeit für die SAS für die Benutzerdelegierung im ISO-Datumsformat. Es muss sich um ein gültiges Datum und eine gültige Uhrzeit innerhalb von sieben Tagen nach dem aktuellen Datum sein.
Expiry Erforderlich. Die Ablaufzeit der SAS für die Benutzerdelegierung im ISO-Datumsformat. Es muss sich um ein gültiges Datum und eine gültige Uhrzeit innerhalb von sieben Tagen nach dem aktuellen Datum sein.

Antwort

Die Antwort enthält den HTTP-Statuscode und einen Satz von Antwortheadern.

Statuscode

Bei einem erfolgreichen Vorgang wird der Statuscode 200 (OK) zurückgegeben.

Weitere Informationen zu status Codes finden Sie unter Status- und Fehlercodes.

Antwortheader

Die Antwort für diesen Vorgang umfasst die folgenden Header. Die Antwort kann außerdem weitere HTTP-Standardheader enthalten. Alle Standardheader entsprechen der HTTP/1.1-Protokollspezifikation.

Antwortheader BESCHREIBUNG
x-ms-request-id Identifiziert eindeutig die Anforderung, die gestellt wurde, und kann zur Problembehandlung für die Anforderung verwendet werden. Weitere Informationen finden Sie unter Problembehandlung für API-Vorgänge.
x-ms-version Die Blob Storage-Version, die zum Ausführen der Anforderung verwendet wurde.
Date Ein UTC-Datums-/Uhrzeitwert, der vom Dienst generiert wird, der den Zeitpunkt angibt, zu dem die Antwort initiiert wurde.
x-ms-client-request-id Kann zur Problembehandlung von Anforderungen und entsprechenden Antworten verwendet werden. Der Wert dieses Headers ist gleich dem Wert des x-ms-client-request-id Headers, wenn er in der Anforderung vorhanden ist und der Wert nicht mehr als 1.024 sichtbare ASCII-Zeichen enthält. Wenn der x-ms-client-request-id Header in der Anforderung nicht vorhanden ist, ist er in der Antwort nicht vorhanden.

Antworttext

Der Antworttext weist das folgende Format auf:

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

Die folgende Tabelle erläutert die Elemente des Antworttexts:

Element BESCHREIBUNG
SignedOid Der unveränderliche Bezeichner für ein Objekt im Microsoft-Identitätssystem.
SignedTid Eine GUID, die den Microsoft Entra Mandanten darstellt, aus dem der Benutzer stammt.
SignedStart Die Startzeit des Benutzerdelegierungsschlüssels im ISO-Datumsformat.
SignedExpiry Die Ablaufzeit des Benutzerdelegierungsschlüssels im ISO-Datumsformat.
SignedService Der Dienst, für den der Benutzerdelegierungsschlüssel verwendet werden kann, wobei b blob Storage darstellt.
SignedVersion Die REST-API-Version, die zum Abrufen des Benutzerdelegierungsschlüssels verwendet wird.
Wert Der Benutzerdelegierungsschlüssel.

Authorization

Beim Aufrufen eines Datenzugriffsvorgangs in Azure Storage ist eine Autorisierung erforderlich. Sie können den Get User Delegation Key Vorgang nur mit Microsoft Entra ID autorisieren.

Berechtigungen

Der Sicherheitsprinzipal, der den Benutzerdelegierungsschlüssel anfordert, muss dazu über die entsprechenden Berechtigungen verfügen. Ein Microsoft Entra Sicherheitsprinzipal kann ein Benutzer, eine Gruppe, ein Dienstprinzipal oder eine verwaltete Identität sein.

Unten sind die RBAC-Aktion aufgeführt, die erforderlich ist, damit ein Microsoft Entra Sicherheitsprinzipal den Get User Delegation Key Vorgang aufruft, und die integrierte Azure RBAC-Rolle mit den geringsten Berechtigungen, die diese Aktion enthält:

Jede integrierte Rolle, die diese Azure RBAC-Aktion enthält, entweder explizit oder als Teil einer Wildcarddefinition, kann den Get User Delegation Key Vorgang aufrufen.

Weitere Informationen zum Zuweisen von Rollen mithilfe von Azure RBAC finden Sie unter Zuweisen einer Azure-Rolle für den Zugriff auf Blobdaten.

Da der Get User Delegation Key Vorgang auf der Ebene des Speicherkontos ausgeführt wird, muss die Aktion Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey auf der Ebene des Speicherkontos, der Ressourcengruppe oder des Abonnements festgelegt werden. Wenn dem Sicherheitsprinzipal eine der zuvor aufgeführten integrierten Rollen oder eine benutzerdefinierte Rolle zugewiesen ist, die die Aktion Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey auf Der Ebene des Speicherkontos, der Ressourcengruppe oder des Abonnements umfasst, kann der Sicherheitsprinzipal den Benutzerdelegierungsschlüssel anfordern.

Wenn dem Sicherheitsprinzipal eine Rolle zugewiesen wird, die den Datenzugriff zulässt, aber auf die Ebene eines Containers festgelegt ist, können Sie diesem Sicherheitsprinzipal auf der Ebene des Speicherkontos, der Ressourcengruppe oder des Abonnements zusätzlich die Rolle Storage Blob Delegator zuweisen. Die Rolle Storage Blob Delegator gewährt dem Sicherheitsprinzipal Berechtigungen zum Anfordern des Benutzerdelegierungsschlüssels.

Weitere Informationen zu RBAC-Rollen für Azure Storage finden Sie unter Autorisieren mit Azure Active Directory.

Hinweise

Verwenden Sie den Benutzerdelegierungsschlüssel, um eine SAS für die Benutzerdelegierung zu erstellen. Schließen Sie die Felder, die für die Antwort auf den Get User Delegation Key zurückgegeben werden, in das SAS-Token für die Benutzerdelegierung ein. Weitere Informationen finden Sie unter Erstellen einer SAS für die Benutzerdelegierung.

Der Benutzerdelegierungsschlüssel kann nicht verwendet werden, um direkt auf Blob Storage-Ressourcen zuzugreifen.

Abrechnung

Preisanforderungen können von Clients stammen, die Blob Storage-APIs verwenden, entweder direkt über die Blob Storage-REST-API oder aus einer Azure Storage-Clientbibliothek. Für diese Anforderungen fallen Gebühren pro Transaktion an. Die Art der Transaktion wirkt sich auf die Abrechnung des Kontos aus. Beispielsweise werden Lesetransaktionen einer anderen Abrechnungskategorie zugeordnet als Schreibtransaktionen. Die folgende Tabelle zeigt die Abrechnungskategorie für Get User Delegation Key Anforderungen basierend auf dem Speicherkontotyp:

Vorgang Speicherkontotyp Abrechnungskategorie
Abrufen des Benutzerdelegierungsschlüssels Premium, Blockblob
Standard „Allgemein v2“
Weitere Vorgänge
Abrufen des Benutzerdelegierungsschlüssels Standard „Allgemein v1“ Dient zum Lesen von Vorgängen.

Informationen zu den Preisen für die angegebene Abrechnungskategorie finden Sie unter Azure Blob Storage Preise.

Weitere Informationen