Tworzenie sygnatury dostępu współdzielonego usługi OneLake (SAS) (wersja zapoznawcza)
Sygnaturę dostępu współdzielonego usługi OneLake można utworzyć w celu zapewnienia krótkoterminowego, delegowanego dostępu do folderu lub pliku w usłudze OneLake wspieranego przez poświadczenia firmy Microsoft Entra. Sygnatura dostępu współdzielonego usługi OneLake może zapewnić tymczasowy dostęp do aplikacji bez obsługi firmy Microsoft Entra, umożliwiając im ładowanie danych lub pełnienie roli serwerów proxy między innymi aplikacjami klienta lub niezależnymi dostawcami oprogramowania (ISV).
Aby utworzyć sygnaturę dostępu współdzielonego usługi OneLake, musisz najpierw zażądać klucza delegowania użytkownika, którego następnie użyjesz do podpisania sygnatury dostępu współdzielonego. Aby zażądać klucza delegowania użytkownika, wywołaj operację Pobierz klucz delegowania użytkownika. Sygnatura dostępu współdzielonego usługi OneLake może udzielać dostępu tylko do plików i folderów w ramach elementów danych i nie może być używana do wykonywania operacji zarządzania, takich jak tworzenie lub usuwanie elementów lub obszarów roboczych.
Sygnatura dostępu współdzielonego usługi OneLake może udzielać dostępu tylko do plików i folderów w ramach elementów danych i nie może być używana do wykonywania operacji zarządzania, takich jak tworzenie obszarów roboczych lub elementów.
Sygnatura dostępu współdzielonego usługi OneLake jest tworzona podobnie do delegowanej przez użytkownika sygnatury dostępu współdzielonego usługi Azure Storage przy użyciu tych samych parametrów w celu zapewnienia zgodności z narzędziami i aplikacjami zgodnymi z usługą Azure Storage.
Ważne
Ta funkcja jest dostępna w wersji zapoznawczej.
Przypisywanie uprawnień użytkowników
Żądanie klucza delegowania użytkownika jest operacją na poziomie dzierżawy w sieci szkieletowej. Aby zażądać klucza delegowania użytkownika, użytkownik lub zasada zabezpieczeń żądającą klucza delegowania użytkownika musi mieć co najmniej uprawnienia do odczytu w jednym obszarze roboczym w dzierżawie sieci szkieletowej. Żądający tożsamość użytkownika jest używany do uwierzytelniania sygnatury dostępu współdzielonego, co oznacza, że użytkownik musi mieć uprawnienia do danych, do których udziela dostępu sygnatury dostępu współdzielonego.
Uzyskiwanie tokenu OAuth 2.0
Aby uzyskać klucz delegowania użytkownika, najpierw zażądaj tokenu OAuth 2.0 z identyfikatora Entra firmy Microsoft. Autoryzuj wywołanie operacji Pobierz klucz delegowania użytkownika, podając token ze schematem elementu nośnego. Aby uzyskać więcej informacji na temat żądania tokenu OAuth z identyfikatora Entra firmy Microsoft, zobacz Przepływy uwierzytelniania i scenariusze aplikacji.
Żądanie klucza delegowania użytkownika
Wywołanie operacji Pobierz klucz delegowania użytkownika zwraca klucz jako zestaw wartości, które są używane jako parametry w tokenie SAS delegowania użytkownika. Te parametry opisano w dokumentacji Uzyskiwanie klucza delegowania użytkownika i w następnej sekcji.
Gdy klient żąda klucza delegowania użytkownika przy użyciu tokenu OAuth 2.0, usługa OneLake zwraca klucz delegowania użytkownika w imieniu klienta. Sygnatura dostępu współdzielonego utworzona przy użyciu tego klucza delegowania użytkownika jest udzielana w większości uprawnień udzielonych klientowi w zakresie uprawnień jawnie przyznanych w sygnaturze dostępu współdzielonego.
Możesz utworzyć dowolną liczbę usług SAS usługi OneLake dla okresu istnienia klucza delegowania użytkownika. Jednak sygnatura dostępu współdzielonego usługi OneLake i klucze delegowania użytkownika mogą być ważne przez co najwyżej godzinę i nie mogą przekraczać okresu istnienia tokenu żądającego. Te ograniczenia okresu istnienia są krótsze niż maksymalny okres istnienia delegowanej sygnatury dostępu współdzielonego użytkownika usługi Azure Storage.
Konstruowanie sygnatury dostępu współdzielonego delegowania użytkownika
Poniższa tabela zawiera podsumowanie pól obsługiwanych dla tokenu SAS usługi OneLake. Kolejne sekcje zawierają więcej szczegółów na temat tych parametrów i różnic między tokenami SAS usługi Azure Storage. Usługa OneLake nie obsługuje każdego opcjonalnego parametru obsługiwanego przez usługę Azure Storage, a sygnatura dostępu współdzielonego OneLake skonstruowana z nieobsługiwanym parametrem zostanie odrzucona.
Nazwa pola sygnatury dostępu współdzielonego | Parametr tokenu sygnatury dostępu współdzielonego | Stan | opis |
---|---|---|---|
signedVersion |
sv |
Wymagania | Wskazuje wersję usługi używanej do konstruowania pola podpisu. Usługa OneLake obsługuje wersję "2020-02-10", wszystkie wersje po "2020-12-06" i wersje przed "2020-02-10". |
signedResource |
sr |
Wymagania | Określa, które zasoby są dostępne za pośrednictwem sygnatury dostępu współdzielonego. Tylko obiekt blob (b ) i katalog (d ) mają zastosowanie do usługi OneLake. |
signedStart |
st |
Opcjonalnie | Czas ważności sygnatury dostępu współdzielonego. Format ISO 8601 UTC. |
signedExpiry |
se |
Wymagania | Czas wygaśnięcia sygnatury dostępu współdzielonego |
signedPermissions |
sp |
Wymagania | Wskazuje operacje, które sygnatura dostępu współdzielonego może wykonywać w zasobie. Więcej szczegółów znajduje się w sekcji Określanie uprawnień |
signedObjectId |
skoid |
Wymagania | Identyfikuje podmiot zabezpieczeń firmy Microsoft Entra. |
signedtenantId |
sktid |
Wymagania | Określa dzierżawę firmy Microsoft Entra, w której zdefiniowano podmiot zabezpieczeń. |
signedKeyStartTime |
skt |
Opcjonalnie | Czas w formacie UTC podczas uruchamiania klucza podpisywania. Zwrócona przez operację Pobierz klucz delegowania użytkownika. |
signedKeyExpiryTime |
ske |
Wymagania | Czas w formacie UTC po zakończeniu klucza podpisywania. Zwrócona przez operację Pobierz klucz delegowania użytkownika. |
signedKeyVersion |
skv |
Wymagania | Wersja usługi magazynu używana do pobierania klucza delegowania użytkownika. Zwrócona przez operację Pobierz klucz delegowania użytkownika. Usługa OneLake obsługuje wersje 2020-02-10 i wcześniejsze oraz wersje po 2020-12-06 |
signedKeyService |
sks |
Wymagania | Prawidłowa usługa klucza delegowania użytkownika. Usługa OneLake obsługuje tylko usługę Blob Storage (sks=b ). |
signature |
sig |
Wymagania | Podpis to kod uwierzytelniania komunikatów oparty na skrótach (HMAC) obliczany za pośrednictwem ciągu do podpisania i klucza przy użyciu algorytmu SHA256, a następnie zakodowany przy użyciu kodowania Base64. |
signedAuthorizedObjectId |
saoid |
Nieobsługiwane | Sygnatura dostępu współdzielonego usługi OneLake nie obsługuje tej funkcji. |
signedUnauthorizedObjectId |
suoid |
Nieobsługiwane | Sygnatura dostępu współdzielonego usługi OneLake nie obsługuje tej funkcji. |
signedCorrelationId |
suoid |
Nieobsługiwane | Sygnatura dostępu współdzielonego usługi OneLake nie obsługuje tego parametru. |
signedDirectoryDepth |
sdd |
Opcjonalnie | Wskazuje liczbę katalogów w folderze głównym katalogu określonym w polu canonicalizedResource ciągu do znaku. Obsługiwane tylko wtedy, gdy sr=d . |
signedEncryptionScope |
ses |
Nieobsługiwane | Sygnatura dostępu współdzielonego usługi OneLake obecnie nie obsługuje niestandardowych zakresów szyfrowania. |
signedIP |
sip |
Nieobsługiwane | Usługa OneLake SAS nie obsługuje obecnie filtrowania adresów IP |
signedProtocol |
spr |
Opcjonalnie | Usługa OneLake obsługuje tylko żądania https. |
Cache-Control nagłówek odpowiedzi |
rscc |
Nieobsługiwane | Sygnatura dostępu współdzielonego usługi OneLake nie obsługuje tego parametru. |
Content-Disposition nagłówek odpowiedzi |
rscd |
Nieobsługiwane | Sygnatura dostępu współdzielonego usługi OneLake nie obsługuje tego parametru. |
Content-Encoding nagłówek odpowiedzi |
rsce |
Nieobsługiwane | Sygnatura dostępu współdzielonego usługi OneLake nie obsługuje tego parametru. |
Content-Language nagłówek odpowiedzi |
rscl |
Nieobsługiwane | Sygnatura dostępu współdzielonego usługi OneLake nie obsługuje tego parametru. |
Content Type nagłówek odpowiedzi |
rsct |
Nieobsługiwane | Sygnatura dostępu współdzielonego usługi OneLake nie obsługuje tego parametru. |
Określanie uprawnień
Uprawnienia określone w signedPermissions
polu (sp
) w tokenie SYGNATURy dostępu współdzielonego wskazują operacje, które klient posiadający sygnaturę dostępu współdzielonego może wykonać na zasobie.
Uprawnienia można połączyć, aby umożliwić klientowi wykonywanie wielu operacji przy użyciu tej samej sygnatury dostępu współdzielonego. Podczas konstruowania sygnatury dostępu współdzielonego należy uwzględnić uprawnienia w następującej kolejności: racwdxltmeop
.
Przykładami prawidłowych ustawień uprawnień sąrw
: , , rd
rl
, wd
, wl
i rl
. Nie można określić uprawnienia więcej niż raz.
Aby zapewnić równoważność z istniejącymi narzędziami usługi Azure Storage, usługa OneLake używa tego samego formatu uprawnień co usługa Azure Storage. Usługa OneLake ocenia uprawnienia przyznane sygnaturze dostępu współdzielonego w signedPermissions
programie , uprawnienia tożsamości podpisywania w sieci szkieletowej i wszystkie role dostępu do danych usługi OneLake, jeśli mają zastosowanie. Należy pamiętać, że niektóre operacje, takie jak ustawianie uprawnień lub usuwanie obszarów roboczych, nie są dozwolone w usłudze OneLake za pośrednictwem interfejsów API usługi Azure Storage. W związku z tym przyznanie tego uprawnienia (sp=op
) nie zezwala na wykonywanie tych operacji przez sygnaturę dostępu współdzielonego usługi OneLake.
Uprawnienie | Symbol identyfikatora URI | Zasób | Dozwolone operacje |
---|---|---|---|
Przeczytaj | r | Katalog, obiekt blob | Odczytaj zawartość, listę bloków, właściwości i metadane dowolnego obiektu blob w kontenerze lub katalogu. Użyj obiektu blob jako źródła operacji kopiowania. |
Dodaj | a | Katalog, obiekt blob | Dodaj blok do uzupełnialnych obiektów blob. |
Utworzenie | c | Katalog, obiekt blob | Napisz nowy obiekt blob, utwórz migawkę obiektu blob lub skopiuj obiekt blob do nowego obiektu blob. |
Write | w | Katalog, obiekt blob | Tworzenie lub zapisywanie zawartości, właściwości, metadanych lub listy zablokowanych. Migawka lub dzierżawa obiektu blob. Użyj obiektu blob jako miejsca docelowego operacji kopiowania. |
Delete | d | Katalog, obiekt blob | Usuwanie obiektu blob. |
Usuń wersję | x | Obiekt blob | Usuń wersję obiektu blob. |
Usuwanie trwałe | t | Obiekt blob | Trwałe usuwanie migawki lub wersji obiektu blob. |
List | l | Katalog | Wyświetlanie listy obiektów blob w sposób nierekursywny. |
Tagi | t | Obiekt blob | Odczytywanie lub zapisywanie tagów w obiekcie blob. |
Przesuń | m | Katalog, obiekt blob | Przenieś obiekt blob lub katalog i jego zawartość do nowej lokalizacji. |
Wykonywanie | e | Katalog, obiekt blob | Pobierz właściwości systemu i, jeśli hierarchiczna przestrzeń nazw jest włączona dla konta magazynu, pobierz listę ACL POSIX obiektu blob. |
Własność | o | Katalog, obiekt blob | Ustaw właściciela lub grupę będącą właścicielem. Nieobsługiwane w usłudze OneLake |
Uprawnienia | p | Katalog, obiekt blob | Ustaw uprawnienia. Nieobsługiwane w usłudze OneLake |
Ustawianie zasad niezmienności | i | Obiekt blob | Ustaw lub usuń zasady niezmienności lub archiwizację ze względów prawnych dla obiektu blob. |
Określanie podpisu
Pole signature
(sig
) służy do autoryzowania żądania złożonego przez klienta z sygnaturą dostępu współdzielonego. Ciąg-znak to unikatowy ciąg skonstruowany z pól, które należy zweryfikować, aby autoryzować żądanie. Podpis jest algorytmem HMAC obliczanym za pośrednictwem ciągu do podpisania i klucza przy użyciu algorytmu SHA256, a następnie zakodowanego przy użyciu kodowania bBase65.
Aby utworzyć ciąg podpisu sygnatury dostępu współdzielonego delegowania użytkownika, utwórz ciąg do podpisania z pól wykonanych przez żądanie, zakoduj ciąg jako UTF-8, a następnie oblicz podpis przy użyciu algorytmu HMAC-SHA256. Pola zawarte w znaku ciągu muszą być zdekodowane pod adresem URL.
Pola wymagane w ciągu do podpisania zależą od wersji usługi używanej do autoryzacji (sv
). W poniższej sekcji opisano konfiguracje ciąg-znak dla wersji, które obsługują usługi OneLake SASs.
Wersja 2020-12-06 lub nowsza
StringToSign = signedPermissions + "\n" +
signedStart + "\n" +
signedExpiry + "\n" +
canonicalizedResource + "\n" +
signedKeyObjectId + "\n" +
signedKeyTenantId + "\n" +
signedKeyStart + "\n" +
signedKeyExpiry + "\n" +
signedKeyService + "\n" +
signedKeyVersion + "\n" +
signedAuthorizedUserObjectId + "\n" +
signedUnauthorizedUserObjectId + "\n" +
signedCorrelationId + "\n" +
signedIP + "\n" +
signedProtocol + "\n" +
signedVersion + "\n" +
signedResource + "\n" +
signedSnapshotTime + "\n" +
signedEncryptionScope + "\n" +
rscc + "\n" +
rscd + "\n" +
rsce + "\n" +
rscl + "\n" +
rsct
Wersja 2020-01-10
StringToSign = signedPermissions + "\n" +
signedStart + "\n" +
signedExpiry + "\n" +
canonicalizedResource + "\n" +
signedKeyObjectId + "\n" +
signedKeyTenantId + "\n" +
signedKeyStart + "\n" +
signedKeyExpiry + "\n" +
signedKeyService + "\n" +
signedKeyVersion + "\n" +
signedAuthorizedUserObjectId + "\n" +
signedUnauthorizedUserObjectId + "\n" +
signedCorrelationId + "\n" +
signedIP + "\n" +
signedProtocol + "\n" +
signedVersion + "\n" +
signedResource + "\n" +
signedSnapshotTime + "\n" +
rscc + "\n" +
rscd + "\n" +
rsce + "\n" +
rscl + "\n" +
rsct
Wersje starsze niż 2020-02-10
StringToSign = signedPermissions + "\n" +
signedStart + "\n" +
signedExpiry + "\n" +
canonicalizedResource + "\n" +
signedKeyObjectId + "\n" +
signedKeyTenantId + "\n" +
signedKeyStart + "\n" +
signedKeyExpiry + "\n" +
signedKeyService + "\n" +
signedKeyVersion + "\n" +
signedAuthorizedUserObjectId + "\n" +
signedUnauthorizedUserObjectId + "\n" +
signedCorrelationId + "\n" +
signedIP + "\n" +
signedProtocol + "\n" +
signedVersion + "\n" +
signedResource + "\n" +
rscc + "\n" +
rscd + "\n" +
rsce + "\n" +
rscl + "\n" +
rsct
Zasób kanoniczny
Część canonicalizedResource
ciągu jest ścieżką kanoniczną do zasobu. Musi zawierać punkt końcowy OneLake i nazwę zasobu i musi być zdekodowany adres URL. Ścieżka oneLake musi zawierać swój obszar roboczy, a ścieżka katalogu musi zawierać liczbę podkatalogów odpowiadających parametrowi sdd
.
W poniższych przykładach pokazano, jak przekonwertować adres URL usługi OneLake na odpowiedni zasób kanoniczny. Pamiętaj, że usługa OneLake obsługuje zarówno operacje systemu plików DFS, jak i obiekty blob oraz punkty końcowe, a nazwa konta usługi OneLake jest zawsze onelake.
Plik obiektu blob
URL = https://onelake.blob.fabric.microsoft.com/myWorkspace/myLakehouse.Lakehouse/Files/sales.csv
canonicalizedResource = "/blob/onelake/myWorkspace/myLakehouse.Lakehouse/Files/sales.csv"
Katalog systemu plików DFS
URL = https://onelake.dfs.fabric.microsoft.com/myWorkspace/myLakehouse.Lakehouse/Files/
canonicalizedResource = "/blob/onelake/myWorkspace/myLakehouse.Lakehouse/Files/"
Przykład sygnatury dostępu współdzielonego usługi OneLake
W poniższym przykładzie pokazano identyfikator URI sygnatury dostępu współdzielonego OneLake z dołączonym do niego tokenem SAS usługi OneLake. Token sygnatury dostępu współdzielonego zapewnia uprawnienia do odczytu i zapisu w folderze Files w usłudze Lakehouse.
https://onelake.blob.fabric.microsoft.com/myWorkspace/myLakehouse.Lakehouse/Files/?sp=rw&st=2023-05-24T01:13:55Z&se=2023-05-24T09:13:55Z&skoid=<object-id>&sktid=<tenant-id>&skt=2023-05-24T01:13:55Z&ske=2023-05-24T09:13:55Z&sks=b&skv=2022-11-02&sv=2022-11-02&sr=d&sig=<signature>