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.

Aby uzyskać bardziej ogólne szczegóły, zobacz Autoryzowanie dostępu do zasobów usługi Azure Databricks (Tworzenie 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ń, podczas uruchomienia polecenia CLI lub wywołania interfejsu REST API, uczestniczącemu narzędziu lub SDK zostaje przekazany token OAuth, który umożliwia dalsze uwierzytelnianie oparte na tokenach w imieniu tej jednostki usługi. 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 usługi Databricks. Takie podejście jest odpowiednie do automatyzacji lub innych scenariuszy nienadzorowanych procesów.
  • Ręcznie, generując bezpośrednio parę weryfikatorów kodu OAuth/wyzwanie i kod autoryzacji, a następnie używając ich do utworzenia początkowego tokenu OAuth, który zostanie przekazany 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ęcznie generuj tokeny dostępu do uwierzytelniania jednostki usługi OAuth.

Przed rozpoczęciem należy skonfigurować jednostkę usługi Azure Databricks i przypisać jej odpowiednie uprawnienia dostępu do zasobów, których musi używać podczas żądania kodu automatyzacji lub poleceń.

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

Administratorzy konta i administratorzy obszaru roboczego mogą tworzyć jednostki 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 Zarządzanie jednostkami usługi na koncie.

Możesz również utworzyć jednostkę usługi zarządzanej identyfikatora entra firmy Microsoft i dodać ją do usługi Azure Databricks. Aby uzyskać więcej informacji, zobacz Databricks i Microsoft Entra ID jednostki usługi.

  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 pozycję Dodaj jednostkę usługi.
  6. Kliknij strzałkę listy rozwijanej w polu wyszukiwania, a następnie kliknij pozycję Dodaj nową.
  7. W obszarze Zarządzanie wybierz pozycję Zarządzane przez usługę Databricks.
  8. Wprowadź nazwę 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 w jednostce usługi.

Krok 2. Tworzenie wpisu tajnego OAuth dla jednostki 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. Jednostka usługi może mieć maksymalnie pięć wpisów tajnych protokołu OAuth. Administratorzy konta i administratorzy obszaru roboczego mogą utworzyć wpis tajny OAuth dla jednostki usługi.

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

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

    Generowanie wpisu tajnego OAuth z obszaru roboczego

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

Wpis tajny zostanie ujawniony tylko raz podczas tworzenia. Identyfikator klienta jest taki sam jak identyfikator aplikacji jednostki usługi.

Administratorzy konta mogą również wygenerować wpis tajny OAuth na stronie szczegółów jednostki usługi w konsoli konta.

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

  2. Kliknij pozycję Ikona zarządzania użytkownikami konsoli kontaZarządzanie użytkownikami.

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

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

    Generowanie wpisu tajnego OAuth z obszaru roboczego

  5. 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 operacje konta lub docelowy adres URL dla 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 jednostki usługi.
  • Wpis tajny jednostki 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 Tworzenie dostępu do zasobów usługi Azure Databricks lub dokumentacji narzędzia lub zestawu SDK. Zobacz również Zmienne środowiskowe i pola dla ujednoliconego uwierzytelniania klienta oraz domyślne metody ujednoliconego uwierzytelniania klienta.

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

  • DATABRICKS_HOST, ustaw adres URL konsoli konta usługi 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:

  • DATABRICKS_HOST, ustaw adres URL usługi Azure Databricks na obszar roboczy, na przykład https://adb-1234567890123456.7.azuredatabricks.net.
  • DATABRICKS_CLIENT_ID
  • DATABRICKS_CLIENT_SECRET

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 Autoryzacja dostępu do zasobów Azure Databricks lub dokumentację narzędzia lub zestawu SDK. Zobacz również Zmienne środowiskowe i pola dla ujednoliconego uwierzytelniania klienta oraz domyślne metody ujednoliconego uwierzytelniania klienta.

W przypadku operacji na poziomie konta ustaw następujące wartości w .databrickscfg pliku. W takim przypadku adres URL konsoli konta usługi Azure Databricks 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 obszaru roboczego ustaw następujące wartości w .databrickscfg pliku. 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>

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 zgodnie z opisem w .databrickscfg sekcji "Profil" tego artykułu.

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

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

Połącz

Uwaga

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

  • W przypadku języka Python usługa Databricks Connect dla środowiska Databricks Runtime 14.0 lub nowszego.
  • 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:

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ń w polu Host usługi Databricks wprowadź 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 adresu URL.

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

Terraform

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

provider "databricks" {
  alias = "accounts"
}

W przypadku konfiguracji bezpośredniej (zastąp retrieve symbole zastępcze własną implementacją, aby pobrać wartości z konsoli lub innego magazynu konfiguracji, takiego jak HashiCorp Vault. Zobacz też Dostawca magazynu). W takim przypadku adres URL konsoli konta usługi Azure Databricks 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 retrieve symbole zastępcze własną implementacją, aby pobrać wartości z konsoli lub innego magazynu konfiguracji, takiego jak HashiCorp Vault. Zobacz też Dostawca magazynu). 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 narzędzia Terraform usługi Databricks, zobacz Authentication (Uwierzytelnianie).

Python

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. W takim przypadku adres URL konsoli konta usługi Azure Databricks 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 retrieve zastąp symbole zastępcze 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 usługi Databricks dla programu Visual Studio Code używa języka Python, ale nie zaimplementowało jeszcze uwierzytelniania jednostki usługi OAuth.

Java

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

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

W przypadku konfiguracji bezpośredniej (zastąp retrieve symbole zastępcze 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:

Go

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

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

W przypadku konfiguracji bezpośredniej (zastąp retrieve symbole zastępcze własną implementacją w celu pobrania wartości z konsoli programu lub innego magazynu konfiguracji, takiego jak Azure KeyVault). W takim przypadku adres URL konsoli konta usługi Azure Databricks 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())
// ...

W przypadku konfiguracji bezpośredniej (zastąp retrieve symbole zastępcze 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 wpisu tajnego OAuth, aby zażądać tokenu dostępu OAuth w celu uwierzytelnienia zarówno interfejsów API REST na poziomie konta, jak i interfejsów 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 podstawie poziomu konta może być używany względem interfejsów API REST usługi Databricks na koncie, a w dowolnym obszarze roboczym 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> ciąg w poniższym adresie URL skopiowanymi identyfikatorami 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 z adresem URL punktu końcowego tokenu, identyfikatorem klienta jednostki usługi (znanym również jako identyfikator aplikacji) i utworzonym wpisem tajnym OAuth jednostki usługi. 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> wpisem tajnym OAuth jednostki usługi, 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 z adresem URL punktu końcowego tokenu, identyfikatorem klienta jednostki usługi (znanym również jako identyfikator aplikacji) i utworzonym wpisem tajnym OAuth jednostki usługi. 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> wpisem tajnym OAuth jednostki usługi, 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ływanie interfejsu 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. 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 przy użyciu uwierzytelniania Bearer. Możesz użyć tego podejścia z dowolnym klientem 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 jednostki usługi skopiowany 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 jednostki usługi skopiowany w poprzednim kroku.
  • Zastąp <workspace-URL> ciąg adresem URL podstawowego obszaru roboczego, który ma postać podobną 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