Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Na tej stronie opisano, jak adresaci danych mogą używać klienta Python zarejestrowanego we własnym dostawcy tożsamości w celu uzyskania dostępu do udziałów Delta Sharing utworzonych w usłudze Databricks. Ten przepływ udzielania poświadczeń klienta protokołu OAuth typu "maszyna do maszyny" (M2M) jest zwykle używany w scenariuszach, w których aplikacja, taka jak nocne zadanie uruchomione na maszynie wirtualnej, uzyskuje dostęp do danych autonomicznie. Ten proces uwierzytelniania wykorzystuje federację OIDC, umożliwiając użycie tokenów sieci Web JSON (JWT) wystawionych przez dostawcę tożsamości odbiorcy jako krótkotrwałe tokeny OAuth, które są uwierzytelniane przez platformę Databricks. Ten proces uwierzytelniania dla udostępniania z Databricks do otwartych platform jest przeznaczony dla adresatów, którzy nie mają dostępu do obszaru roboczego Databricks wyposażonego w Unity Catalog.
Federacja Open OIDC jest alternatywą dla używania długowiecznych tokenów nosicieli wydanych przez Databricks w celu łączenia odbiorców spoza Databricks z dostawcami. W przepływie udzielania poświadczeń klienta OAuth aplikacja OAuth jest zarejestrowana jako jednostka usługi (SP) w dostawcy tożsamości odbiorcy. Żadne długoterminowe tajemnice ani poświadczenia nie są udostępniane między Databricks, dostawcą a odbiorcą. Aby uzyskać informacje na temat używania tokenów uwierzytelniających do zarządzania uwierzytelnianiem w udziałach, zobacz Create a recipient object for non-Databricks users using bearer tokens (open sharing).
Ten artykuł jest przeznaczony dla adresatów. Aby uzyskać informacje o tym, jak dostawcy mogą włączyć federację OIDC dla adresatów w usłudze Azure Databricks, zobacz Użyj federacji Open ID Connect (OIDC), aby umożliwić uwierzytelnienie w ramach udostępniania Delta Sharing (otwarte udostępnianie). Aby uzyskać informacje o przepływie "user-to-machine" (U2M), zobacz Odbieranie udziałów Delta Sharing przy użyciu federacji Open ID Connect (OIDC) w przepływie typu użytkownik-maszyna (otwarte udostępnianie).
Zarejestruj aplikację w IdP
Aby można było użyć federacji OIDC w celu udzielenia aplikacji klienckiej dostępu do udziałów usługi Delta Sharing, należy zarejestrować aplikację OAuth w dostawcy tożsamości. W tej sekcji opisano sposób rejestrowania aplikacji OAuth w usłudze Microsoft Entra ID. Aby uzyskać informacje o innych dostawcach tożsamości, należy zapoznać się z ich dokumentacją.
Rejestrowanie aplikacji w identyfikatorze Entra firmy Microsoft
Instrukcje te są przeznaczone jako ogólne wytyczne i nie gwarantują, że będą aktualizowane na bieżąco. Aby uzyskać szczegółowe instrukcje dotyczące rejestracji aplikacji, zobacz ten przewodnik Szybki start firmy Microsoft .
- Zaloguj się do centrum administracyjnego firmy Microsoft Entra co najmniej jako deweloper aplikacji.
- Przejdź do obszaru Rejestracje aplikacji i utwórz nową rejestrację bez adresu URL przekierowania.
- Przejdź do pozycji Certificates & Secrets > Utwórz sekret dla swojej aplikacji.
- Skopiuj wartość wpisu tajnego i zapisz ją bezpiecznie.
- Na stronie Przegląd rejestracji > aplikacji skopiuj identyfikator aplikacji (klienta)
- Zmodyfikuj aplikację jako aplikację w wersji 2, aktualizując manifest:
- W sekcji Zarządzanie aplikacji wybierz pozycję Manifest.
- W edytorze ustaw
accessTokenAcceptedVersionna wartość2. - Zapisz zmiany.
Wysyłanie wymaganych informacji do dostawcy danych usługi Azure Databricks
Jeśli jako odbiorca użyjesz identyfikatora Entra firmy Microsoft, możesz uzyskać pola wymagane przez dostawcę, postępując zgodnie z tymi instrukcjami. Zawsze zapoznaj się z dokumentacją Microsoft Entra ID, aby uzyskać najbardziej aktualne instrukcje.
adres URL wystawcy:
https://login.microsoftonline.com/{tenantId}/v2.0, zastępując{tenantId}identyfikatorem dzierżawy Entra (tenant ID). Jeśli nie znasz identyfikatora dzierżawy, zobacz dokumentację Microsoft Entra ID .Oświadczenie podmiotu: odwołuje się do pola w ładunku JWT, który identyfikuje jednostkę, która uzyskuje dostęp do danych. Konkretne pole, które jest używane, zależy od dostawcy tożsamości (IdP) oraz przypadków użycia. Na przykład w przypadku aplikacji M2M w usłudze Microsoft Entra ID oświadczenie podmiotu to
azp, który reprezentuje identyfikator klienta aplikacji autoryzowanej do korzystania z tokenu. Aby uzyskać więcej informacji, zobacz referencję dotyczącą oświadczeń tokenu dostępu Microsoft Entra IDTemat: odnosi się do unikalnego identyfikatora zarejestrowanej aplikacji OAuth u dostawcy usług tożsamości odbiorcy (IdP).
Na przykład w identyfikatorze Entra firmy Microsoft jest to identyfikator aplikacji (klienta). Jeśli nie skopiowałeś identyfikatora klienta podczas rejestracji, można go odzyskać, postępując zgodnie z instrukcjami od swojego dostawcy tożsamości. W przypadku identyfikatora Entra firmy Microsoft wykonaj następujące kroki:- Przejdź do pozycji Rejestracje aplikacji w centrum administracyjnym firmy Microsoft Entra.
- Wybierz zarejestrowaną aplikację OAuth.
- Znajdź identyfikator aplikacji (klienta) na stronie Przegląd.
W przypadku innych dostawców tożsamości zapoznaj się z ich dokumentacją, aby pobrać równoważny identyfikator.
odbiorców: w przypadku uwierzytelniania typu maszyna-usługa Azure Databricks zazwyczaj używa
clientIdzasobu, ale można określić inny prawidłowy identyfikator zasobu.Powinieneś skopiować to w poprzednim kroku. Jeśli nie, przejdź do centrum administracyjnego firmy Microsoft Entra, wyszukaj Rejestracje aplikacji, wybierz zarejestrowaną aplikację, a następnie znajdź Identyfikator aplikacji (klienta) na stronie Przegląd. Możesz również użyć innego identyfikatora zasobu.
Udostępnij emitenta akcji, roszczenia podmiotu, temat i publiczność dostawcy.
Konfigurowanie aplikacji pod kątem używania pliku profilu OAuth udostępnionego przez dostawcę usługi Databricks
Aby skonfigurować aplikację w celu uzyskania dostępu do udziałów usługi Delta Sharing od dostawcy:
Przejdź do adresu URL portalu profilu OIDC udostępnionego Tobie przez dostawcę usługi Databricks.
Zażądaj adresu URL, jeśli jeszcze go nie odebrano.
Na stronie portalu wybierz kafelek M2M i w obszarze dla OAuthkliknij Pobierz plik.
Zmodyfikuj pobrany plik JSON
oauth_config.share, aby dodaćclientId,clientSecretiscope.Podczas rejestrowania aplikacji należy skopiować identyfikator klienta i klucz tajny klienta. Nie można ponownie uzyskać tajemnicy klienta. Aby pobrać identyfikator klienta, zobacz instrukcje w poprzedniej sekcji.
Jeśli zdecydujesz się używać
{clientId}aplikacji jako określenie odbiorców, zakres powinien być ustawiony na{clientId}/.default. Jeśli na przykład odbiorcą jest61a80fb9-ce0c-4794-9f7f-2ba42a7b76f6, zakres powinien mieć wartość61a80fb9-ce0c-4794-9f7f-2ba42a7b76f6/.default.Przykładowy profil:
{ "shareCredentialsVersion": 2, "endpoint": "https://oregon.cloud.databricks.com/api/2.0/delta-sharing/metastores/11a11aaa-11aa-11a12-11aa-111a1aa11111/recipients/a11da11aa1-a1a1-11a1-a11a-1111a11111aa", "tokenEndpoint": "https://login.microsoftonline.com/a111a111-1111-1aaa-1aa1-1aa1111aa1/oauth2/v2.0/token", "type": "oauth_client_credentials", "clientId": "[REPLACE_WITH_YOUR_CLIENT_ID]", "clientSecret": "[REPLACE_WITH_YOUR_CLIENT_SECRET]", "scope": "[REPLACE_WITH_YOUR_SCOPE]" }Zainstaluj i skonfiguruj najnowszego klienta Python OSS Delta Sharing.
Musisz mieć najnowszą wersję klienta Python Delta Sharing OSS.
python3 -m venv .venv source .venv/bin/activate pip3 install "delta-sharing>=1.3.1"Zapisz zaktualizowany plik
oauth_config.share.Przetestuj konfigurację:
Utwórz skrypt testowy
test.py:import delta_sharing # Point to the profile file. It can be a file on the local file system or a file on a remote storage. profile_file = "oauth_config.share" # Create a SharingClient. client = delta_sharing.SharingClient(profile_file) # # List all shared tables. tables = client.list_all_tables() print(tables) # replace the following line with the coordinates of the shared table #table_url = profile_file + "#sample_share.sample_db.sample_table" # Fetch 10 rows from a table and convert it to a Pandas DataFrame. # This can be used to read sample data from a table that cannot fit in the memory. #df = delta_sharing.load_as_pandas(table_url, limit=10) #print(df)Uruchom skrypt:
python3 test.pySkrypt powinien wyświetlić listę tabel udostępnionych.