Udostępnij za pośrednictwem


Autoryzowanie nienadzorowanego dostępu do zasobów Azure Databricks za pomocą głównej jednostki usługi i protokołu OAuth

W tym temacie przedstawiono kroki i szczegółowe informacje dotyczące autoryzowania dostępu do zasobów usługi Azure Databricks podczas automatyzowania poleceń interfejsu wiersza polecenia usługi Azure Databricks lub wywoływania interfejsów API REST usługi Azure Databricks z kodu uruchamianego z procesu nienadzorowanego.

Usługa Azure Databricks używa protokołu OAuth jako preferowanego protokołu autoryzacji i uwierzytelniania użytkownika podczas interakcji z zasobami usługi Azure Databricks poza interfejsem użytkownika. Usługa Azure Databricks udostępnia również ujednolicone narzędzie do uwierzytelniania klienta w celu zautomatyzowania odświeżania tokenów dostępu generowanych w ramach metody uwierzytelniania OAuth. Dotyczy to głównych usług, a także kont użytkowników, ale należy skonfigurować główną usługę z odpowiednimi uprawnieniami i przywilejami dla zasobów Azure Databricks, do których musi uzyskiwać dostęp w ramach operacji.

Więcej informacji ogólnych znajdziesz w sekcji Autoryzowanie dostępu do zasobów usługi Azure Databricks.

Jakie są moje opcje autoryzacji i uwierzytelniania w przypadku korzystania z jednostki usługi Azure Databricks?

W tym temacie autoryzacja odnosi się do protokołu (OAuth) używanego do negocjowania dostępu do określonych zasobów usługi Azure Databricks za pośrednictwem delegowania. Uwierzytelnianie odnosi się do mechanizmu, za pomocą którego poświadczenia są reprezentowane, przesyłane i weryfikowane — w tym przypadku są to tokeny dostępu.

Azure Databricks używa autoryzacji opartej na protokole OAuth 2.0, aby umożliwić dostęp do zasobów konta i obszaru roboczego Azure Databricks za pomocą wiersza poleceń lub kodu w imieniu głównego użytkownika z uprawnieniami do dostępu do tych zasobów. Po skonfigurowaniu jednostki usługi Azure Databricks i zweryfikowaniu jej poświadczeń, po uruchomieniu polecenia CLI lub wywołaniu API REST, token OAuth jest przydzielany uczestniczącemu narzędziu lub zestawowi SDK w celu przeprowadzenia uwierzytelniania na podstawie tokenu w imieniu tej jednostki usługi, począwszy od tego momentu. Token dostępu OAuth ma okres istnienia co godzinę, po którym narzędzie lub zestaw SDK podejmie automatyczną próbę uzyskania nowego tokenu, który jest również ważny przez jedną godzinę.

Usługa Azure Databricks obsługuje dwa sposoby autoryzowania dostępu dla jednostki usługi za pomocą protokołu OAuth:

  • Głównie automatycznie, korzystając z ujednoliconej obsługi uwierzytelniania klienta usługi Databricks. Użyj tego uproszczonego podejścia, jeśli używasz określonych zestawów SDK usługi Azure Databricks (takich jak zestaw SDK narzędzia Terraform usługi Databricks) i narzędzi. Obsługiwane narzędzia i zestawy SDK są wymienione w ujednoliconym uwierzytelnianiu klienta Databricks. Takie podejście jest odpowiednie do automatyzacji lub innych scenariuszy nienadzorowanych procesów.
  • Ręcznie, bezpośrednio generując parę weryfikatora i wyzwania kodu OAuth oraz kod autoryzacyjny, a następnie używając ich do utworzenia początkowego tokenu OAuth, który zostanie podany w konfiguracji. Użyj tej metody, jeśli nie używasz interfejsu API obsługiwanego przez ujednolicone uwierzytelnianie klienta usługi Databricks. W takim przypadku może być konieczne opracowanie własnego mechanizmu do obsługi odświeżania tokenów dostępu specyficznych dla używanego narzędzia innej firmy lub interfejsu API. Aby uzyskać więcej informacji, zobacz: Ręczne generowanie i używanie tokenów dostępu do uwierzytelniania głównej jednostki usługi OAuth.

