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ę:
- Akcja RBAC platformy Azure:Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action
- Rola wbudowana z najmniejszymi uprawnieniami:Delegator obiektów blob usługi Storage
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.