Udostępnij za pośrednictwem


Uzyskiwanie klucza delegowania użytkownika

Operacja Get User Delegation Key pobiera klucz, który może służyć do podpisywania sygnatury dostępu współdzielonego delegowania użytkownika (sygnatura dostępu współdzielonego). Sygnatura dostępu współdzielonego delegowania użytkownika udziela dostępu do zasobów Azure Blob Storage przy użyciu poświadczeń Microsoft Entra. Operacja Get User Delegation Key jest dostępna w wersji 2018-11-09 lub nowszej.

Żądanie

Skonstruuj element Get User Delegation Key w następujący sposób. Wymagany jest protokół HTTPS. Zastąp ciąg myaccount nazwą konta magazynu.

Identyfikator URI żądania POST Wersja PROTOKOŁU HTTP
https://myaccount.blob.core.windows.net/?restype=service&comp=userdelegationkey HTTP/1.1

Żądanie usługi magazynu emulowanego

Podczas wysyłania żądania względem usługi magazynu lokalnego określ nazwę hosta lokalnego i port usługi Blob Storage jako 127.0.0.1:10000, a następnie nazwę lokalnego konta magazynu:

Identyfikator URI żądania POST Wersja PROTOKOŁU HTTP
http://127.0.0.1:10000/devstoreaccount1/?restype=service&comp=userdelegationkey HTTP/1.1

Aby uzyskać więcej informacji, zobacz Use the Azurite emulator for local Azure Storage development (Używanie emulatora Azurite do lokalnego programowania w usłudze Azure Storage).

Parametry identyfikatora URI

W identyfikatorze URI żądania można określić następujące dodatkowe parametry.

Parametr Opis
timeout Opcjonalny. Parametr jest wyrażony timeout w sekundach. Aby uzyskać więcej informacji, zobacz Ustawianie limitów czasu dla operacji usługi Blob Storage.

Nagłówki żądań

W poniższej tabeli opisano wymagane i opcjonalne nagłówki żądań.

Nagłówek żądania Opis
Authorization Wymagane. Określa schemat autoryzacji. Obsługiwana jest tylko autoryzacja z Tożsamość Microsoft Entra. Aby uzyskać więcej informacji, zobacz Autoryzowanie za pomocą Tożsamość Microsoft Entra.
x-ms-version Wymagane dla wszystkich autoryzowanych żądań. Aby uzyskać więcej informacji, zobacz Przechowywanie wersji usług Azure Storage.
x-ms-client-request-id Opcjonalny. Udostępnia nieprzezroczystą wartość wygenerowaną przez klienta z limitem znaków 1-kibibyte (KiB), który jest rejestrowany w dziennikach podczas konfigurowania rejestrowania. Zdecydowanie zalecamy używanie tego nagłówka do korelowania działań po stronie klienta z żądaniami odbieranymi przez serwer. Aby uzyskać więcej informacji, zobacz Monitorowanie Azure Blob Storage.

Treść żądania

Format treści żądania jest następujący:

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

Elementy treści żądania opisano w poniższej tabeli:

Element Opis
Początek Wymagane. Godzina rozpoczęcia sygnatury dostępu współdzielonego delegowania użytkownika w formacie daty ISO. Musi być prawidłową datą i godziną w ciągu siedmiu dni od bieżącej daty.
Wygaśnięcie Wymagane. Czas wygaśnięcia sygnatury dostępu współdzielonego delegowania użytkownika w formacie daty ISO. Musi być prawidłową datą i godziną w ciągu siedmiu dni od bieżącej daty.

Reakcja

Odpowiedź zawiera kod stanu HTTP i zestaw nagłówków odpowiedzi.

Kod stanu

Operacja zakończona powodzeniem zwraca kod stanu 200 (OK).

Aby uzyskać więcej informacji na temat kodów stanu, zobacz Kody stanu i błędów.

Nagłówki odpowiedzi

Odpowiedź na tę operację zawiera następujące nagłówki. Odpowiedź może również zawierać dodatkowe standardowe nagłówki HTTP. Wszystkie nagłówki standardowe są zgodne ze specyfikacją protokołu HTTP/1.1.

Nagłówek odpowiedzi Opis
x-ms-request-id Jednoznacznie identyfikuje wykonane żądanie i może służyć do rozwiązywania problemów z żądaniem. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z operacjami interfejsu API.
x-ms-version Wersja usługi Blob Storage, która została użyta do wykonania żądania.
Date Wartość daty/godziny UTC wygenerowana przez usługę, która wskazuje godzinę zainicjowania odpowiedzi.
x-ms-client-request-id Może służyć do rozwiązywania problemów z żądaniami i odpowiadającymi im odpowiedziami. Wartość tego nagłówka jest równa wartości x-ms-client-request-id nagłówka, jeśli znajduje się w żądaniu, a wartość nie zawiera więcej niż 1024 widocznych znaków ASCII. x-ms-client-request-id Jeśli nagłówek nie jest obecny w żądaniu, nie będzie on obecny w odpowiedzi.

