Hämta nyckel för användardelegering

Åtgärden Get User Delegation Key hämtar en nyckel som kan användas för att signera en SAS för användardelegering (signatur för delad åtkomst). En SAS för användardelegering ger åtkomst till Azure Blob Storage resurser med hjälp av Microsoft Entra autentiseringsuppgifter. Åtgärden Get User Delegation Key är tillgänglig i version 2018-11-09 och senare.

Förfrågan

Konstruera enligt Get User Delegation Key följande. HTTPS krävs. Ersätt myaccount med namnet på ditt lagringskonto.

URI för POST-metodbegäran HTTP-version
https://myaccount.blob.core.windows.net/?restype=service&comp=userdelegationkey HTTP/1.1

Emulerad lagringstjänstbegäran

När du gör en begäran mot den lokala lagringstjänsten anger du det lokala värdnamnet och Blob Storage-porten som 127.0.0.1:10000följt av namnet på det lokala lagringskontot:

URI för POST-metodbegäran HTTP-version
http://127.0.0.1:10000/devstoreaccount1/?restype=service&comp=userdelegationkey HTTP/1.1

Mer information finns i Använda Azurite-emulatorn för lokal Azure Storage-utveckling.

URI-parametrar

Följande ytterligare parametrar kan anges på begärande-URI:n.

Parameter Beskrivning
timeout Valfritt. Parametern timeout uttrycks i sekunder. Mer information finns i Ange tidsgränser för Blob Storage-åtgärder.

Begärandehuvuden

I följande tabell beskrivs obligatoriska och valfria begärandehuvuden.

Begärandehuvud Beskrivning
Authorization Krävs. Anger auktoriseringsschemat. Endast auktorisering med Microsoft Entra ID stöds. Mer information finns i Auktorisera med Microsoft Entra ID.
x-ms-version Krävs för alla auktoriserade begäranden. Mer information finns i Versionshantering för Azure Storage-tjänsterna.
x-ms-client-request-id Valfritt. Tillhandahåller ett klientgenererat, täckande värde med en teckengräns på 1 kibibyte (KiB) som registreras i loggarna när loggning har konfigurerats. Vi rekommenderar starkt att du använder det här huvudet för att korrelera aktiviteter på klientsidan med begäranden som servern tar emot. Mer information finns i Övervaka Azure Blob Storage.

Begärandetext

Formatet för begärandetexten är följande:

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

Elementen i begärandetexten beskrivs i följande tabell:

Element Beskrivning
Start Krävs. Starttiden för SAS för användardelegering i ISO-datumformat. Det måste vara ett giltigt datum och en giltig tid inom sju dagar från det aktuella datumet.
Upphörande Krävs. Förfallotiden för SAS för användardelegering i ISO-datumformat. Det måste vara ett giltigt datum och en giltig tid inom sju dagar från det aktuella datumet.

Svarsåtgärder

Svaret innehåller en HTTP-statuskod och en uppsättning svarshuvuden.

Statuskod

En lyckad åtgärd returnerar statuskod 200 (OK).

Mer information om statuskoder finns i Status och felkoder.

Svarshuvuden

Svaret för den här åtgärden innehåller följande rubriker. Svaret kan också innehålla ytterligare HTTP-standardhuvuden. Alla standardhuvuden överensstämmer med http/1.1-protokollspecifikationen.

Svarsrubrik Description
x-ms-request-id Identifierar den begäran som gjordes unikt och kan användas för att felsöka begäran. Mer information finns i Felsöka API-åtgärder.
x-ms-version Blob Storage-versionen som användes för att köra begäran.
Date Ett DATUM-/tidsvärde för UTC som genereras av tjänsten, vilket anger den tid då svaret initierades.
x-ms-client-request-id Kan användas för att felsöka begäranden och motsvarande svar. Värdet för det här huvudet är lika med värdet x-ms-client-request-id för rubriken om det finns i begäran och värdet inte innehåller fler än 1 024 synliga ASCII-tecken. Om rubriken x-ms-client-request-id inte finns i begäran finns den inte i svaret.

