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:10000
fö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:
- Azure RBAC-åtgärd:Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action
- Minsta privilegierade inbyggda roll:Storage Blob Delegator
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.