Przed rozpoczęciem należy skonfigurować usługę główna Azure Databricks i przypisać jej odpowiednie uprawnienia dostępu do zasobów, które musi używać, gdy automatyczny kod lub polecenia żądają ich użycia.

Wymaganie wstępne: Utwórz główny identyfikator usługi

Administratorzy konta i administratorzy obszaru roboczego mogą tworzyć podmioty usługi. W tym kroku opisano tworzenie obiektu głównego usługi w obszarze roboczym Azure Databricks. Aby uzyskać szczegółowe informacje na temat samej konsoli konta usługi Azure Databricks, zobacz Dodawanie jednostek usługi do konta.

Możesz również utworzyć zarządzany obiekt usługi Microsoft Entra ID i dodać go do Azure Databricks. Aby uzyskać więcej informacji, zobacz jednostki usługi Databricks i Microsoft Entra ID.

  1. Jako administrator obszaru roboczego zaloguj się do obszaru roboczego usługi Azure Databricks.
  2. Kliknij swoją nazwę użytkownika na górnym pasku obszaru roboczego usługi Azure Databricks i wybierz pozycję Ustawienia.
  3. Kliknij kartę Tożsamość i dostęp .
  4. Obok pozycji Jednostki usługi kliknij pozycję Zarządzaj.
  5. Kliknij Dodaj główną instancję usługi.
  6. Kliknij strzałkę listy rozwijanej w polu wyszukiwania, a następnie kliknij pozycję Dodaj nową.
  7. W obszarze Zarządzanie wybierz Zarządzane przez Databricks.
  8. Wprowadź nazwę głównej jednostki usługi.
  9. Kliknij przycisk Dodaj.

Jednostka usługi jest dodawana zarówno do obszaru roboczego, jak i do konta usługi Azure Databricks.

Krok 1. Przypisywanie uprawnień do jednostki usługi

  1. Kliknij nazwę jednostki usługi, aby otworzyć jej stronę szczegółów.
  2. Na karcie Konfiguracje zaznacz pole wyboru obok każdego uprawnienia, które ma mieć jednostka usługi dla tego obszaru roboczego, a następnie kliknij przycisk Aktualizuj.
  3. Na karcie Uprawnienia przyznaj dostęp wszystkim użytkownikom usługi Azure Databricks, jednostkom usługi i grupom, którymi chcesz zarządzać i używać tej jednostki usługi. Zobacz Zarządzanie rolami na jednostce usługi.

Krok 2. Tworzenie tajemnicy OAuth dla obiektu usługi

Przed użyciem protokołu OAuth do autoryzowania dostępu do zasobów usługi Azure Databricks należy najpierw utworzyć wpis tajny OAuth, który może służyć do generowania tokenów dostępu OAuth na potrzeby uwierzytelniania. Obiekt usługi może mieć maksymalnie pięć tajemnic OAuth.

Wpisy tajne OAuth mają maksymalny okres istnienia dwóch lat. Administratorzy konta i administratorzy obszaru roboczego mogą utworzyć tajny klucz OAuth dla podmiotu usługi.

  1. Na stronie szczegółów jednostki usługi kliknij kartę Sekrety.

  2. W obszarze Wpisy tajne protokołu OAuth kliknij pozycję Generuj wpis tajny.

    Generowanie wpisu tajnego OAuth z obszaru roboczego

  3. Ustaw czas życia sekretu w dniach. Wpisy tajne OAuth mają maksymalny okres istnienia 730 dni (dwa lata).

  4. Skopiuj wyświetlony wpis tajny i identyfikator klienta, a następnie kliknij przycisk Gotowe.

Tajemnica zostanie ujawniona tylko raz podczas procesu tworzenia. Identyfikator klienta jest taki sam jak identyfikator aplikacji jednostki usługi.

Administratorzy konta mogą również wygenerować tajny klucz OAuth na stronie szczegółów zasadniczego użytkownika usługi w konsoli konta.

  1. Jako administrator konta zaloguj się do konsoli konta.

  2. Na pasku bocznym kliknij pozycję Zarządzanie użytkownikami.

  3. Na karcie Jednostki usługi wybierz swoją jednostkę usługi.

  4. W obszarze Wpisy tajne protokołu OAuth kliknij pozycję Generuj wpis tajny.

    Generowanie wpisu tajnego OAuth na podstawie konta

  5. Ustaw czas życia sekretu w dniach. Wpisy tajne OAuth mają maksymalny okres istnienia 730 dni (dwa lata).

  6. Skopiuj wyświetlony wpis tajny i identyfikator klienta, a następnie kliknij przycisk Gotowe.

