Uwierzytelnianie typu użytkownik-komputer (U2M) OAuth

Uwierzytelnianie użytkownika-komputer (U2M) protokołu OAuth używa logowania użytkownika w czasie rzeczywistym i zgody na uwierzytelnianie docelowego konta użytkownika usługi Azure Databricks. Po pomyślnym zalogowaniu się użytkownika i wyrażeniu zgody na żądanie uwierzytelniania OAuth token OAuth zostanie przekazany uczestniczącym narzędziu lub zestawowi SDK w celu przeprowadzenia uwierzytelniania opartego na tokenach od tego czasu w imieniu użytkownika. Token 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ę.

Aby skonfigurować uwierzytelnianie OAuth U2M za pomocą usługi Azure Databricks, należy ustawić następujące skojarzone zmienne środowiskowe, .databrickscfg pola, pola narzędzia 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ł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.

Aby przeprowadzić uwierzytelnianie OAuth U2M w usłudze Azure Databricks, zintegruj następujące elementy w kodzie na podstawie uczestniczących narzędzi lub zestawu SDK. Należy pamiętać, że w zależności od operacji usługi Azure Databricks wywoływanych przez kod nie musisz być administratorem konta usługi Azure Databricks:

Środowisko

Aby użyć zmiennych środowiskowych dla określonego typu uwierzytelniania usługi Azure Databricks za pomocą narzędzia lub zestawu SDK, zobacz Obsługiwane typy uwierzytelniania za pomocą narzędzia lub zestawu SDK usługi Azure Databricks albo dokumentacji narzędzia lub zestawu SDK. Zobacz również Zmienne środowiskowe i pola dla ujednoliconego uwierzytelniania klienta oraz Domyślna kolejność oceny dla ujednoliconych metod uwierzytelniania i poświadczeń klienta.

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_ID

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ład https://adb-1234567890123456.7.azuredatabricks.net.

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 Obsługiwane typy uwierzytelniania według narzędzia lub zestawu SDK usługi Azure Databricks albo dokumentacji narzędzia lub zestawu SDK. Zobacz również Zmienne środowiskowe i pola dla ujednoliconego uwierzytelniania klienta oraz Domyślna kolejność oceny dla ujednoliconych metod uwierzytelniania i poświadczeń 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>

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>

Cli

W przypadku interfejsu wiersza polecenia usługi Databricks uruchom databricks auth login polecenie z następującymi opcjami:

Po uruchomieniu tego polecenia postępuj zgodnie z instrukcjami w przeglądarce internetowej, aby zalogować się do konta lub obszaru roboczego usługi Azure Databricks.

Aby uzyskać więcej informacji, zobacz Uwierzytelnianie użytkownika do komputera (U2M) OAuth.

Połącz

Uwaga

Uwierzytelnianie OAuth U2M jest obsługiwane w następujących wersjach usługi Databricks Połączenie:

  • W przypadku języka Python usługa Databricks Połączenie dla środowiska Databricks Runtime 13.1 lub nowszego.
  • W przypadku języka Scala usługa Databricks Połączenie dla środowiska Databricks Runtime 13.3 LTS lub nowszego.

W przypadku Połączenie usługi Databricks 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 Połączenie przy użyciu tych zmiennych środowiskowych lub wartości w .databrickscfg pliku, zobacz jedną z następujących opcji:

Vs Code

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

  1. W okienku Konfiguracja kliknij pozycję Konfiguruj usługę Databricks.
  2. 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 klawisz Enter.
  3. Wybierz pozycję OAuth (użytkownik do komputera).
  4. Wykonaj instrukcje na ekranie w przeglądarce internetowej, aby zakończyć uwierzytelnianie przy użyciu konta usługi Azure Databricks i zezwalać na dostęp do wszystkich interfejsów API.

Aby uzyskać więcej informacji, zobacz Konfigurowanie uwierzytelniania OAuth U2M.

Terraform

Uwaga

Uwierzytelnianie OAuth U2M nie jest jeszcze obsługiwane.

