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 wyjaśniono, jak autoryzować dostęp do zasobów usługi Azure Databricks z nienadzorowanych procesów, takich jak zautomatyzowane polecenia interfejsu wiersza polecenia lub wywołania interfejsu API REST wykonane ze skryptów lub aplikacji.
Usługa Azure Databricks używa protokołu OAuth 2.0 jako preferowanego protokołu autoryzacji jednostki usługi i uwierzytelniania poza interfejsem użytkownika. Ujednolicone uwierzytelnianie klienta automatyzuje generowanie i odświeżanie tokenów. Gdy jednostka usługi loguje się i otrzymuje zgodę, protokół OAuth wystawia token dostępu dla interfejsu wiersza polecenia, zestawu SDK lub innego narzędzia do użycia w jego imieniu. Każdy token dostępu jest ważny przez jedną godzinę, po której nowy token jest automatycznie żądany.
Na tej stronie autoryzacja odnosi się do używania protokołu OAuth w celu udzielenia jednostce usługi dostępu do zasobów usługi Azure Databricks, podczas gdy uwierzytelnianie odnosi się do weryfikowania poświadczeń za pośrednictwem tokenów dostępu.
Aby uzyskać więcej szczegółów wysokiego poziomu, zobacz Autoryzowanie dostępu do zasobów usługi Azure Databricks.
Sposoby autoryzowania jednostki usługi
Usługa Azure Databricks obsługuje dwa sposoby autoryzowania jednostki usługi:
Automatyczne (zalecane): Użyj ujednoliconego uwierzytelniania z obsługiwanymi narzędziami i zestawami SDK, takimi jak zestaw SDK narzędzia Terraform usługi Azure Databricks. Takie podejście obsługuje automatyczne generowanie i odświeżanie tokenów oraz jest idealne dla automatyzacji lub innych nienadzorowanych obciążeń.
Ręcznie: Wygeneruj weryfikator kodu i wyzwanie, a następnie wymieniaj je na potrzeby tokenu OAuth. Użyj tej metody, jeśli narzędzie lub interfejs API nie obsługuje ujednoliconego uwierzytelniania. Może być konieczne utworzenie własnego mechanizmu odświeżania tokenu dla aplikacji. Aby uzyskać szczegółowe informacje, zobacz Ręczne generowanie tokenów dostępu OAuth M2M.
Wymagania wstępne
Przed skonfigurowaniem protokołu OAuth wykonaj następujące kroki:
- Utwórz jednostkę usługi Azure Databricks. Zobacz Dodawanie jednostek usługi do konta.
- Przejdź do karty Konfiguracja jednostki usługi i wybierz uprawnienia, które powinny być przeznaczone dla tego obszaru roboczego.
- Przejdź do karty Uprawnienia i 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 Kto może zarządzać jednostkami usługi i korzystać z nich?.
Krok 1. Tworzenie wpisu tajnego OAuth
Aby autoryzować dostęp do zasobów usługi Azure Databricks za pomocą protokołu OAuth, musisz utworzyć wpis tajny OAuth. Wpis tajny służy do generowania tokenów dostępu OAuth na potrzeby uwierzytelniania. Jednostka usługi może mieć maksymalnie pięć wpisów tajnych OAuth, a każdy wpis tajny może być ważny przez maksymalnie dwa lata.
Administratorzy konta i administratorzy obszaru roboczego mogą utworzyć tajny klucz OAuth dla podmiotu usługi.
- Na stronie szczegółów jednostki usługi otwórz kartę Wpisy tajne .
- W obszarze Wpisy tajne protokołu OAuth kliknij pozycję Generuj wpis tajny.
- Ustaw okres istnienia wpisu tajnego w dniach (maksymalnie 730 dni).
- Skopiuj wyświetlony wpis tajny i identyfikator klienta, a następnie kliknij przycisk Gotowe. Wpis tajny jest wyświetlany tylko raz. Identyfikator klienta jest taki sam jak identyfikator aplikacji jednostki usługi.
Administratorzy kont mogą również utworzyć wpis tajny OAuth z poziomu konsoli konta. Na karcie Zarządzanie użytkownikami wybierz jednostkę usługi, a następnie przejdź do karty Poświadczenia i wpisy tajne .
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 2. Korzystanie z autoryzacji OAuth
Aby używać autoryzacji OAuth z ujednoliconym narzędziem uwierzytelniania, 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.netdla operacji konta lub docelowy adres URL obszaru roboczego, na przykładhttps://adb-1234567890123456.7.azuredatabricks.netw 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 również Zmienne środowiskowe i pola dotyczące ujednoliconego uwierzytelniania i priorytetu metody uwierzytelniania.
W przypadku operacji na poziomie konta ustaw następujące zmienne środowiskowe:
-
DATABRICKS_HOST, ustaw wartość adresu URL konsoli konta usługi Azure Databricks,https://accounts.azuredatabricks.net. DATABRICKS_ACCOUNT_IDDATABRICKS_CLIENT_IDDATABRICKS_CLIENT_SECRET
W przypadku operacji na poziomie obszaru roboczego ustaw następujące zmienne środowiskowe:
-
DATABRICKS_HOST, ustaw wartość adresu URL usługi Azure Databricks na obszar roboczy, na przykładhttps://adb-1234567890123456.7.azuredatabricks.net. DATABRICKS_CLIENT_IDDATABRICKS_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 Autoryzowanie dostępu do zasobów usługi Azure Databricks lub dokumentacji narzędzia lub zestawu SDK. Zobacz również Zmienne środowiskowe i pola dotyczące ujednoliconego uwierzytelniania i priorytetu metody uwierzytelniania.
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>
Podczas autoryzacji za pomocą jednostek usługi Azure AD klucze konfiguracji różnią się od jednostek usługi zarządzanej przez usługę Azure Databricks:
host = https://<workspace-url>
azure_client_id = <azure-service-principal-client-id>
azure_client_secret = <azure-service-principal-secret>
azure_tenant_id = <azure-tenant-id>
CLI
W przypadku interfejsu wiersza polecenia usługi Databricks wykonaj jedną z następujących czynności:
- Ustaw zmienne środowiskowe zgodnie z wartością określoną na karcie Środowisko .
- Ustaw wartości w
.databrickscfgpliku zgodnie z wartościami określonymi na karcie Profil .
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ć następujące czynności:
-
Użyj profilu konfiguracji: Ustaw wartości na poziomie obszaru roboczego w
.databrickscfgpliku zgodnie z opisem na karcie Profil .cluster_idUstaw również adres URL wystąpienia obszaru roboczego. -
Użyj zmiennych środowiskowych: Ustaw te same wartości, jak pokazano na karcie Środowisko .
DATABRICKS_CLUSTER_IDUstaw również adres URL wystąpienia obszaru roboczego.
Wartości w .databrickscfg programie mają pierwszeństwo przed zmiennymi środowiskowymi.
Aby zainicjować usługę Databricks Connect przy użyciu tych ustawień, zobacz Konfiguracja obliczeniowa dla usługi Databricks Connect.
VS Code
W przypadku rozszerzenia usługi Databricks dla programu Visual Studio Code wykonaj następujące czynności:
- Ustaw wartości w
.databrickscfgpliku dla operacji na poziomie obszaru roboczego usługi Azure Databricks, jak określono na karcie Profil . - W okienku Konfiguracja rozszerzenia usługi Databricks dla programu Visual Studio Code kliknij pozycję Konfiguruj usługę Databricks.
- 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śnijEnter. - 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
Operacje na poziomie konta
W przypadku uwierzytelniania domyślnego:
provider "databricks" {
alias = "accounts"
}
W przypadku konfiguracji bezpośredniej:
provider "databricks" {
alias = "accounts"
host = <retrieve-account-console-url>
account_id = <retrieve-account-id>
client_id = <retrieve-client-id>
client_secret = <retrieve-client-secret>
}
retrieve Zastąp 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.
Operacje na poziomie obszaru roboczego
W przypadku konfiguracji domyślnej:
provider "databricks" {
alias = "workspace"
}
W przypadku konfiguracji bezpośredniej:
provider "databricks" {
alias = "workspace"
host = <retrieve-workspace-url>
client_id = <retrieve-client-id>
client_secret = <retrieve-client-secret>
}
retrieve Zastąp 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 na obszar roboczy, na przykład https://adb-1234567890123456.7.azuredatabricks.net.
Aby uzyskać więcej informacji na temat uwierzytelniania za pomocą dostawcy Terraform dla Databricks, zobacz Authentication (Uwierzytelnianie).
Python
Operacje na poziomie konta
W przypadku konfiguracji domyślnej:
from databricks.sdk import AccountClient
a = AccountClient()
# ...
W przypadku konfiguracji bezpośredniej:
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()
)
# ...
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 adres URL konsoli konta usługi Azure Databricks to https://accounts.azuredatabricks.net.
Operacje na poziomie obszaru roboczego
W przypadku konfiguracji domyślnej:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
# ...
W przypadku konfiguracji bezpośredniej:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient(
host = retrieve_workspace_url(),
client_id = retrieve_client_id(),
client_secret = retrieve_client_secret()
)
# ...
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 na obszar roboczy, na przykład https://adb-1234567890123456.7.azuredatabricks.net.
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, 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 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.
Java
Operacje na poziomie obszaru roboczego
W przypadku konfiguracji domyślnej:
import com.databricks.sdk.WorkspaceClient;
// ...
WorkspaceClient w = new WorkspaceClient();
// ...
W przypadku konfiguracji bezpośredniej:
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);
// ...
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 na obszar roboczy, na przykład https://adb-1234567890123456.7.azuredatabricks.net.
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, 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
Operacje na poziomie konta
Konfiguracja domyślna:
import "github.com/databricks/databricks-sdk-go"
// Uses environment configuration automatically
a := databricks.Must(databricks.NewAccountClient())
W przypadku konfiguracji bezpośredniej:
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
Host: retrieveWorkspaceUrl(),
ClientId: retrieveClientId(),
ClientSecret: retrieveClientSecret(),
}))
// ...
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 adres URL konsoli konta usługi Azure Databricks to https://accounts.azuredatabricks.net.
Operacje na poziomie obszaru roboczego
W przypadku konfiguracji domyślnej:
import "github.com/databricks/databricks-sdk-go"
// Uses environment configuration automatically
w := databricks.Must(databricks.NewWorkspaceClient())
W przypadku konfiguracji bezpośredniej:
import "github.com/databricks/databricks-sdk-go"
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
Host: retrieveAccountConsoleUrl(),
ClientId: retrieveClientId(),
ClientSecret: retrieveClientSecret(),
}))
// ...
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 na obszar roboczy, na przykład https://adb-1234567890123456.7.azuredatabricks.net.
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 tokenów dostępu OAuth M2M
Ta sekcja dotyczy narzędzi lub usług, które nie obsługują ujednoliconego uwierzytelniania usługi Databricks. Jeśli musisz ręcznie wygenerować, odświeżyć lub użyć tokenów OAuth usługi Azure Databricks na potrzeby uwierzytelniania M2M, wykonaj następujące kroki.
Aby wygenerować token dostępu OAuth M2M, użyj identyfikatora klienta jednostki usługi i wpisu tajnego OAuth. Każdy token dostępu jest ważny przez jedną godzinę. Po wygaśnięciu zażądaj nowego tokenu. Tokeny można wygenerować na poziomie konta lub obszaru roboczego:
- Poziom konta: Służy do wywoływania interfejsów API REST na poziomie konta i obszaru roboczego na kontach i obszarach roboczych, do których jednostka usługi ma dostęp. Zobacz Generowanie tokenu dostępu na poziomie konta.
- Poziom obszaru roboczego: Służy do wywoływania interfejsów API REST w ramach jednego obszaru roboczego. Zobacz Generowanie tokenu dostępu na poziomie obszaru roboczego.
Generowanie tokenu dostępu na poziomie konta
Użyj tokenu na poziomie konta, aby wywołać interfejsy API REST dla konta i wszystkich obszarów roboczych, do których może uzyskiwać dostęp jednostka usługi.
Skonstruuj adres URL punktu końcowego tokenu, zastępując
<account-id>ciąg w następującym adresie URL identyfikatorem konta.https://accounts.azuredatabricks.net/oidc/accounts/<my-account-id>/v1/tokenUżyj
curlpolecenia , aby zażądać tokenu dostępu OAuth. Replace:-
<token-endpoint-URL>z powyższym adresem URL. -
<client-id>z identyfikatorem klienta jednostki usługi (identyfikatorem aplikacji). -
<client-secret>z wpisem tajnym OAuth jednostki usługi.
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 }Zakres
all-apisżąda tokenu dostępu OAuth, który umożliwia jednostce usługi wywoływanie dowolnego interfejsu API REST usługi Databricks, do którego ma uprawnienia dostępu.-
access_tokenSkopiuj wartość z odpowiedzi.
Generowanie tokenu dostępu na poziomie obszaru roboczego
Użyj tokenu na poziomie obszaru roboczego tylko z interfejsami API REST w tym obszarze roboczym.
Skonstruuj adres URL punktu końcowego tokenu, zastępując element
<databricks-instance><databricks-instance>nazwą wystąpienia obszaru roboczego usługi Azure Databricks, na przykładadb-1234567890123456.7.azuredatabricks.net:https://<databricks-instance>/oidc/v1/tokenUżyj
curlpolecenia , aby zażądać tokenu dostępu OAuth. Replace:-
<token-endpoint-URL>z powyższym adresem URL. -
<client-id>z identyfikatorem klienta jednostki usługi (identyfikatorem aplikacji). -
<client-secret>z wpisem tajnym OAuth jednostki usługi.
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 }-
access_tokenSkopiuj wartość z odpowiedzi.
Uwaga
Aby wygenerować token dla punktu końcowego obsługującego, dołącz identyfikator punktu końcowego i akcję w żądaniu. Zobacz Ręczne pobieranie tokenu OAuth.
Wywoływanie interfejsu API REST usługi Azure Databricks
Użyj tokenu dostępu OAuth, aby wywołać interfejsy API REST na poziomie konta lub obszaru roboczego . Aby wywołać interfejsy API na poziomie konta, jednostka usługi musi być administratorem konta.
Uwzględnij token w nagłówku autoryzacji z uwierzytelnianiem Bearer .
Przykładowe żądanie interfejsu API REST na poziomie konta
W tym przykładzie wymieniono wszystkie obszary robocze dla konta. Replace:
-
<oauth-access-token>z tokenem dostępu OAuth jednostki usługi. -
<account-id>z 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 wymieniono wszystkie dostępne klastry w obszarze roboczym. Replace:
-
<oauth-access-token>z tokenem dostępu OAuth jednostki usługi. -
<databricks-instance>z nazwą wystąpienia obszaru roboczego usługi Azure Databricks, na przykładadb-1234567890123456.7.azuredatabricks.net.
export OAUTH_TOKEN=<oauth-access-token>
curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
'https://<workspace-URL>/api/2.0/clusters/list'
Rozwiązywanie problemów z uwierzytelnianiem OAuth M2M
Wykonaj następujące kroki, aby rozwiązać typowe problemy z uwierzytelnianiem OAuth M2M usługi Databricks dla jednostek usługi.
Szybkie kontrole
Zacznij od zweryfikowania tych typowych problemów z konfiguracją, które powodują błędy uwierzytelniania OAuth M2M:
-
Poświadczenia:
DATABRICKS_CLIENT_IDsą ustawione na identyfikator aplikacji głównego użytkownika usługi (identyfikator klienta), aDATABRICKS_CLIENT_SECRETjest ustawiona na wartość tajemnicy OAuth, obydwa bez dodatkowych spacji. -
Host:
DATABRICKS_HOSTwskazuje nahttps://accounts.azuredatabricks.netdla operacji konta lub na docelowy adres URL dla poszczególnych obszarów roboczych, na przykładhttps://adb-1234567890123456.7.azuredatabricks.netdla operacji obszaru roboczego. Nie dołączaj/api. - Przypisanie: Jednostka usługi jest przypisywana do docelowego obszaru roboczego.
- Uprawnienia: Jednostka usługi ma wymagane uprawnienia do zasobu docelowego.
-
Konflikty: Brak zestawów zmiennych powodujących konflikt, takich jak
DATABRICKS_TOKEN,DATABRICKS_USERNAME. Uruchomenv | grep DATABRICKSi rozwiąż konflikty. - Narzędzia: Użyj ujednoliconego uwierzytelniania i bieżących wersji interfejsu wiersza polecenia lub zestawu SDK.
401 Brak autoryzacji
Prawdopodobne przyczyny i poprawki:
-
Nieprawidłowy identyfikator klienta lub tajny klucz: Skopiuj ponownie
DATABRICKS_CLIENT_IDiDATABRICKS_CLIENT_SECRET. Jeśli nie jesteś pewien, wygeneruj ponownie sekret. - Wygasły wpis tajny: Utwórz nowy wpis tajny, jeśli bieżący wpis tajny wygasł.
- Nieprawidłowy wystawca tokenu: W przypadku M2M użyj punktu końcowego tokenu OAuth usługi Databricks, a nie punktu końcowego tokenu dostawcy tożsamości (IdP) ani punktu końcowego tokenu chmury.
-
Niezgodność hosta: Jeśli uwierzytelniasz się w interfejsach API obszaru roboczego,
DATABRICKS_HOSTmusi być wywoływanym adresem URL obszaru roboczego.
403 Zabronione
Prawdopodobne przyczyny i poprawki:
-
Brakujące uprawnienia do zasobów: Przyznaj głównemu serwisowi
CAN USElubCAN MANAGEuprawnienia do klastrów lub magazynów SQL, jak również wymagane uprawnienia na poziomie obiektu dla notatników, zadań lub obiektów danych. - Brak przypisania obszaru roboczego: Przypisz jednostkę usługi do obszaru roboczego w konsoli konta.
- Dostęp do interfejsu API administratora: W przypadku interfejsów API tylko dla administratorów przypisz jednostkę usługi do grupy administracyjnej obszaru roboczego lub przyznaj uprawnienia administratora konta.
Problemy z konfiguracją
Objawy obejmują przekroczenie limitu czasu, "host nie znaleziony", "konto nie znalezione" lub "obszar roboczy nie znaleziony".
Fixes:
-
Reguły hosta: Użyj adresu URL konsoli konta dla interfejsów API kont. Użyj adresu URL obszaru roboczego dla API obszaru roboczego. Nie dołączaj sufiksu
/api. -
Identyfikator konta: Podaj
DATABRICKS_ACCOUNT_IDtylko dla operacji na poziomie konta. Użyj identyfikatora UUID z konsoli konta. -
Wybór profilu: Jeśli używasz wielu profilów, przekaż
--profile <name>lub ustawDATABRICKS_CONFIG_PROFILE.
Connectivity
Jeśli uwierzytelnianie OAuth M2M kończy się niepowodzeniem z powodu problemów z siecią, użyj tych testów, aby sprawdzić, czy środowisko może uzyskać dostęp do punktów końcowych usługi Databricks:
-
DNS:
nslookup <your-host>(powinna zwracać adresy IP dla nazwy hosta) -
Protokół TLS i osiągalność:
curl -I https://<your-host>(powinien zwrócić stan HTTP 200, 401 lub 403) - Sieć firmowa: Upewnij się, że reguły serwera proxy lub zapory zezwalają na używanie protokołu HTTPS do punktów końcowych usługi Databricks
Dodatkowe zasoby
- Zasady serwisowe
- Omówienie modelu tożsamości usługi Databricks
- Dodatkowe informacje na temat uwierzytelniania i kontroli dostępu