Uwaga

Aby umożliwić jednostce usługi korzystanie z klastrów lub magazynów SQL, należy przyznać jednostce usługi dostęp do nich. Zobacz Uprawnienia obliczeniowe lub Zarządzanie usługą SQL Warehouse.

Krok 3. Korzystanie z autoryzacji OAuth

Aby korzystać z autoryzacji OAuth przy użyciu zunifikowanego narzędzia do uwierzytelniania klienta, należy skonfigurować następujące powiązane zmienne środowiskowe, pola .databrickscfg, pola Terraform lub pola Config:

  • Host usługi Azure Databricks, określony jako https://accounts.azuredatabricks.net dla operacji konta lub docelowy adres URL obszaru roboczego, na przykład https://adb-1234567890123456.7.azuredatabricks.net w przypadku operacji obszaru roboczego.
  • Identyfikator konta usługi Azure Databricks dla operacji konta usługi Azure Databricks.
  • Identyfikator klienta głównej usługi.
  • Tajne hasło głównej usługi.

Aby przeprowadzić uwierzytelnianie podmiotu usługi OAuth, zintegruj następujące elementy w kodzie na podstawie odpowiedniego narzędzia lub zestawu SDK:

Środowisko

Aby użyć zmiennych środowiskowych dla określonego typu uwierzytelniania usługi Azure Databricks za pomocą narzędzia lub zestawu SDK, zobacz Autoryzowanie dostępu do zasobów usługi Azure Databricks lub dokumentacji narzędzia lub zestawu SDK. Zobacz także Zmienne środowiskowe i pola dla zunifikowanej autoryzacji klienta oraz Domyślne metody dla zunifikowanej autoryzacji klienta.

W przypadku operacji na poziomie konta ustaw następujące zmienne środowiskowe:

  • DATABRICKS_HOST, ustawiony na adres URL konsoli konta Azure Databricks, https://accounts.azuredatabricks.net.
  • DATABRICKS_ACCOUNT_ID
  • DATABRICKS_CLIENT_ID
  • DATABRICKS_CLIENT_SECRET

W przypadku operacji na poziomie obszaru roboczego ustaw następujące zmienne środowiskowe:

Profil

Utwórz lub zidentyfikuj profil konfiguracji usługi Azure Databricks z następującymi polami w .databrickscfg pliku. Jeśli utworzysz profil, zastąp symbole zastępcze odpowiednimi wartościami. Aby użyć profilu z narzędziem lub zestawem SDK, zobacz Autoryzowanie dostępu do zasobów usługi Azure Databricks lub dokumentacji narzędzia lub zestawu SDK. Zobacz także Zmienne środowiskowe i pola dla zunifikowanej autoryzacji klienta oraz Domyślne metody dla zunifikowanej autoryzacji klienta.

W przypadku operacji na kontach ustaw następujące wartości w pliku .databrickscfg. Adres URL konsoli konta usługi Azure Databricks w tym przypadku to https://accounts.azuredatabricks.net.

[<some-unique-configuration-profile-name>]
host          = <account-console-url>
account_id    = <account-id>
client_id     = <service-principal-client-id>
client_secret = <service-principal-secret>

W przypadku operacji na poziomie przestrzeni roboczej, ustaw następujące wartości w pliku .databrickscfg. W takim przypadku hostem jest adres URL usługi Azure Databricks dla obszaru roboczego, na przykład https://adb-1234567890123456.7.azuredatabricks.net:

[<some-unique-configuration-profile-name>]
host          = <workspace-url>
client_id     = <service-principal-client-id>
client_secret = <service-principal-secret>

Interfejs Linii Komend (CLI)

W przypadku interfejsu wiersza polecenia usługi Databricks wykonaj jedną z następujących czynności:

  • Ustaw zmienne środowiskowe zgodnie z opisem w sekcji "Środowisko" tego artykułu.
  • Ustaw wartości w pliku .databrickscfg zgodnie z sekcją "Profil" w niniejszym artykule.