Python

W przypadku operacji na poziomie konta należy najpierw użyć interfejsu wiersza polecenia usługi Databricks do uruchomienia następującego polecenia przed uruchomieniem kodu w języku Python. To polecenie instruuje interfejs wiersza polecenia usługi Databricks w celu wygenerowania i buforowania niezbędnego tokenu OAuth w ścieżce .databricks/token-cache.json w folderze głównym użytkownika na maszynie:

databricks auth login --host <account-console-url> --account-id <account-id>

Zastąp symbole zastępcze w następujący sposób:

  • Zastąp <account-console-url> ciąg wartością https://accounts.azuredatabricks.net. (Nie ustawiaj tego na wartość adresu URL obszaru roboczego usługi Azure Databricks).
  • Zastąp <account-id> ciąg wartością konta usługi Azure Databricks. Zobacz Lokalizowanie identyfikatora konta.

Uwaga

Jeśli masz już istniejący profil konfiguracji usługi Azure Databricks z ustawionymi polami host iaccount_id, możesz zastąpić ciąg --host <account-console-url> --account-id <account-id> .--profile <profile-name>

Po uruchomieniu auth login polecenia zostanie wyświetlony monit o zapisanie adresu URL logowania konta i identyfikatora konta jako profilu konfiguracji usługi Azure Databricks. Po wyświetleniu monitu wprowadź nazwę nowego lub istniejącego profilu w .databrickscfg pliku. Każdy istniejący profil o tej samej nazwie w .databrickscfg pliku zostanie zastąpiony.

Jeśli zostanie wyświetlony monit, ukończ instrukcje wyświetlane na ekranie przeglądarki, aby ukończyć logowanie. Następnie użyj kodu w języku Python podobnego do jednego z następujących fragmentów kodu:

W przypadku uwierzytelniania domyślnego:

from databricks.sdk import AccountClient

a = AccountClient()
# ...

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 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       = retrieveAccountConsoleUrl(),
  account_id = retrieveAccountId()
)
# ...

W przypadku operacji na poziomie obszaru roboczego należy najpierw użyć interfejsu wiersza polecenia usługi Databricks do uruchomienia następującego polecenia przed uruchomieniem kodu w języku Python. To polecenie instruuje interfejs wiersza polecenia usługi Databricks w celu wygenerowania i buforowania niezbędnego tokenu OAuth w ścieżce .databricks/token-cache.json w folderze głównym użytkownika na maszynie:

databricks auth login --host <worskpace-url>

Zastąp symbol zastępczy <workspace-url> docelowym adresem URL usługi Azure Databricks dla każdego obszaru roboczego, na przykład https://adb-1234567890123456.7.azuredatabricks.net.

Uwaga

Jeśli masz już istniejący profil konfiguracji usługi Azure Databricks z ustawionym host polem, możesz zastąpić ciąg .--profile <profile-name>--host <workspace-url>

Po uruchomieniu auth login polecenia zostanie wyświetlony monit o zapisanie adresu URL obszaru roboczego jako profilu konfiguracji usługi Azure Databricks. Po wyświetleniu monitu wprowadź nazwę nowego lub istniejącego profilu w .databrickscfg pliku. Każdy istniejący profil o tej samej nazwie w .databrickscfg pliku zostanie zastąpiony.

Jeśli zostanie wyświetlony monit, ukończ instrukcje wyświetlane na ekranie przeglądarki, aby ukończyć logowanie. Następnie użyj kodu w języku Python podobnego do jednego z następujących fragmentów kodu:

W przypadku uwierzytelniania domyślnego:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

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 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 = retrieveWorkspaceUrl())
# ...

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 implementujących ujednolicone uwierzytelnianie klienta usługi Databricks, zobacz:

Java

