Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Na tej stronie opisano, jak odbiorcy danych mogą używać klienta w języku Python zarejestrowanego u własnego dostawcy tożsamości (IdP), aby uzyskać dostęp do zasobów współdzielonych OpenSharing utworzonych w 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 przepływ uwierzytelniania używa federacji OIDC. Dostawca tożsamości odbiorcy wystawia tokeny JSON Web Token (JWT), które służą jako krótkotrwałe tokeny OAuth i które Databricks uwierzytelnia. 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 elementu nośnego do zarządzania uwierzytelnianiem w udziałach, zobacz Tworzenie obiektu adresata dla użytkowników niebędących użytkownikami usługi Databricks przy użyciu tokenów elementu nośnego (databricks-to-Open sharing).
Ta strona jest przeznaczona dla adresatów. Aby uzyskać informacje o tym, jak dostawcy mogą włączyć federację OIDC dla odbiorców w usłudze Azure Databricks, zobacz Włączanie federacji Open ID Connect (OIDC) dla odbiorców Open Sharing.
Aby uzyskać informacje o przepływie "user-to-machine" (U2M), zobacz Odczyt danych udostępnionych przy użyciu federacji Open ID Connect (OIDC) w przepływie U2M.
Zarejestruj aplikację w IdP
Zanim będzie można użyć federacji OIDC, aby przyznać aplikacji klienckiej dostęp do udziałów OpenSharing, należy zarejestrować aplikację OAuth w swoim IdP. 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 Microsoft Entra ID
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 uzyskiwania dostępu do udziałów OpenSharing 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 najnowszą wersję klienta systemu operacyjnego OpenSharing Python.
Musisz mieć najnowszą wersję klienta systemu operacyjnego OpenSharing Python.
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.