Zmienne środowiskowe zawsze mają pierwszeństwo przed wartościami w .databrickscfg pliku.

Zobacz również uwierzytelnianie OAuth maszyna-do-maszyny (M2M).

Połącz

Uwaga

Uwierzytelnianie pryncypała usługi OAuth jest obsługiwane w następujących wersjach programu Databricks Connect:

  • Dla usługi Databricks Connect w języku Python wymagana jest wersja Databricks Runtime 14.0 lub nowsza.
  • W przypadku języka Scala usługa Databricks Connect dla środowiska Databricks Runtime 13.3 LTS lub nowszego. Zestaw SDK usługi Databricks dla języka Java dołączony do programu Databricks Connect dla środowiska Databricks Runtime 13.3 LTS lub nowszego musi zostać uaktualniony do zestawu SDK usługi Databricks dla języka Java 0.17.0 lub nowszego.

W przypadku usługi Databricks Connect można wykonać jedną z następujących czynności:

  • Ustaw wartości w .databrickscfg pliku dla operacji na poziomie obszaru roboczego usługi Azure Databricks zgodnie z opisem w sekcji "Profil" tego artykułu. Ustaw również w swoim profilu zmienną środowiskową cluster_id na adres URL dla każdego obszaru roboczego, na przykład https://adb-1234567890123456.7.azuredatabricks.net.
  • Ustaw zmienne środowiskowe dla operacji na poziomie obszaru roboczego usługi Azure Databricks zgodnie z opisem w sekcji "Środowisko" tego artykułu. Ustaw również zmienną DATABRICKS_CLUSTER_ID środowiskową na adres URL obszaru roboczego, na przykład https://adb-1234567890123456.7.azuredatabricks.net.

Wartości w .databrickscfg pliku zawsze mają pierwszeństwo przed zmiennymi środowiskowymi.

Aby zainicjować klienta usługi Databricks Connect przy użyciu tych zmiennych środowiskowych lub wartości w .databrickscfg pliku, zobacz Konfiguracja obliczeń dla usługi Databricks Connect.

VS Code

W przypadku rozszerzenia usługi Databricks dla programu Visual Studio Code wykonaj następujące czynności:

  1. Ustaw wartości w .databrickscfg pliku dla operacji na poziomie obszaru roboczego usługi Azure Databricks zgodnie z opisem w sekcji "Profil" tego artykułu.
  2. W okienku Konfiguracja rozszerzenia usługi Databricks dla programu Visual Studio Code kliknij pozycję Konfiguruj usługę Databricks.
  3. W Palecie Poleceń, dla Hosta usługi Databricks, wprowadź swój adres URL obszaru roboczego, na przykład https://adb-1234567890123456.7.azuredatabricks.net, a następnie naciśnij Enter.
  4. W palecie poleceń wybierz nazwę profilu docelowego na liście przeznaczonej dla adresu URL.

Aby uzyskać więcej informacji, zobacz Konfigurowanie autoryzacji dla rozszerzenia usługi Databricks dla programu Visual Studio Code.

Terraformowanie

W przypadku operacji na poziomie konta dla uwierzytelniania domyślnego:

provider "databricks" {
  alias = "accounts"
}

W przypadku konfiguracji bezpośredniej (zastąp symbole zastępcze retrieve własną implementacją, aby pobrać wartości z konsoli lub innego magazynu konfiguracji, takiego jak HashiCorp Vault. Zobacz też Dostawca magazynu Vault). Adres URL konsoli konta usługi Azure Databricks w tym przypadku to https://accounts.azuredatabricks.net.

provider "databricks" {
  alias         = "accounts"
  host          = <retrieve-account-console-url>
  account_id    = <retrieve-account-id>
  client_id     = <retrieve-client-id>
  client_secret = <retrieve-client-secret>
}

W przypadku operacji na poziomie obszaru roboczego dla uwierzytelniania domyślnego:

provider "databricks" {
  alias = "workspace"
}

W przypadku konfiguracji bezpośredniej (zastąp symbole zastępcze retrieve własną implementacją, aby pobrać wartości z konsoli lub innego magazynu konfiguracji, takiego jak HashiCorp Vault. Zobacz też Dostawca magazynu Vault). W takim przypadku hostem jest adres URL usługi Azure Databricks dla obszaru roboczego, na przykład https://adb-1234567890123456.7.azuredatabricks.net:

provider "databricks" {
  alias         = "workspace"
  host          = <retrieve-workspace-url>
  client_id     = <retrieve-client-id>
  client_secret = <retrieve-client-secret>
}

Aby uzyskać więcej informacji na temat uwierzytelniania za pomocą dostawcy Terraform dla Databricks, zobacz Authentication (Uwierzytelnianie).

Pyton

W przypadku operacji na poziomie konta użyj następujących elementów do uwierzytelniania domyślnego:

from databricks.sdk import AccountClient

a = AccountClient()
# ...

W przypadku konfiguracji bezpośredniej użyj następującej metody, zastępując retrieve symbole zastępcze własną implementacją, aby pobrać wartości z konsoli lub innego magazynu konfiguracji, takiego jak Azure KeyVault. Adres URL konsoli konta usługi Azure Databricks w tym przypadku to https://accounts.azuredatabricks.net.

from databricks.sdk import AccountClient

a = AccountClient(
  host          = retrieve_account_console_url(),
  account_id    = retrieve_account_id(),
  client_id     = retrieve_client_id(),
  client_secret = retrieve_client_secret()
)
# ...

W przypadku operacji na poziomie obszaru roboczego, w szczególności uwierzytelniania domyślnego:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

W przypadku konfiguracji bezpośredniej zastąp retrieve miejsca docelowe własną implementacją, aby pobrać wartości z konsoli lub innego magazynu konfiguracji, takiego jak Azure KeyVault. W takim przypadku hostem jest adres URL usługi Azure Databricks dla obszaru roboczego, na przykład https://adb-1234567890123456.7.azuredatabricks.net:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient(
  host          = retrieve_workspace_url(),
  client_id     = retrieve_client_id(),
  client_secret = retrieve_client_secret()
)
# ...

Aby uzyskać więcej informacji na temat uwierzytelniania za pomocą narzędzi i zestawów SDK usługi Databricks korzystających z języka Python i implementowania ujednoliconego uwierzytelniania klienta usługi Databricks, zobacz:

Uwaga

Rozszerzenie Databricks dla programu Visual Studio Code używa języka Python, ale nie wdrożyło jeszcze uwierzytelniania przez główną aplikację usługi OAuth.

Jawa

W przypadku operacji na poziomie obszaru roboczego przy użyciu domyślnego uwierzytelniania :

import com.databricks.sdk.WorkspaceClient;
// ...
WorkspaceClient w = new WorkspaceClient();
// ...

Dla konfiguracji bezpośredniej (zastąp retrieve symbole zastępcze swoją własną implementacją w celu pobrania wartości z konsoli programu lub innego magazynu konfiguracji, takiego jak Azure KeyVault). W takim przypadku hostem jest adres URL usługi Azure Databricks dla obszaru roboczego, na przykład https://adb-1234567890123456.7.azuredatabricks.net:

import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
  .setHost(retrieveWorkspaceUrl())
  .setClientId(retrieveClientId())
  .setClientSecret(retrieveClientSecret());
WorkspaceClient w = new WorkspaceClient(cfg);
// ...

Aby uzyskać więcej informacji na temat uwierzytelniania za pomocą narzędzi usługi Databricks i zestawów SDK korzystających z języka Java i implementowania ujednoliconego uwierzytelniania klienta usługi Databricks, zobacz:

Idź

W przypadku operacji na poziomie konta przy użyciu domyślnego uwierzytelniania :

import (
"github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient())
// ...

Dla konfiguracji bezpośredniej (zastąp retrieve symbole zastępcze swoją własną implementacją w celu pobrania wartości z konsoli programu lub innego magazynu konfiguracji, takiego jak Azure KeyVault). Adres URL konsoli konta usługi Azure Databricks w tym przypadku to https://accounts.azuredatabricks.net.

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
    Host:         retrieveAccountConsoleUrl(),
    AccountId:    retrieveAccountId(),
    ClientId:     retrieveClientId(),
    ClientSecret: retrieveClientSecret(),
}))
// ...