Treść odpowiedzi

Format treści odpowiedzi jest następujący:

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

Elementy treści odpowiedzi opisano w poniższej tabeli:

Element Opis
SignedOid Niezmienny identyfikator obiektu w systemie tożsamości firmy Microsoft.
SignedTid Identyfikator GUID reprezentujący dzierżawę Microsoft Entra, z którego pochodzi użytkownik.
Podpisany start Godzina rozpoczęcia klucza delegowania użytkownika w formacie daty ISO.
SignedExpiry Czas wygaśnięcia klucza delegowania użytkownika w formacie daty ISO.
SignedService Usługa, dla której można użyć klucza delegowania użytkownika, gdzie b reprezentuje usługę Blob Storage.
SignedVersion Wersja interfejsu API REST używana do pobierania klucza delegowania użytkownika.
Wartość Klucz delegowania użytkownika.

Autoryzacja

Autoryzacja jest wymagana podczas wywoływania dowolnej operacji dostępu do danych w usłudze Azure Storage. Operację Get User Delegation Key można autoryzować tylko przy użyciu Tożsamość Microsoft Entra.

Uprawnienia

Podmiot zabezpieczeń, który żąda klucza delegowania użytkownika, musi mieć odpowiednie uprawnienia do tego celu. Podmiot zabezpieczeń Microsoft Entra może być użytkownikiem, grupą, jednostką usługi lub tożsamością zarządzaną.

Poniżej wymieniono akcję RBAC niezbędną do wywołania Get User Delegation Key operacji przez podmiot zabezpieczeń Microsoft Entra oraz najmniej uprzywilejowaną wbudowaną rolę RBAC platformy Azure, która obejmuje tę akcję:

Każda wbudowana rola obejmująca tę akcję RBAC platformy Azure, jawnie lub w ramach definicji symboli wieloznacznych, może wywołać operację Get User Delegation Key .

Aby dowiedzieć się więcej na temat przypisywania ról przy użyciu kontroli dostępu opartej na rolach platformy Azure, zobacz Przypisywanie roli platformy Azure w celu uzyskania dostępu do danych obiektów blob.

Get User Delegation Key Ponieważ operacja działa na poziomie konta magazynu, akcja Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey musi być ograniczona na poziomie konta magazynu, grupy zasobów lub subskrypcji. Jeśli podmiot zabezpieczeń ma przypisaną dowolną z wcześniej wymienionych wbudowanych ról lub rolę niestandardową obejmującą akcję Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey na poziomie konta magazynu, grupy zasobów lub subskrypcji, podmiot zabezpieczeń będzie mógł zażądać klucza delegowania użytkownika.

Jeśli podmiot zabezpieczeń ma przypisaną rolę, która zezwala na dostęp do danych, ale jest ograniczona do poziomu kontenera, możesz dodatkowo przypisać rolę delegatora obiektów blob magazynu do tego podmiotu zabezpieczeń na poziomie konta magazynu, grupy zasobów lub subskrypcji. Rola delegatora obiektów blob usługi Storage udziela uprawnień podmiotu zabezpieczeń w celu żądania klucza delegowania użytkownika.

Aby uzyskać więcej informacji na temat ról RBAC dla usługi Azure Storage, zobacz Autoryzowanie przy użyciu usługi Azure Active Directory.

Uwagi

Użyj klucza delegowania użytkownika, aby utworzyć sygnaturę dostępu współdzielonego delegowania użytkownika. Uwzględnij pola, które są zwracane w odpowiedzi na Get User Delegation Key token SAS delegowania użytkownika. Aby uzyskać więcej informacji, zobacz Tworzenie sygnatury dostępu współdzielonego delegowania użytkownika.

Klucz delegowania użytkownika nie może służyć do bezpośredniego uzyskiwania dostępu do zasobów usługi Blob Storage.

Rozliczenia

Żądania cenowe mogą pochodzić od klientów korzystających z interfejsów API usługi Blob Storage bezpośrednio za pośrednictwem interfejsu API REST usługi Blob Storage lub biblioteki klienta usługi Azure Storage. Te żądania naliczają opłaty za transakcję. Typ transakcji wpływa na sposób naliczania opłat za konto. Na przykład transakcje odczytu są naliczane do innej kategorii rozliczeniowej niż transakcje zapisu. W poniższej tabeli przedstawiono kategorię rozliczeń dla Get User Delegation Key żądań na podstawie typu konta magazynu:

Operacja Typ konta magazynu Kategoria rozliczeń
Uzyskiwanie klucza delegowania użytkownika Blokowy obiekt blob w warstwie Premium
Standardowa ogólnego przeznaczenia, wersja 2
Inne operacje
Uzyskiwanie klucza delegowania użytkownika Standardowa ogólnego przeznaczenia, wersja 1 Operacje odczytu

Aby dowiedzieć się więcej o cenach dla określonej kategorii rozliczeń, zobacz Azure Blob Storage Cennik.

Zobacz też