Uwierzytelnianie dostępu do usługi Azure Databricks przy użyciu jednostki usługi przy użyciu protokołu OAuth (OAuth M2M)
W tym artykule wyjaśniono, jak utworzyć jednostkę usługi Azure Databricks i użyć jej lub jednostki usługi zarządzanej microsoft Entra ID w celu uwierzytelnienia w jednostce docelowej.
Uwaga
Aby zarządzać poświadczeniami protokołu OAuth usługi Azure Databricks dla jednostek usługi, musisz być administratorem konta usługi Azure Databricks.
Krok 1. Tworzenie jednostki usługi Microsoft Entra ID na koncie platformy Azure
Wykonaj ten krok, jeśli chcesz połączyć jednostkę usługi Microsoft Entra ID z kontem, obszarem roboczym lub obydwoma kontami usługi Azure Databricks. W przeciwnym razie przejdź do kroku 2.
Zaloguj się w witrynie Azure Portal.
Uwaga
Portal, który ma być używany, różni się w zależności od tego, czy aplikacja Microsoft Entra ID działa w chmurze publicznej platformy Azure, czy w chmurze krajowej lub suwerennej. Aby uzyskać więcej informacji, zobacz Chmury krajowe.
Jeśli masz dostęp do wielu dzierżaw, subskrypcji lub katalogów, kliknij ikonę Katalogi i subskrypcje (katalog z filtrem) w górnym menu, aby przełączyć się do katalogu, w którym chcesz aprowizować jednostkę usługi.
W obszarze Wyszukaj zasoby, usługi i dokumenty wyszukaj i wybierz pozycję Microsoft Entra ID.
Kliknij pozycję + Dodaj i wybierz pozycję Rejestracja aplikacji.
W polu Nazwa wprowadź nazwę aplikacji.
W sekcji Obsługiwane typy kont wybierz pozycję Konta w tym katalogu organizacyjnym (tylko jedna dzierżawa).
Kliknij pozycję Zarejestruj.
Na stronie Przegląd aplikacji w sekcji Podstawy skopiuj następujące wartości:
- Identyfikator aplikacji (klienta)
- Identyfikator katalogu (dzierżawy)
Aby wygenerować klucz tajny klienta, w obszarze Zarządzanie kliknij pozycję Certyfikaty i wpisy tajne.
Uwaga
Ten klucz tajny klienta służy do generowania tokenów identyfikatora entra firmy Microsoft na potrzeby uwierzytelniania jednostek usługi Microsoft Entra ID za pomocą usługi Azure Databricks. Aby określić, czy narzędzie usługi Azure Databricks lub zestaw SDK mogą używać tokenów identyfikatora Entra firmy Microsoft, zapoznaj się z dokumentacją narzędzia lub zestawu SDK.
Na karcie Wpisy tajne klienta kliknij pozycję Nowy klucz tajny klienta.
W okienku Dodawanie wpisu tajnego klienta w polu Opis wprowadź opis wpisu tajnego klienta.
W obszarze Wygasa wybierz okres wygaśnięcia wpisu tajnego klienta, a następnie kliknij przycisk Dodaj.
Skopiuj i zapisz wartość wpisu tajnego klienta w bezpiecznym miejscu, ponieważ ten klucz tajny klienta jest hasłem dla aplikacji.
Krok 2. Dodawanie jednostki usługi do konta usługi Azure Databricks
Ten krok działa tylko wtedy, gdy docelowy obszar roboczy usługi Azure Databricks jest włączony dla federacji tożsamości. Jeśli obszar roboczy nie jest włączony dla federacji tożsamości, przejdź do kroku 3.
W obszarze roboczym usługi Azure Databricks kliknij swoją nazwę użytkownika na górnym pasku i kliknij pozycję Zarządzaj kontem.
Możesz też przejść bezpośrednio do konsoli konta usługi Azure Databricks pod adresem https://accounts.azuredatabricks.net.
Zaloguj się do konta usługi Azure Databricks, jeśli zostanie wyświetlony monit.
Na pasku bocznym kliknij pozycję Zarządzanie użytkownikami.
Kliknij kartę Jednostki usługi.
Kliknij pozycję Dodaj jednostkę usługi.
W obszarze Zarządzanie wybierz pozycję Zarządzane przez usługę Databricks lub Zarządzany identyfikator entra firmy Microsoft.
Jeśli wybrano pozycję Zarządzany identyfikator entra firmy Microsoft, w obszarze Identyfikator aplikacji Entra firmy Microsoft wklej wartość identyfikatora aplikacji (klienta) z kroku 1.
Wprowadź nazwę jednostki usługi.
Kliknij przycisk Dodaj.
(Opcjonalnie) Przypisz uprawnienia na poziomie konta do jednostki usługi:
- Na karcie Jednostki usługi kliknij nazwę jednostki usługi.
- Na karcie Role przełącz się, aby włączyć lub wyłączyć każdą rolę docelową, którą ma mieć ta jednostka usługi.
- Na karcie Uprawnienia przyznaj dostęp do wszystkich użytkowników usługi Azure Databricks, jednostek usługi i ról grupy kont, którymi chcesz zarządzać i używać tej jednostki usługi. Zobacz Zarządzanie rolami w jednostce usługi.
Krok 3. Dodawanie jednostki usługi do obszaru roboczego usługi Azure Databricks
Jeśli obszar roboczy jest włączony dla federacji tożsamości:
- W obszarze roboczym usługi Azure Databricks kliknij swoją nazwę użytkownika na górnym pasku i kliknij pozycję Ustawienia.
- Kliknij kartę Tożsamość i dostęp .
- Obok pozycji Jednostki usługi kliknij pozycję Zarządzaj.
- Kliknij pozycję Dodaj jednostkę usługi.
- Wybierz jednostkę usługi z kroku 2, a następnie kliknij przycisk Dodaj.
Przejdź do kroku 4.
Jeśli obszar roboczy nie jest włączony dla federacji tożsamości:
- W obszarze roboczym usługi Azure Databricks kliknij swoją nazwę użytkownika na górnym pasku i kliknij pozycję Ustawienia.
- Kliknij kartę Tożsamość i dostęp .
- Obok pozycji Jednostki usługi kliknij pozycję Zarządzaj.
- Kliknij pozycję Dodaj jednostkę usługi.
- Kliknij pozycję Dodaj nowy.
- W obszarze Zarządzanie wybierz pozycję Zarządzane przez usługę Databricks lub Zarządzany identyfikator entra firmy Microsoft.
- Jeśli wybrano pozycję Zarządzany identyfikator entra firmy Microsoft, w obszarze Identyfikator aplikacji Entra firmy Microsoft wklej wartość identyfikatora aplikacji (klienta) z kroku 1.
- Wprowadź nazwę wyświetlaną nowej jednostki usługi i kliknij przycisk Dodaj.
Krok 4. Przypisywanie uprawnień na poziomie obszaru roboczego do jednostki usługi
- Jeśli konsola administracyjna obszaru roboczego nie jest jeszcze otwarta, kliknij swoją nazwę użytkownika na górnym pasku i kliknij pozycję Ustawienia.
- Kliknij kartę Tożsamość i dostęp .
- Obok pozycji Jednostki usługi kliknij pozycję Zarządzaj.
- Kliknij nazwę jednostki usługi, aby otworzyć stronę ustawień.
- 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.
- 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 5. Tworzenie wpisu tajnego OAuth usługi Azure Databricks dla jednostki usługi
Przed użyciem protokołu OAuth do uwierzytelniania w usłudze Azure Databricks należy najpierw utworzyć wpis tajny OAuth, który może służyć do generowania tokenów dostępu OAuth. Jednostka usługi może mieć maksymalnie pięć wpisów tajnych protokołu OAuth.
Aby utworzyć wpis tajny OAuth dla jednostki usługi z poziomu konsoli konta:
- Zaloguj się do konsoli konta usługi Azure Databricks pod adresem https://accounts.azuredatabricks.net.
- Zaloguj się do konta usługi Azure Databricks, jeśli zostanie wyświetlony monit.
- Na pasku bocznym kliknij pozycję Zarządzanie użytkownikami.
- Kliknij kartę Jednostki usługi.
- Kliknij nazwę jednostki usługi.
- W sekcji Wpisy tajne OAuth karty Informacje główne kliknij pozycję Generuj wpis tajny.
- W oknie dialogowym Generowanie wpisu tajnego skopiuj i zapisz wartość Wpisu tajnego w bezpiecznym miejscu, ponieważ ten wpis tajny OAuth jest hasłem dla jednostki usługi.
- Kliknij Gotowe.
Aby utworzyć wpis tajny OAuth dla jednostki usługi z obszaru roboczego:
Jako administrator obszaru roboczego kliknij swoją nazwę użytkownika na górnym pasku i kliknij pozycję Ustawienia.
Kliknij kartę Tożsamość i dostęp .
Obok pozycji Jednostki usługi kliknij pozycję Zarządzaj.
Kliknij nazwę jednostki usługi, aby otworzyć stronę ustawień.
Kliknij kartę Wpisy tajne .
W obszarze Wpisy tajne protokołu OAuth kliknij pozycję Generuj wpis tajny.
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.
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.
Kończenie konfigurowania uwierzytelniania OAuth M2M
Aby zakończyć konfigurowanie uwierzytelniania OAuth M2M, należy ustawić następujące skojarzone zmienne środowiskowe, .databrickscfg
pola, pola programu Terraform lub Config
pola:
- Host usługi Azure Databricks określony jako
https://accounts.azuredatabricks.net
operacje konta lub docelowy adres URL dla obszaru roboczego, na przykładhttps://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 OAuth M2M, zintegruj następujące elementy w kodzie na podstawie uczestniczących narzędzi 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 Uwierzytelnianie 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ładhttps://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 za pomocą narzędzia lub zestawu SDK, zobacz Uwierzytelnianie 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 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 OAuth M2M 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:
- 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ż zmiennącluster_id
środowiskową w profilu na adres URL obszaru roboczego, na przykładhttps://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ładhttps://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 jedną z następujących opcji:
- W przypadku języka Python zobacz Konfigurowanie właściwości połączenia dla języka Python.
- W przypadku języka Scala zobacz Konfigurowanie właściwości połączenia dla języka Scala.
VS Code
W przypadku rozszerzenia usługi Databricks dla programu Visual Studio Code wykonaj następujące 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. - W okienku Konfiguracja rozszerzenia usługi Databricks dla programu Visual Studio Code kliknij pozycję Konfiguruj usługę Databricks.
- 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śnijEnter
. - W palecie poleceń wybierz nazwę profilu docelowego na liście adresu URL.
Aby uzyskać więcej informacji, zobacz Konfigurowanie uwierzytelniania 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:
- Konfigurowanie klienta usługi Databricks Connect dla języka Python
- Uwierzytelnianie zestawu SDK usługi Databricks dla języka Python przy użyciu konta lub obszaru roboczego usługi Azure Databricks
Uwaga
Rozszerzenie usługi Databricks dla programu Visual Studio Code używa języka Python, ale nie zaimplementowało jeszcze uwierzytelniania OAuth M2M.
Java
W przypadku operacji na poziomie obszaru roboczego dla uwierzytelniania domyślnego:
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:
- Konfigurowanie klienta usługi Databricks Connect dla języka Scala (klient programu Databricks Connect dla języka Scala używa dołączonego zestawu SDK usługi Databricks dla języka Java na potrzeby uwierzytelniania)
- Uwierzytelnianie zestawu SDK usługi Databricks dla języka Java przy użyciu konta lub obszaru roboczego usługi Azure Databricks
Go
W przypadku operacji na poziomie konta dla uwierzytelniania domyślnego:
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 dla uwierzytelniania domyślnego:
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ęczne generowanie i używanie tokenów dostępu do uwierzytelniania OAuth M2M
Narzędzia i zestawy SDK usługi Azure Databricks, które implementują ujednolicony standard uwierzytelniania klienta usługi Databricks, automatycznie będą generować, odświeżać i używać tokenów dostępu OAuth usługi Azure Databricks w Twoim imieniu zgodnie z potrzebami w przypadku uwierzytelniania OAuth M2M.
Jeśli musisz ręcznie wygenerować, odświeżyć lub użyć tokenów dostępu OAuth usługi Azure Databricks na potrzeby uwierzytelniania OAuth M2M, postępuj zgodnie z instrukcjami w tej sekcji.
Krok 1. Tworzenie jednostki usługi i wpisu tajnego OAuth
Jeśli nie masz jeszcze jednostki usługi zarządzanej usługi Azure Databricks lub jednostki usługi zarządzanej Microsoft Entra ID i odpowiadającej jej wpisu tajnego OAuth usługi Azure Databricks, utwórz je, wykonując kroki 1–5 na początku tego artykułu.
Krok 2. Ręczne generowanie tokenu dostępu
Użyj identyfikatora klienta zarządzanej jednostki usługi lub jednostki usługi zarządzanej microsoft Databricks oraz klucza tajnego protokołu OAuth usługi Azure Databricks, aby zażądać tokenu dostępu OAuth usługi Azure Databricks w celu uwierzytelnienia w obu interfejsach API REST na poziomie konta i interfejsach API REST na poziomie obszaru roboczego. Token wygaśnie za jedną godzinę. Po wygaśnięciu należy zażądać nowego tokenu dostępu OAuth usługi Azure Databricks. 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:
- Aby wywołać interfejsy API REST na poziomie konta i obszaru roboczego w ramach kont i obszarów roboczych, do których jednostka usługi zarządzanej usługi Azure Databricks lub jednostka usługi zarządzanej microsoft Entra ID ma dostęp, ręcznie wygeneruj token dostępu na poziomie konta.
- Aby wywołać interfejsy API REST tylko w jednym obszarze roboczym, do którego ma dostęp jednostka usługi zarządzanej usługi Azure Databricks lub jednostka usługi zarządzanej Microsoft Entra ID, możesz ręcznie wygenerować token dostępu na poziomie obszaru roboczego tylko dla tego obszaru roboczego.
Ręczne generowanie tokenu dostępu na poziomie konta
Token dostępu OAuth usługi Azure Databricks utworzony na podstawie poziomu konta może być używany z interfejsami API REST usługi Databricks na koncie i we wszystkich obszarach roboczych przypisano jednostkę usługi zarządzanej usługi Azure Databricks lub jednostkę usługi zarządzanej microsoft Entra ID.
Jako administrator konta zaloguj się do konsoli konta.
Kliknij strzałkę w dół obok swojej nazwy użytkownika w prawym górnym rogu.
Skopiuj identyfikator konta.
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
Użyj klienta, takiego jak
curl
, aby zażądać tokenu dostępu OAuth usługi Azure Databricks z adresem URL punktu końcowego tokenu, identyfikatorem klienta (nazywanym również identyfikatorem aplikacji) jednostki usługi zarządzanej usługi Azure Databricks lub jednostki usługi zarządzanej microsoft Entra ID oraz wpisem tajnym OAuth usługi Azure Databricks utworzonym dla jednostki usługi zarządzanej usługi Azure Databricks lub jednostki usługi zarządzanej microsoft Entra ID. Zakresall-apis
żąda tokenu dostępu OAuth usługi Azure Databricks, 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 jednostki usługi zarządzanej usługi Azure Databricks lub jednostki usługi zarządzanej Microsoft Entra ID.- Zastąp element
<token-endpoint-URL>
adresem URL punktu końcowego tokenu z powyższego. - Zastąp ciąg
<client-id>
identyfikatorem klienta jednostki usługi zarządzanej usługi azure Databricks lub identyfikatorem klienta jednostki usługi zarządzanej firmy Microsoft Entra, czyli identyfikatorem aplikacji. - Zastąp element
<client-secret>
wpisem tajnym OAuth usługi Azure Databricks utworzonym dla jednostki usługi zarządzanej usługi Azure Databricks lub jednostki usługi zarządzanej microsoft Entra ID.
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…", "scope": "all-apis", "token_type": "Bearer", "expires_in": 3600 }
Skopiuj element
access_token
z odpowiedzi.Token dostępu OAuth usługi Azure Databricks wygaśnie w ciągu jednej godziny. Po wygaśnięciu należy ręcznie wygenerować nowy token dostępu OAuth usługi Azure Databricks.
- Zastąp element
Przejdź do kroku 3. Wywoływanie interfejsu API REST usługi Databricks.
Ręczne generowanie tokenu dostępu na poziomie obszaru roboczego
Token dostępu OAuth usługi Azure Databricks utworzony na podstawie poziomu obszaru roboczego może uzyskiwać dostęp tylko do interfejsów API REST w tym obszarze roboczym, nawet jeśli jednostka usługi zarządzanej usługi Azure Databricks lub jednostka usługi zarządzanej Microsoft Entra ID jest administratorem konta lub członkiem innych obszarów roboczych.
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
Użyj klienta, takiego jak
curl
, aby zażądać tokenu dostępu OAuth usługi Azure Databricks z adresem URL punktu końcowego tokenu, identyfikatorem klienta (znanym również jako identyfikator aplikacji) jednostki usługi zarządzanej usługi Azure Databricks lub jednostki usługi zarządzanej microsoft Entra ID oraz wpisem tajnym OAuth usługi Azure Databricks utworzonym dla jednostki usługi zarządzanej usługi Azure Databricks lub jednostki usługi zarządzanej microsoft Entra ID. Zakresall-apis
żąda tokenu dostępu OAuth usługi Azure Databricks, który może służyć do uzyskiwania dostępu do wszystkich interfejsów API REST usługi Databricks, z których jednostka usługi zarządzanej usługi Azure Databricks lub jednostka usługi zarządzanej Microsoft Entra ID została udzielona w obszarze roboczym, z którego żądasz tokenu.Zastąp element
<token-endpoint-URL>
adresem URL punktu końcowego tokenu z powyższego.Zastąp ciąg
<client-id>
identyfikatorem klienta jednostki usługi zarządzanej usługi azure Databricks lub identyfikatorem klienta jednostki usługi zarządzanej firmy Microsoft Entra, czyli identyfikatorem aplikacji.Zastąp element
<client-secret>
wpisem tajnym OAuth usługi Azure Databricks utworzonym dla jednostki usługi zarządzanej usługi Azure Databricks lub jednostki usługi zarządzanej microsoft Entra ID.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…", "scope": "all-apis", "token_type": "Bearer", "expires_in": 3600 }
Skopiuj element
access_token
z odpowiedzi.
Krok 3. Wywoływanie interfejsu API REST usługi Databricks
Teraz możesz użyć tokenu dostępu OAuth usługi Azure Databricks do uwierzytelniania w interfejsach API REST na poziomie konta usługi Azure Databricks i interfejsów API REST na poziomie obszaru roboczego. Jednostka usługi zarządzanej usługi Azure Databricks lub jednostka usługi zarządzanej microsoft Entra ID musi być administratorem konta, aby wywoływać interfejsy API REST na poziomie konta.
Token można dołączyć do nagłówka przy użyciu Bearer
uwierzytelniania. 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
<oauth-access-token>
element tokenem dostępu OAuth usługi Azure Databricks dla jednostki usługi zarządzanej usługi Azure Databricks lub jednostki usługi zarządzanej microsoft Entra ID. - 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
<oauth-access-token>
element tokenem dostępu OAuth usługi Azure Databricks dla jednostki usługi zarządzanej usługi Azure Databricks lub jednostki usługi zarządzanej microsoft Entra ID.Zastąp
<workspace-URL>
ciąg adresem URL podstawowego obszaru roboczego, który ma postać podobną doadb-1111111111111111.1.azuredatabricks.net
.export OAUTH_TOKEN=<oauth-access-token> curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \ 'https://<workspace-URL>/api/2.0/clusters/list'
Dodatkowe zasoby
- Jednostki usługi
- Omówienie modelu tożsamości usługi Databricks
- Dodatkowe informacje na temat uwierzytelniania i kontroli dostępu