W przypadku operacji na poziomie konta należy najpierw użyć interfejsu wiersza polecenia usługi Databricks do uruchomienia następującego polecenia przed uruchomieniem kodu Java. To polecenie instruuje interfejs wiersza polecenia usługi Databricks w celu wygenerowania i buforowania niezbędnego tokenu OAuth w ścieżce .databricks/token-cache.json w folderze głównym użytkownika na maszynie:

databricks auth login --host <account-console-url> --account-id <account-id>

Zastąp symbole zastępcze w następujący sposób:

  • Zastąp <account-console-url> ciąg wartością https://accounts.azuredatabricks.net. (Nie ustawiaj tego na wartość adresu URL obszaru roboczego usługi Azure Databricks).
  • Zastąp <account-id> ciąg wartością konta usługi Azure Databricks. Zobacz Lokalizowanie identyfikatora konta.

Uwaga

Jeśli masz już istniejący profil konfiguracji usługi Azure Databricks z ustawionymi polami host iaccount_id, możesz zastąpić ciąg --host <account-console-url> --account-id <account-id> .--profile <profile-name>

Po uruchomieniu auth login polecenia zostanie wyświetlony monit o zapisanie adresu URL logowania konta i identyfikatora konta jako profilu konfiguracji usługi Azure Databricks. Po wyświetleniu monitu wprowadź nazwę nowego lub istniejącego profilu w .databrickscfg pliku. Każdy istniejący profil o tej samej nazwie w .databrickscfg pliku zostanie zastąpiony.

Jeśli zostanie wyświetlony monit, ukończ instrukcje wyświetlane na ekranie przeglądarki, aby ukończyć logowanie. Następnie użyj kodu Java podobnego do jednego z następujących fragmentów kodu:

W przypadku uwierzytelniania domyślnego:

import com.databricks.sdk.AccountClient;
// ...
AccountClient a = new AccountClient();
// ...

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 Azure KeyVault). W takim przypadku adres URL konsoli konta usługi Azure Databricks to https://accounts.azuredatabricks.net:

import com.databricks.sdk.AccountClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
  .setHost(retrieveAccountConsoleUrl())
  .setAccountId(retrieveAccountId());
AccountClient a = new AccountClient(cfg);
// ...

W przypadku operacji na poziomie obszaru roboczego należy najpierw użyć interfejsu wiersza polecenia usługi Databricks do uruchomienia następującego polecenia przed uruchomieniem kodu Java. To polecenie instruuje interfejs wiersza polecenia usługi Databricks w celu wygenerowania i buforowania niezbędnego tokenu OAuth w ścieżce .databricks/token-cache.json w folderze głównym użytkownika na maszynie:

databricks auth login --host <worskpace-url>

Zastąp symbol zastępczy <workspace-url> docelowym adresem URL usługi Azure Databricks dla każdego obszaru roboczego, na przykład https://adb-1234567890123456.7.azuredatabricks.net.

Uwaga

Jeśli masz już istniejący profil konfiguracji usługi Azure Databricks z ustawionym host polem, możesz zastąpić ciąg .--profile <profile-name>--host <workspace-url>

Po uruchomieniu auth login polecenia zostanie wyświetlony monit o zapisanie adresu URL obszaru roboczego jako profilu konfiguracji usługi Azure Databricks. Po wyświetleniu monitu wprowadź nazwę nowego lub istniejącego profilu w .databrickscfg pliku. Każdy istniejący profil o tej samej nazwie w .databrickscfg pliku zostanie zastąpiony.

Jeśli zostanie wyświetlony monit, ukończ instrukcje wyświetlane na ekranie przeglądarki, aby ukończyć logowanie. Następnie użyj kodu Java podobnego do jednego z następujących fragmentów kodu:

W przypadku 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ą, 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:

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

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

Go

W przypadku operacji na poziomie konta należy najpierw użyć interfejsu wiersza polecenia usługi Databricks do uruchomienia następującego polecenia przed uruchomieniem kodu języka Go. To polecenie instruuje interfejs wiersza polecenia usługi Databricks w celu wygenerowania i buforowania niezbędnego tokenu OAuth w ścieżce .databricks/token-cache.json w folderze głównym użytkownika na maszynie:

databricks auth login --host <account-login-url> --account-id <account-id>

Zastąp symbole zastępcze w następujący sposób:

  • Zastąp <account-console-url> ciąg wartością https://accounts.azuredatabricks.net. (Nie ustawiaj tego na wartość adresu URL obszaru roboczego usługi Azure Databricks).
  • Zastąp <account-id> ciąg wartością konta usługi Azure Databricks. Zobacz Lokalizowanie identyfikatora konta.

Uwaga

Jeśli masz już istniejący profil konfiguracji usługi Azure Databricks z ustawionymi polami host iaccount_id, możesz zastąpić ciąg --host <account-console-url> --account-id <account-id> .--profile <profile-name>

Po uruchomieniu auth login polecenia zostanie wyświetlony monit o zapisanie adresu URL logowania konta i identyfikatora konta jako profilu konfiguracji usługi Azure Databricks. Po wyświetleniu monitu wprowadź nazwę nowego lub istniejącego profilu w .databrickscfg pliku. Każdy istniejący profil o tej samej nazwie w .databrickscfg pliku zostanie zastąpiony.

Jeśli zostanie wyświetlony monit, ukończ instrukcje wyświetlane na ekranie przeglądarki, aby ukończyć logowanie. Następnie użyj kodu Języka Go podobnego do jednego z następujących fragmentów kodu:

W przypadku 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ą, 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:

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
  Host:      retrieveAccountConsoleUrl(),
  AccountId: retrieveAccountId(),
}))
// ...

W przypadku operacji na poziomie obszaru roboczego należy najpierw użyć interfejsu wiersza polecenia usługi Databricks do uruchomienia następującego polecenia, zanim uruchomisz kod języka Go. To polecenie instruuje interfejs wiersza polecenia usługi Databricks w celu wygenerowania i buforowania niezbędnego tokenu OAuth w ścieżce .databricks/token-cache.json w folderze głównym użytkownika na maszynie:

databricks auth login --host <worskpace-url>

Zastąp symbol zastępczy <workspace-url> docelowym adresem URL usługi Azure Databricks dla każdego obszaru roboczego, na przykład https://adb-1234567890123456.7.azuredatabricks.net.

Uwaga

Jeśli masz już istniejący profil konfiguracji usługi Azure Databricks z ustawionym host polem, możesz zastąpić ciąg .--profile <profile-name>--host <workspace-url>

Po uruchomieniu auth login polecenia zostanie wyświetlony monit o zapisanie adresu URL obszaru roboczego jako profilu konfiguracji usługi Azure Databricks. Po wyświetleniu monitu wprowadź nazwę nowego lub istniejącego profilu w .databrickscfg pliku. Każdy istniejący profil o tej samej nazwie w .databrickscfg pliku zostanie zastąpiony.

Jeśli zostanie wyświetlony monit, ukończ instrukcje wyświetlane na ekranie przeglądarki, aby ukończyć logowanie. Następnie użyj kodu Języka Go podobnego do jednego z następujących fragmentów kodu:

W przypadku 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ą, 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:

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
  Host: retrieveWorkspaceUrl(),
}))
// ...

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 na potrzeby uwierzytelniania użytkownika-maszyny OAuth (U2M)

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 U2M.

Jeśli z jakiegoś powodu musisz ręcznie wygenerować, odświeżyć lub użyć tokenów dostępu OAuth usługi Azure Databricks do uwierzytelniania OAuth U2M, postępuj zgodnie z instrukcjami w tej sekcji.

Krok 1. Generowanie weryfikatora kodu OAuth i pary wyzwań kodu

Aby ręcznie wygenerować i użyć tokenów dostępu do uwierzytelniania OAuth U2M, musisz najpierw mieć weryfikator kodu OAuth i wyzwanie kodu OAuth pochodzące z weryfikatora kodu. W dalszej części kroku 2 użyjesz wyzwania kodu, aby wygenerować kod autoryzacji OAuth. W celu wygenerowania tokenu dostępu OAuth użyjesz weryfikatora kodu i kodu autoryzacji w dalszej części kroku 3.