Själva svaret

Formatet på svarstexten är följande:

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

Elementen i svarstexten beskrivs i följande tabell:

Element Beskrivning
SignedOid Den oföränderliga identifieraren för ett objekt i Microsofts identitetssystem.
SignedTid Ett GUID som representerar den Microsoft Entra klientorganisation som användaren kommer från.
Signeradstart Starttiden för användarens delegeringsnyckel i ISO-datumformat.
SignedExpiry Förfallotiden för användarens delegeringsnyckel i ISO-datumformat.
SignedService Den tjänst som användarens delegeringsnyckel kan användas för, där b representerar Blob Storage.
SignedVersion REST API-versionen som används för att hämta användardelegeringsnyckeln.
Värde Användarens delegeringsnyckel.

Auktorisering

Auktorisering krävs när du anropar en dataåtkomståtgärd i Azure Storage. Du kan bara auktorisera åtgärden Get User Delegation Key med hjälp av Microsoft Entra ID.

Behörigheter

Säkerhetsobjektet som begär användardelegeringsnyckeln måste ha rätt behörighet för att göra det. Ett Microsoft Entra säkerhetsobjekt kan vara en användare, en grupp, ett huvudnamn för tjänsten eller en hanterad identitet.

Nedan visas den RBAC-åtgärd som krävs för att ett Microsoft Entra säkerhetsobjekt ska kunna anropa Get User Delegation Key åtgärden och den minst privilegierade inbyggda Azure RBAC-rollen som innehåller den här åtgärden:

Alla inbyggda roller som innehåller den här Azure RBAC-åtgärden, antingen uttryckligen eller som en del av en jokerteckendefinition, tillåts anropa Get User Delegation Key åtgärden.

Mer information om hur du tilldelar roller med hjälp av Azure RBAC finns i Tilldela en Azure-roll för åtkomst till blobdata.

Get User Delegation Key Eftersom åtgärden fungerar på lagringskontots nivå måste åtgärden Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey vara begränsad till lagringskontots, resursgruppens eller prenumerationens nivå. Om säkerhetsobjektet har tilldelats någon av de tidigare angivna inbyggda rollerna, eller en anpassad roll som innehåller åtgärden Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey , på lagringskontots, resursgruppens eller prenumerationens nivå, kommer säkerhetsobjektet att kunna begära användarens delegeringsnyckel.

Om säkerhetsobjektet tilldelas en roll som tillåter dataåtkomst men är begränsad till nivån för en container kan du dessutom tilldela rollen Storage Blob Delegator till säkerhetsobjektet på nivån för lagringskontot, resursgruppen eller prenumerationen. Rollen Storage Blob Delegator ger säkerhetsobjektet behörighet att begära användardelegeringsnyckeln.

Mer information om RBAC-roller för Azure Storage finns i Auktorisera med Azure Active Directory.

Kommentarer

Använd användardelegeringsnyckeln för att skapa en SAS för användardelegering. Inkludera de fält som returneras på svaret till Get User Delegation Key i SAS-token för användardelegering. Mer information finns i Skapa en SAS för användardelegering.

Användarens delegeringsnyckel kan inte användas för direkt åtkomst till Blob Storage-resurser.

Fakturering

Prisbegäranden kan komma från klienter som använder Blob Storage-API:er, antingen direkt via REST-API:et för Blob Storage eller från ett Azure Storage-klientbibliotek. Dessa begäranden ackumulerar avgifter per transaktion. Typen av transaktion påverkar hur kontot debiteras. Lästransaktioner ackumuleras till exempel till en annan faktureringskategori än skrivtransaktioner. I följande tabell visas faktureringskategorin för Get User Delegation Key begäranden baserat på lagringskontotypen:

Åtgärd Typ av lagringskonto Faktureringskategori
Hämta nyckel för användardelegering Premium-blockblob
Standard generell användning v2
Andra åtgärder
Hämta nyckel för användardelegering Standard generell användning v1 Läsåtgärder

Mer information om priser för den angivna faktureringskategorin finns i Azure Blob Storage Prissättning.

Se även