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:10000
an, 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:
- Azure RBAC-Aktion:Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action
- Integrierte Rolle mit den geringsten Berechtigungen:Storage-Blobdelegator
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.