Uwaga

Chociaż technicznie można używać niekodowanych ciągów w postaci zwykłego tekstu dla weryfikatora kodu i wyzwania kodu, usługa Databricks zdecydowanie zachęca do przestrzegania standardu OAuth do generowania weryfikatora kodu i wyzwania kodu.

W szczególności weryfikator kodu powinien być kryptograficznie losowym ciągiem używającym znaków z zestawów A-Z, a-z, 0-9i znaków -._~ interpunkcyjnych (łącznik, kropka, podkreślenie i tylda) z zakresu od 43 do 128 znaków. Wyzwanie kodu powinno być ciągiem zakodowanym w formacie Base64 algorytmem URL skrótu SHA256 weryfikatora kodu. Aby uzyskać więcej informacji, zobacz Żądanie autoryzacji.

Możesz uruchomić następujący skrypt języka Python, aby szybko wygenerować unikatowy weryfikator kodu i parę wyzwań kodu. Chociaż można wielokrotnie używać tego wygenerowanego weryfikatora kodu i pary wyzwań kodu, usługa Databricks zaleca wygenerowanie nowej pary weryfikatora kodu i wyzwania kodu za każdym razem, gdy ręcznie generujesz tokeny dostępu na potrzeby uwierzytelniania OAuth U2M.

import uuid, hashlib, base64

# Generate a UUID.
uuid1 = uuid.uuid4()

# Convert the UUID to a string.
uuid_str1 = str(uuid1).upper()

# Create the code verifier.
code_verifier = uuid_str1 + "-" + uuid_str1

# Create the code challenge based on the code verifier.
code_challenge = base64.urlsafe_b64encode(hashlib.sha256(code_verifier.encode()).digest()).decode('utf-8')

# Remove all padding from the code challenge.
code_challenge = code_challenge.replace('=', '')

# Print the code verifier and the code challenge.
# Use these in your calls to manually generate
# access tokens for OAuth U2M authentication.
print(f"code_verifier:  {code_verifier}")
print(f"code_challenge: {code_challenge}")

Krok 2. Generowanie kodu autoryzacji

Kod autoryzacji OAuth służy do generowania tokenu dostępu OAuth usługi Azure Databricks. Kod autoryzacji wygasa natychmiast po jego użyciu do wygenerowania tokenu dostępu OAuth usługi Azure Databricks. Zakres kodu autoryzacji zależy od poziomu, z którego został wygenerowany. Kod autoryzacji można wygenerować na poziomie konta usługi Azure Databricks lub na poziomie obszaru roboczego w następujący sposób:

Generowanie kodu autoryzacji na poziomie konta

  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. Na pasku adresu przeglądarki internetowej przejdź do następującego adresu URL. Podziały wierszy zostały dodane w celu zapewnienia czytelności. Adres URL nie może zawierać tych podziałów wierszy.

    W poniższym adresie URL zastąp następujące elementy:

    • Zastąp wartość <account-id> skopiowaną identyfikatorem konta.
    • Zastąp ciąg <redirect-url> adresem URL przekierowania na komputer lokalny, na przykład http://localhost:8020.
    • Zastąp <state> ciąg ciągiem zwykłego tekstu, którego można użyć do zweryfikowania integralności kodu autoryzacji.
    • Zastąp <code-challenge> element wyzwaniem kodu wygenerowany w kroku 1.
    https://accounts.azuredatabricks.net/oidc/accounts/<account-id>/v1/authorize
    ?client_id=databricks-cli
    &redirect_url=<redirect-url>
    &response_type=code
    &state=<state>
    &code_challenge=<code-challenge>
    &code_challenge_method=S256
    &scope=all-apis+offline_access
    
  5. Po wyświetleniu monitu postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby zalogować się do konta usługi Azure Databricks.

  6. Na pasku adresu przeglądarki internetowej skopiuj kod autoryzacji. Kod autoryzacji jest pełnym ciągiem znaków między code= i znakiem & w adresie URL. Na przykład kod autoryzacji w następującym adresie URL to dcod...7fe6:

    http://localhost:8020/?code=dcod...7fe6&state=<state>
    

    Należy sprawdzić integralność tego kodu autoryzacji, sprawdzając wizualnie, czy <state> wartość w tym adresie URL odpowiedzi jest zgodna z wartością state podaną w adresie URL żądania. Jeśli wartości są różne, nie należy używać tego kodu autoryzacji, ponieważ może to być naruszone.

  7. Przejdź do sekcji Generowanie tokenu dostępu na poziomie konta.