W przypadku operacji na poziomie obszaru roboczego przy użyciu domyślnego uwierzytelniania :

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient())
// ...

Dla konfiguracji bezpośredniej (zastąp retrieve symbole zastępcze swoją własną implementacją w celu pobrania wartości z konsoli programu lub innego magazynu konfiguracji, takiego jak Azure KeyVault). W takim przypadku hostem jest adres URL usługi Azure Databricks dla obszaru roboczego, na przykład https://adb-1234567890123456.7.azuredatabricks.net:

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
  Host:         retrieveWorkspaceUrl(),
  ClientId:     retrieveClientId(),
  ClientSecret: retrieveClientSecret(),
}))
// ...

Aby uzyskać więcej informacji na temat uwierzytelniania za pomocą narzędzi i zestawów SDK usługi Databricks korzystających z języka Go i implementujących ujednolicone uwierzytelnianie klienta usługi Databricks, zobacz Uwierzytelnianie zestawu SDK usługi Databricks dla języka Go przy użyciu konta lub obszaru roboczego usługi Azure Databricks.

Ręcznie generuj tokeny dostępu i używaj ich do uwierzytelniania głównej jednostki usługi OAuth

Narzędzia i zestawy SDK usługi Azure Databricks, które implementują ujednolicony standard uwierzytelniania klienta Databricks, automatycznie generują, odświeżają i używają tokenów dostępu OAuth usługi Azure Databricks w Twoim imieniu w razie potrzeby dla uwierzytelniania jednostki usługi OAuth.

Usługa Databricks zaleca używanie ujednoliconego uwierzytelniania klienta, jednak jeśli musisz ręcznie wygenerować, odświeżyć lub użyć tokenów dostępu OAuth usługi Azure Databricks, postępuj zgodnie z instrukcjami w tej sekcji.

Użyj identyfikatora klienta jednostki usługi i tajnego klucza OAuth, aby zażądać tokenu dostępu OAuth w celu uwierzytelniania zarówno w interfejsach API REST na poziomie konta, jak i w interfejsach API REST na poziomie obszaru roboczego. Token dostępu wygaśnie w ciągu jednej godziny. Po wygaśnięciu należy zażądać nowego tokenu dostępu OAuth. Zakres tokenu dostępu OAuth zależy od poziomu tworzonego tokenu. Token można utworzyć na poziomie konta lub na poziomie obszaru roboczego w następujący sposób:

Ręczne generowanie tokenu dostępu na poziomie konta

Token dostępu OAuth utworzony na poziomie konta może być używany w ramach interfejsów API REST usługi Databricks na koncie oraz w dowolnym obszarze roboczym, do którego jednostka usługi ma dostęp.

  1. Jako administrator konta zaloguj się do konsoli konta.

  2. Kliknij strzałkę w dół obok swojej nazwy użytkownika w prawym górnym rogu.

  3. Skopiuj identyfikator konta.

  4. Skonstruuj adres URL punktu końcowego tokenu, zastępując <my-account-id> w poniższym adresie URL skopiowanym identyfikatorem konta.

    https://accounts.azuredatabricks.net/oidc/accounts/<my-account-id>/v1/token
    
  5. Użyj klienta, takiego jak curl, aby zażądać tokenu dostępu OAuth, korzystając z adresu URL punktu końcowego tokenu, identyfikatora klienta jednostki usługi (znanego również jako identyfikator aplikacji), oraz sekretu OAuth jednostki usługi, który utworzyłeś. Zakres all-apis żąda tokenu dostępu OAuth, który może służyć do uzyskiwania dostępu do wszystkich interfejsów API REST usługi Databricks, do których udzielono dostępu jednostce usługi.

    • Zastąp element <token-endpoint-URL> poprzednim adresem URL punktu końcowego tokenu.
    • Zastąp <client-id> element identyfikatorem klienta jednostki usługi, który jest również nazywany identyfikatorem aplikacji.
    • Zastąp element <client-secret> tajnym kluczem OAuth principal serwisu, który został utworzony.
    export CLIENT_ID=<client-id>
    export CLIENT_SECRET=<client-secret>
    
      curl --request POST \
      --url <token-endpoint-URL> \
      --user "$CLIENT_ID:$CLIENT_SECRET" \
      --data 'grant_type=client_credentials&scope=all-apis'
    

    Spowoduje to wygenerowanie odpowiedzi podobnej do:

    {
      "access_token": "eyJraWQiOiJkYTA4ZTVjZ…",
      "token_type": "Bearer",
      "expires_in": 3600
    }
    

    Skopiuj element access_token z odpowiedzi.