Generowanie kodu autoryzacji na poziomie obszaru roboczego

  1. Na pasku adresu przeglądarki internetowej przejdź do następującego adresu URL. Podziały wierszy zostały dodane w celu zapewnienia czytelności. Adres URL nie może zawierać tych podziałów wierszy.

    W poniższym adresie URL zastąp następujące elementy:

    • Zastąp <databricks-instance> ciąg nazwą wystąpienia obszaru roboczego usługi Azure Databricks, na przykład adb-1234567890123456.7.azuredatabricks.net.
    • Zastąp ciąg <redirect-url> adresem URL przekierowania na komputer lokalny, na przykład http://localhost:8020.
    • Zastąp <state> ciąg ciągiem zwykłego tekstu, którego można użyć do zweryfikowania integralności kodu autoryzacji.
    • Zastąp <code-challenge> element wyzwaniem kodu wygenerowany w kroku 1.
    https://<databricks-instance>/oidc/v1/authorize
    ?client_id=databricks-cli
    &redirect_uri=<redirect-url>
    &response_type=code
    &state=<state>
    &code_challenge=<code-challenge>
    &code_challenge_method=S256
    &scope=all-apis+offline_access
    
  2. Po wyświetleniu monitu postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby zalogować się do obszaru roboczego usługi Azure Databricks.

  3. Na pasku adresu przeglądarki internetowej skopiuj kod autoryzacji. Kod autoryzacji jest pełnym ciągiem znaków między code= i znakiem & w adresie URL. Na przykład kod autoryzacji w następującym adresie URL to dcod...7fe6:

    http://localhost:8020/?code=dcod...7fe6&state=<state>
    

    Należy sprawdzić integralność tego kodu autoryzacji, sprawdzając wizualnie, czy <state> wartość w tym adresie URL odpowiedzi jest zgodna z wartością state podaną w adresie URL żądania. Jeśli wartości są różne, nie należy używać tego kodu autoryzacji, ponieważ może to być naruszone.

Krok 3. Generowanie tokenu dostępu OAuth przy użyciu kodu autoryzacji

Kod autoryzacji OAuth z poprzedniego kroku jest używany do generowania tokenu dostępu OAuth usługi Azure Databricks 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 konto użytkownika usługi Azure Databricks ma dostęp, użyj kodu autoryzacji na poziomie konta, aby wygenerować token dostępu na poziomie konta.
  • Aby wywołać interfejsy API REST w obrębie tylko jednego obszaru roboczego, do którego twoje konto użytkownika ma dostęp, możesz użyć kodu autoryzacji na poziomie obszaru roboczego, aby wygenerować token dostępu na poziomie obszaru roboczego tylko dla tego obszaru roboczego.