Ręczne generowanie tokenu dostępu na poziomie obszaru roboczego

Token dostępu OAuth utworzony na poziomie obszaru roboczego może uzyskiwać dostęp tylko do interfejsów API REST w tym obszarze roboczym, nawet jeśli jednostka usługi jest administratorem konta lub jest członkiem innych obszarów roboczych.

  1. Skonstruuj adres URL punktu końcowego tokenu, zastępując ciąg https://<databricks-instance>adresem URL obszaru roboczego wdrożenia usługi Azure Databricks:

    https://<databricks-instance>/oidc/v1/token
    
  2. Użyj klienta, takiego jak curl, aby zażądać tokenu dostępu OAuth, korzystając z adresu URL punktu końcowego tokenu, identyfikatora klienta jednostki usługi (znanego również jako identyfikator aplikacji), oraz sekretu OAuth jednostki usługi, który utworzyłeś. Zakres all-apis żąda tokenu dostępu OAuth, który może służyć do uzyskiwania dostępu do wszystkich interfejsów API REST usługi Databricks, do których jednostka usługi uzyskała dostęp w obszarze roboczym, z którego żądasz tokenu.

    • Zastąp element <token-endpoint-URL> poprzednim adresem URL punktu końcowego tokenu.
    • Zastąp <client-id> element identyfikatorem klienta jednostki usługi, który jest również nazywany identyfikatorem aplikacji.
    • Zastąp element <client-secret> tajnym kluczem OAuth principal serwisu, który został utworzony.
    export CLIENT_ID=<client-id>
    export CLIENT_SECRET=<client-secret>
    
    curl --request POST \
    --url <token-endpoint-URL> \
    --user "$CLIENT_ID:$CLIENT_SECRET" \
    --data 'grant_type=client_credentials&scope=all-apis'
    

    Spowoduje to wygenerowanie odpowiedzi podobnej do:

    {
      "access_token": "eyJraWQiOiJkYTA4ZTVjZ…",
      "token_type": "Bearer",
      "expires_in": 3600
    }
    

    Skopiuj element access_token z odpowiedzi.

Wywołaj interfejs API REST usługi Databricks

Można użyć tokenu dostępu OAuth do uwierzytelniania się w Azure Databricks API REST na poziomie konta oraz API REST na poziomie obszaru roboczego. Główna jednostka usługi musi mieć uprawnienia administratora konta, aby wywoływać interfejsy API REST na poziomie konta.

Uwzględnij token dostępu w nagłówku autoryzacji, korzystając z uwierzytelniania Bearer. Możesz użyć tego podejścia z curl lub dowolnym klientem, który tworzysz.

Przykładowe żądanie interfejsu API REST na poziomie konta

W tym przykładzie użyto Bearer uwierzytelniania, aby uzyskać listę wszystkich obszarów roboczych skojarzonych z kontem.

  • Zastąp element <oauth-access-token> tokenem dostępu OAuth głównej instancji usługi, który skopiowałeś w poprzednim kroku.
  • Zastąp <account-id> ciąg swoim identyfikatorem konta.
export OAUTH_TOKEN=<oauth-access-token>

curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
'https://accounts.azuredatabricks.net/api/2.0/accounts/<account-id>/workspaces'

Przykładowe żądanie interfejsu API REST na poziomie obszaru roboczego

W tym przykładzie użyto Bearer uwierzytelniania, aby wyświetlić listę wszystkich dostępnych klastrów w określonym obszarze roboczym.

  • Zastąp element <oauth-access-token> tokenem dostępu OAuth głównej instancji usługi, który skopiowałeś w poprzednim kroku.
  • Zamień <workspace-URL> adresem URL podstawowego obszaru roboczego, który jest w formie podobnej do dbc-a1b2345c-d6e7.cloud.databricks.com.
export OAUTH_TOKEN=<oauth-access-token>

curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
'https://<workspace-URL>/api/2.0/clusters/list'

Dodatkowe zasoby