Generowanie tokenu dostępu na poziomie konta

  1. Użyj klienta, takiego jak curl wraz z kodem autoryzacji na poziomie konta, aby wygenerować token dostępu OAuth na poziomie konta. W poniższym curl wywołaniu zastąp następujące symbole zastępcze:

    • Zastąp <account-id> element identyfikatorem konta z kroku 2.
    • Zastąp <redirect-url> ciąg adresem URL przekierowania z kroku 2.
    • Zastąp element <code-verifier> weryfikatorem kodu wygenerowany w kroku 1.
    • Zastąp element <authorization-code> kodem autoryzacji na poziomie konta wygenerowanym w kroku 2.
    curl --request POST \
    https://accounts.azuredatabricks.net/oidc/accounts/<account-id>/v1/token \
    --data "client_id=databricks-cli" \
    --data "grant_type=authorization_code" \
    --data "scope=all-apis offline_access" \
    --data "redirect_uri=<redirect-url>" \
    --data "code_verifier=<code-verifier>" \
    --data "code=<authorization-code>"
    
  2. W odpowiedzi skopiuj token dostępu OAuth na poziomie konta. Token dostępu jest pełnym ciągiem znaków w access_token obiekcie. Na przykład token dostępu w następującej odpowiedzi to eyJr...Dkag:

    {
      "access_token": "eyJr...Dkag",
      "refresh_token": "doau...f26e",
      "scope": "all-apis offline_access",
      "token_type": "Bearer",
      "expires_in": 3600
    }
    

    Ten token dostępu wygasa w ciągu jednej godziny. Aby wygenerować nowy token dostępu, powtórz tę procedurę z kroku 1.

  3. Przejdź do kroku 4. Wywoływanie interfejsu API REST usługi Databricks.

Generowanie tokenu dostępu na poziomie obszaru roboczego

  1. Użyj klienta, takiego jak curl wraz z kodem autoryzacji na poziomie obszaru roboczego, aby wygenerować token dostępu OAuth na poziomie obszaru roboczego. W poniższym curl wywołaniu zastąp następujące symbole zastępcze:

    • Zastąp <databricks-instance> ciąg nazwą wystąpienia obszaru roboczego usługi Azure Databricks, na przykład adb-1234567890123456.7.azuredatabricks.net.
    • Zastąp <redirect-url> ciąg adresem URL przekierowania z kroku 2.
    • Zastąp element <code-verifier> weryfikatorem kodu wygenerowany w kroku 1.
    • Zastąp element <authorization-code> kodem autoryzacji na poziomie obszaru roboczego wygenerowanym w kroku 2.
    curl --request POST \
    https://<databricks-instance>/oidc/v1/token \
    --data "client_id=databricks-cli" \
    --data "grant_type=authorization_code" \
    --data "scope=all-apis offline_access" \
    --data "redirect_uri=<redirect-url>" \
    --data "code_verifier=<code-verifier>" \
    --data "code=<authorization-code>"
    
  2. W odpowiedzi skopiuj token dostępu OAuth na poziomie obszaru roboczego. Token dostępu jest pełnym ciągiem znaków w access_token obiekcie. Na przykład token dostępu w następującej odpowiedzi to eyJr...Dkag:

    {
      "access_token": "eyJr...Dkag",
      "refresh_token": "doau...f26e",
      "scope": "all-apis offline_access",
      "token_type": "Bearer",
      "expires_in": 3600
    }
    

    Ten token dostępu wygasa w ciągu jednej godziny. Aby wygenerować nowy token dostępu, powtórz tę procedurę z kroku 1.

Krok 4. Wywoływanie interfejsu API REST usługi Databricks

Token dostępu OAuth na poziomie konta lub obszaru roboczego służy do uwierzytelniania w interfejsach API REST na poziomie konta usługi Azure Databricks i interfejsach API REST na poziomie obszaru roboczego, w zależności od zakresu tokenu dostępu. Twoje konto użytkownika usługi Azure Databricks musi być administratorem konta, aby wywoływać interfejsy API REST na poziomie konta.

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

W tym przykładzie użyto curl uwierzytelniania w Bearer celu uzyskania listy wszystkich obszarów roboczych skojarzonych z kontem.

  • Zastąp <oauth-access-token> element tokenem dostępu OAuth na poziomie konta.
  • 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 curl uwierzytelniania, Bearer aby wyświetlić listę wszystkich dostępnych klastrów w określonym obszarze roboczym.

export OAUTH_TOKEN=<oauth-access-token>

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