Sdílet prostřednictvím


Ověřování přístupu k Azure Databricks pomocí uživatelského účtu pomocí OAuth (OAuth U2M)

Azure Databricks používá ověřování U2M (user-to-machine) OAuth k povolení přístupu rozhraní příkazového řádku a rozhraní API k účtu Azure Databricks a prostředkům pracovního prostoru jménem uživatele. Jakmile se uživatel poprvé přihlásí a souhlasí s požadavkem na ověření OAuth, předá se zúčastněnému nástroji nebo sadě SDK, aby od té doby provedl ověřování na základě tokenu jménem uživatele. Token OAuth má životnost jedné hodiny, po které nástroj nebo sada SDK provede automatický pokus o získání nového tokenu, který je platný i po dobu jedné hodiny.

Azure Databricks podporuje dva způsoby ověřování přístupu k uživatelskému účtu pomocí OAuth:

  • Většinou se používá jednotná podpora ověřování klientů Databricks. Tento zjednodušený přístup použijte, pokud používáte konkrétní sady SDK Azure Databricks (jako je sada Databricks Terraform SDK) a nástroje. Podporované nástroje a sady SDK jsou uvedeny v jednotném ověřování klientů Databricks.
  • Ručně vygenerováním páru ověření kódu OAuth nebo výzvy a autorizačního kódu a jejich použitím k vytvoření počátečního tokenu OAuth, který zadáte ve své konfiguraci. Tento přístup použijte, pokud nepoužíváte rozhraní API podporované jednotným ověřováním klientů Databricks. Další podrobnosti najdete v tématu: Ruční generování a používání přístupových tokenů pro ověřování uživatele a počítače OAuth (U2M).

Ověřování U2M s jednotným ověřováním klientů Databricks

Poznámka:

Než začnete s konfigurací ověřování, zkontrolujte oprávnění seznamu ACL pro konkrétní kategorii operací s objekty pracovního prostoru a určete, jestli má váš účet požadovanou úroveň přístupu. Další podrobnosti najdete v tématu Seznamy řízení přístupu.

Pokud chcete provést ověřování OAuth U2M pomocí sad SDK a nástrojů Azure Databricks, které podporují jednotné ověřování klientů, integrujte do kódu následující:

Prostředí

Pokud chcete použít proměnné prostředí pro konkrétní typ ověřování Azure Databricks pomocí nástroje nebo sady SDK, přečtěte si téma Ověřování přístupu k prostředkům Azure Databricks nebo dokumentaci k nástroji nebo sadě SDK. Viz také proměnné prostředí a pole pro jednotné ověřování klienta a výchozí metody pro jednotné ověřování klienta.

Pro operace na úrovni účtu nastavte následující proměnné prostředí:

  • DATABRICKS_HOST, nastavte hodnotu adresy URL konzoly účtu Azure Databricks. https://accounts.azuredatabricks.net
  • DATABRICKS_ACCOUNT_ID

Pro operace na úrovni pracovního prostoru nastavte následující proměnné prostředí:

  • DATABRICKS_HOST, nastavte hodnotu adresy URL služby Azure Databricks pro jednotlivé pracovní prostory, například https://adb-1234567890123456.7.azuredatabricks.net.

Profil

Vytvořte nebo identifikujte konfigurační profil Azure Databricks s následujícími poli v .databrickscfg souboru. Pokud vytvoříte profil, nahraďte zástupné symboly příslušnými hodnotami. Pokud chcete profil použít s nástrojem nebo sadou SDK, přečtěte si téma Ověřování přístupu k prostředkům Azure Databricks nebo dokumentaci k nástroji nebo sadě SDK. Viz také proměnné prostředí a pole pro jednotné ověřování klienta a výchozí metody pro jednotné ověřování klienta.

V případě operací na úrovni účtu nastavte v .databrickscfg souboru následující hodnoty. V tomto případě adresa URL konzoly účtu Azure Databricks je https://accounts.azuredatabricks.net:

[<some-unique-configuration-profile-name>]
host       = <account-console-url>
account_id = <account-id>

U operací na úrovni pracovního prostoru nastavte v .databrickscfg souboru následující hodnoty. V tomto případě je hostitelem adresa URL azure Databricks pro jednotlivé pracovní prostory, napříkladhttps://adb-1234567890123456.7.azuredatabricks.net:

[<some-unique-configuration-profile-name>]
host = <workspace-url>

Rozhraní příkazového řádku

Pro Rozhraní příkazového řádku Databricks spusťte databricks auth login příkaz s následujícími možnostmi:

Po spuštění tohoto příkazu se přihlaste k účtu nebo pracovnímu prostoru Azure Databricks podle pokynů ve webovém prohlížeči.

Další podrobnosti najdete v tématu Ověřování OAuth U2M pomocí rozhraní příkazového řádku Databricks.

Propojit

Poznámka:

Ověřování OAuth U2M se podporuje v následujících verzích Databricks Connect:

  • Pro Python databricks Connect pro Databricks Runtime 13.1 a novější.
  • Pro Scala, Databricks Connect pro Databricks Runtime 13.3 LTS a vyšší.

Pro Databricks Connect můžete udělat jednu z těchto věcí:

  • Nastavte hodnoty v .databrickscfg souboru pro operace na úrovni pracovního prostoru Azure Databricks, jak je uvedeno v části Profil tohoto článku. Nastavte také proměnnou cluster_id prostředí ve vašem profilu na adresu URL pro jednotlivé pracovní prostory, například https://adb-1234567890123456.7.azuredatabricks.net.
  • Nastavte proměnné prostředí pro operace na úrovni pracovního prostoru Azure Databricks, jak je uvedeno v části Prostředí tohoto článku. Nastavte také proměnnou DATABRICKS_CLUSTER_ID prostředí na adresu URL pro jednotlivé pracovní prostory, například https://adb-1234567890123456.7.azuredatabricks.net.

Hodnoty v .databrickscfg souboru mají vždy přednost před proměnnými prostředí.

Pokud chcete inicializovat klienta Databricks Connect pomocí těchto proměnných prostředí nebo hodnot v souboru, podívejte .databrickscfg se na jednu z těchto věcí:

VS Code

Pro rozšíření Databricks pro Visual Studio Code postupujte takto:

  1. V podokně Konfigurace klikněte na Konfigurovat Databricks.
  2. V paletě příkazů zadejte pro hostitele Databricks adresu URL pro jednotlivé pracovní prostory, například https://adb-1234567890123456.7.azuredatabricks.neta stiskněte Enter.
  3. Vyberte OAuth (uživatel do počítače).
  4. Dokončete pokyny na obrazovce ve webovém prohlížeči a dokončete ověřování pomocí účtu Azure Databricks a povolte přístup all-apis .

Další podrobnosti najdete v tématu Ověřování OAuth U2M pomocí rozhraní příkazového řádku Databricks.

Terraform

Poznámka:

Ověřování OAuth U2M se zatím nepodporuje.

Python

Pro operace na úrovni účtu i na úrovni pracovního prostoru musíte před spuštěním kódu Pythonu spustit následující příkaz pomocí rozhraní příkazového řádku Databricks. Tento příkaz dává rozhraní příkazového řádku Databricks pokyn, aby vygeneroval a uložil do mezipaměti potřebný token OAuth v cestě .databricks/token-cache.json v domovské složce uživatele na vašem počítači:

Konfigurace operací na úrovni účtu Databricks

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

Nahraďte následující zástupné symboly:

  • Nahraďte <account-console-url> hodnotou https://accounts.azuredatabricks.net. (Nenastavujte tuto hodnotu na hodnotu adresy URL pracovního prostoru Azure Databricks.)
  • Nahraďte <account-id> hodnotou účtu Azure Databricks. Viz Vyhledání ID účtu.

Poznámka:

Pokud máte existující konfigurační profil Azure Databricks s již nastavenými host poli a account_id poli, můžete ho --profile <profile-name>nahradit --host <account-console-url> --account-id <account-id> .

Po spuštění auth login příkazu se zobrazí výzva k uložení přihlašovací adresy URL účtu a ID účtu jako konfiguračního profilu Azure Databricks. Po zobrazení výzvy zadejte do souboru název nového nebo existujícího profilu .databrickscfg . Všechny existující profily se stejným názvem v .databrickscfg souboru se přepíšou.

Po zobrazení výzvy dokončete přihlášení dokončením pokynů webového prohlížeče na obrazovce. Pak použijte kód Pythonu podobný jednomu z následujících fragmentů kódu:

Pro výchozí ověřování:

from databricks.sdk import AccountClient

a = AccountClient()
# ...

Pro přímou retrieve konfiguraci (nahraďte zástupné symboly vlastní implementací pro načtení hodnot z konzoly nebo jiného úložiště konfigurace, například Azure KeyVault). V tomto případě adresa URL konzoly účtu Azure Databricks je https://accounts.azuredatabricks.net:

from databricks.sdk import AccountClient

a = AccountClient(
  host       = retrieveAccountConsoleUrl(),
  account_id = retrieveAccountId()
)
# ...

Konfigurace operací na úrovni pracovního prostoru Databricks

databricks auth login --host <worskpace-url>

Zástupný symbol <workspace-url> nahraďte cílovou adresou URL azure Databricks pro jednotlivé pracovní prostory, například https://adb-1234567890123456.7.azuredatabricks.net.

Poznámka:

Pokud máte existující konfigurační profil Azure Databricks s již nastaveným host polem, můžete ho --profile <profile-name>nahradit --host <workspace-url> .

Po spuštění auth login příkazu se zobrazí výzva k uložení adresy URL pracovního prostoru jako konfiguračního profilu Azure Databricks. Po zobrazení výzvy zadejte do souboru název nového nebo existujícího profilu .databrickscfg . Všechny existující profily se stejným názvem v .databrickscfg souboru se přepíšou.

Po zobrazení výzvy dokončete přihlášení dokončením pokynů webového prohlížeče na obrazovce. Pak použijte kód Pythonu podobný jednomu z následujících fragmentů kódu:

Pro výchozí ověřování:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

Pro přímou retrieve konfiguraci (nahraďte zástupné symboly vlastní implementací pro načtení hodnot z konzoly nebo jiného úložiště konfigurace, například Azure KeyVault). V tomto případě je hostitelem adresa URL azure Databricks pro jednotlivé pracovní prostory, napříkladhttps://adb-1234567890123456.7.azuredatabricks.net:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient(host = retrieveWorkspaceUrl())
# ...

Další informace o ověřování pomocí nástrojů Databricks a sad SDK, které používají Python a které implementují jednotné ověřování klienta Databricks, najdete v tématu:

Java

Pro operace na úrovni účtu i na úrovni pracovního prostoru musíte před spuštěním kódu v Javě spustit následující příkaz pomocí rozhraní příkazového řádku Databricks. Tento příkaz dává rozhraní příkazového řádku Databricks pokyn, aby vygeneroval a uložil do mezipaměti potřebný token OAuth v cestě .databricks/token-cache.json do domovské složky uživatele na vašem počítači:

Konfigurace operací na úrovni účtu Databricks

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

Nahraďte následující zástupné symboly:

  • Nahraďte <account-console-url> hodnotou https://accounts.azuredatabricks.net. (Nenastavujte tuto hodnotu na hodnotu adresy URL pracovního prostoru Azure Databricks.)
  • Nahraďte <account-id> hodnotou účtu Azure Databricks. Viz Vyhledání ID účtu.

Poznámka:

Pokud máte existující konfigurační profil Azure Databricks s již nastavenými host poli a account_id poli, můžete ho --profile <profile-name>nahradit --host <account-console-url> --account-id <account-id> .

Po spuštění auth login příkazu se zobrazí výzva k uložení přihlašovací adresy URL účtu a ID účtu jako konfiguračního profilu Azure Databricks. Po zobrazení výzvy zadejte do souboru název nového nebo existujícího profilu .databrickscfg . Všechny existující profily se stejným názvem v .databrickscfg souboru se přepíšou.

Po zobrazení výzvy dokončete přihlášení dokončením pokynů webového prohlížeče na obrazovce. Pak použijte kód Java podobný jednomu z následujících fragmentů kódu:

Pro výchozí ověřování:

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

Pro přímou retrieve konfiguraci (nahraďte zástupné symboly vlastní implementací pro načtení hodnot z konzoly nebo jiného úložiště konfigurace, například Azure KeyVault). V tomto případě adresa URL konzoly účtu Azure Databricks je 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);
// ...

Konfigurace operací na úrovni pracovního prostoru Databricks

V případě operací na úrovni pracovního prostoru byste před spuštěním kódu v Javě nejprve měli použít rozhraní příkazového řádku Databricks. Tento příkaz dává rozhraní příkazového řádku Databricks pokyn, aby vygeneroval a uložil do mezipaměti potřebný token OAuth v cestě .databricks/token-cache.json v domovské složce uživatele na vašem počítači:

databricks auth login --host <worskpace-url>

Zástupný symbol <workspace-url> nahraďte cílovou adresou URL azure Databricks pro jednotlivé pracovní prostory, například https://adb-1234567890123456.7.azuredatabricks.net.

Poznámka:

Pokud máte existující konfigurační profil Azure Databricks s již nastaveným host polem, můžete ho --profile <profile-name>nahradit --host <workspace-url> .

Po spuštění auth login příkazu se zobrazí výzva k uložení adresy URL pracovního prostoru jako konfiguračního profilu Azure Databricks. Po zobrazení výzvy zadejte do souboru název nového nebo existujícího profilu .databrickscfg . Všechny existující profily se stejným názvem v .databrickscfg souboru se přepíšou.

Po zobrazení výzvy dokončete přihlášení dokončením pokynů webového prohlížeče na obrazovce. Pak použijte kód Java podobný jednomu z následujících fragmentů kódu:

Pro výchozí ověřování:

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

Pro přímou retrieve konfiguraci (nahraďte zástupné symboly vlastní implementací pro načtení hodnot z konzoly nebo jiného úložiště konfigurace, například Azure KeyVault). V tomto případě je hostitelem adresa URL azure Databricks pro jednotlivé pracovní prostory, napříkladhttps://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);
// ...

Další informace o ověřování pomocí nástrojů Databricks a sad SDK, které používají Javu a které implementují jednotné ověřování klienta Databricks, najdete v tématu:

Go

Pro operace na úrovni účtu i na úrovni pracovního prostoru musíte před spuštěním kódu Go spustit následující příkaz pomocí rozhraní příkazového řádku Databricks. Tento příkaz dává rozhraní příkazového řádku Databricks pokyn, aby vygeneroval a uložil do mezipaměti potřebný token OAuth v cestě .databricks/token-cache.json v domovské složce uživatele na vašem počítači:

Konfigurace operací na úrovni účtu Databricks

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

Nahraďte následující zástupné symboly:

  • Nahraďte <account-console-url> hodnotou https://accounts.azuredatabricks.net. (Nenastavujte tuto hodnotu na hodnotu adresy URL pracovního prostoru Azure Databricks.)
  • Nahraďte <account-id> hodnotou účtu Azure Databricks. Viz Vyhledání ID účtu.

Poznámka:

Pokud máte existující konfigurační profil Azure Databricks s již nastavenými host poli a account_id poli, můžete ho --profile <profile-name>nahradit --host <account-console-url> --account-id <account-id> .

Po spuštění auth login příkazu se zobrazí výzva k uložení přihlašovací adresy URL účtu a ID účtu jako konfiguračního profilu Azure Databricks. Po zobrazení výzvy zadejte do souboru název nového nebo existujícího profilu .databrickscfg . Všechny existující profily se stejným názvem v .databrickscfg souboru se přepíšou.

Po zobrazení výzvy dokončete přihlášení dokončením pokynů webového prohlížeče na obrazovce. Pak použijte kód Go podobný jednomu z následujících fragmentů kódu:

Pro výchozí ověřování:

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

Pro přímou retrieve konfiguraci (nahraďte zástupné symboly vlastní implementací pro načtení hodnot z konzoly nebo jiného úložiště konfigurace, například Azure KeyVault). V tomto případě adresa URL konzoly účtu Azure Databricks je https://accounts.azuredatabricks.net:

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

Konfigurace operací na úrovni pracovního prostoru Databricks

V případě operací na úrovni pracovního prostoru byste před spuštěním kódu Go měli nejprve pomocí rozhraní příkazového řádku Databricks spustit následující příkaz. Tento příkaz dává rozhraní příkazového řádku Databricks pokyn, aby vygeneroval a uložil do mezipaměti potřebný token OAuth v cestě .databricks/token-cache.json v domovské složce uživatele na vašem počítači:

databricks auth login --host <worskpace-url>

Zástupný symbol <workspace-url> nahraďte cílovou adresou URL azure Databricks pro jednotlivé pracovní prostory, například https://adb-1234567890123456.7.azuredatabricks.net.

Poznámka:

Pokud máte existující konfigurační profil Azure Databricks s již nastaveným host polem, můžete ho --profile <profile-name>nahradit --host <workspace-url> .

Po spuštění auth login příkazu se zobrazí výzva k uložení adresy URL pracovního prostoru jako konfiguračního profilu Azure Databricks. Po zobrazení výzvy zadejte do souboru název nového nebo existujícího profilu .databrickscfg . Všechny existující profily se stejným názvem v .databrickscfg souboru se přepíšou.

Po zobrazení výzvy dokončete přihlášení dokončením pokynů webového prohlížeče na obrazovce. Pak použijte kód Go podobný jednomu z následujících fragmentů kódu:

Pro výchozí ověřování:

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

Pro přímou retrieve konfiguraci (nahraďte zástupné symboly vlastní implementací pro načtení hodnot z konzoly nebo jiného úložiště konfigurace, například Azure KeyVault). V tomto případě je hostitelem adresa URL azure Databricks pro jednotlivé pracovní prostory, napříkladhttps://adb-1234567890123456.7.azuredatabricks.net:

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

Další informace o ověřování pomocí nástrojů Databricks a sad SDK, které používají Go a které implementují jednotné ověřování klienta Databricks, najdete v tématu Ověření sady Databricks SDK for Go pomocí účtu nebo pracovního prostoru Azure Databricks.

Ruční generování a používání přístupových tokenů pro ověřování uživatele AAuth (U2M)

Nástroje a sady SDK Azure Databricks, které implementují standard sjednoceného ověřování klienta Databricks, automaticky vygenerují, aktualizují a použijí přístupové tokeny Azure Databricks OAuth vaším jménem podle potřeby pro ověřování OAuth U2M.

Pokud z nějakého důvodu musíte ručně generovat, aktualizovat nebo používat přístupové tokeny Azure Databricks OAuth pro ověřování OAuth U2M, postupujte podle pokynů v této části.

Krok 1: Vygenerování ověřovacího kódu OAuth a páru výzvy kódu

Pokud chcete ručně generovat a používat přístupové tokeny pro ověřování OAuth U2M, musíte mít nejprve ověřovatel kódu OAuth a výzvu kódu OAuth odvozenou od ověřovatele kódu. Pomocí výzvy kódu v kroku 2 vygenerujete autorizační kód OAuth. K vygenerování přístupového tokenu OAuth použijete ověřovatel kódu a autorizační kód v kroku 3.

Poznámka:

I když je technicky možné použít nekódované řetězce prostého textu pro ověřovatel kódu a výzvu kódu, Databricks důrazně podporuje dodržování standardu OAuth pro generování ověřovatele kódu a výzvy kódu.

Konkrétně by měl být ověřovatel kódu kryptograficky náhodný řetězec používající znaky ze sad A-Z, a-z, 0-9a interpunkční znaky -._~ (spojovník, tečka, podtržítka a tilda) mezi 43 a 128 znaky dlouhé. Výzvou kódu by měl být řetězec zakódovaný pomocí adresy URL base64 s hodnotou hash SHA256 ověřovatele kódu. Další informace najdete v tématu Žádost o autorizaci.

Spuštěním následujícího skriptu Pythonu můžete rychle vygenerovat jedinečný kód a dvojici výzvy kódu. I když můžete tento vygenerovaný ověřovatel kódu a dvojici výzvy kódu opakovaně použít, databricks doporučuje vygenerovat nový ověřovatel kódu a dvojici výzvy kódu pokaždé, když ručně vygenerujete přístupové tokeny pro ověřování U2M OAuth.

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: Vygenerování autorizačního kódu

K vygenerování přístupového tokenu Azure Databricks OAuth použijete autorizační kód OAuth. Autorizační kód vyprší okamžitě po jeho použití k vygenerování přístupového tokenu Azure Databricks OAuth. Rozsah autorizačního kódu závisí na úrovni, ze které ho vygenerujete. Autorizační kód můžete vygenerovat buď na úrovni účtu Azure Databricks, nebo na úrovni pracovního prostoru:

Generování autorizačního kódu na úrovni účtu

  1. Jako správce účtu se přihlaste ke konzole účtu.

  2. Klikněte na šipku dolů vedle svého uživatelského jména v pravém horním rohu.

  3. Zkopírujte ID účtu.

  4. Na adresní řádku webového prohlížeče přejděte na následující adresu URL. Konce řádků byly přidány pro čitelnost. Adresa URL nesmí obsahovat tyto konce řádků.

    V následující adrese URL nahraďte následující:

    • Nahraďte <account-id> ID účtu, které jste zkopírovali.
    • Nahraďte <redirect-url> adresou URL pro přesměrování na místní počítač, například http://localhost:8020.
    • Nahraďte <state> nějakým textovým řetězcem ve formátu prostého textu, který můžete použít k ověření integrity autorizačního kódu.
    • Nahraďte <code-challenge> výzvou kódu, kterou jste vygenerovali v kroku 1.
    https://accounts.azuredatabricks.net/oidc/accounts/<account-id>/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
    
  5. Po zobrazení výzvy se přihlaste ke svému účtu Azure Databricks podle pokynů na obrazovce.

  6. Na adresní řádku webového prohlížeče zkopírujte autorizační kód. Autorizační kód je úplný řetězec znaků mezi code= a znakem & v adrese URL. Například autorizační kód v následující adrese URL je dcod...7fe6:

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

    Integritu tohoto autorizačního kódu byste měli ověřit vizuálním potvrzením, že <state> hodnota v této adrese URL odpovědi odpovídá state hodnotě, kterou jste zadali v adrese URL požadavku. Pokud se hodnoty liší, neměli byste tento autorizační kód používat, protože by mohlo dojít k ohrožení zabezpečení.

  7. Přeskočte k vygenerování přístupového tokenu na úrovni účtu.

Generování autorizačního kódu na úrovni pracovního prostoru

  1. Na adresní řádku webového prohlížeče přejděte na následující adresu URL. Konce řádků byly přidány pro čitelnost. Adresa URL nesmí obsahovat tyto konce řádků.

    V následující adrese URL nahraďte následující:

    • Nahraďte <databricks-instance> například názvemadb-1234567890123456.7.azuredatabricks.net instance pracovního prostoru Azure Databricks.
    • Nahraďte <redirect-url> adresou URL pro přesměrování na místní počítač, například http://localhost:8020.
    • Nahraďte <state> nějakým textovým řetězcem ve formátu prostého textu, který můžete použít k ověření integrity autorizačního kódu.
    • Nahraďte <code-challenge> výzvou kódu, kterou jste vygenerovali v 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 zobrazení výzvy se přihlaste k pracovnímu prostoru Azure Databricks podle pokynů na obrazovce.

  3. Na adresní řádku webového prohlížeče zkopírujte autorizační kód. Autorizační kód je úplný řetězec znaků mezi code= a znakem & v adrese URL. Například autorizační kód v následující adrese URL je dcod...7fe6:

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

    Integritu tohoto autorizačního kódu byste měli ověřit vizuálním potvrzením, že <state> hodnota v této adrese URL odpovědi odpovídá state hodnotě, kterou jste zadali v adrese URL požadavku. Pokud se hodnoty liší, neměli byste tento autorizační kód používat, protože by mohlo dojít k ohrožení zabezpečení.

Krok 3: Použití autorizačního kódu k vygenerování přístupového tokenu OAuth

Autorizační kód OAuth z předchozího kroku použijete k vygenerování přístupového tokenu Azure Databricks OAuth následujícím způsobem:

Vygenerování přístupového tokenu na úrovni účtu

  1. K vygenerování přístupového tokenu OAuth na úrovni účtu použijte klienta, například curl autorizační kód na úrovni účtu. V následujícím curl volání nahraďte následující zástupné symboly:

    • Nahraďte <account-id> ID účtu z kroku 2.
    • Nahraďte <redirect-url> adresou URL pro přesměrování z kroku 2.
    • Nahraďte <code-verifier> kódem, který jste vygenerovali v kroku 1.
    • Nahraďte <authorization-code> autorizačním kódem na úrovni účtu, který jste vygenerovali v 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. V odpovědi zkopírujte přístupový token OAuth na úrovni účtu. Přístupový token je úplný řetězec znaků v objektu access_token . Například přístupový token v následující odpovědi:eyJr...Dkag

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

    Platnost tohoto přístupového tokenu vyprší za jednu hodinu. Pokud chcete vygenerovat nový přístupový token, opakujte tento postup z kroku 1.

  3. Přeskočte k kroku 4: Volání rozhraní REST API Databricks.

Generování přístupového tokenu na úrovni pracovního prostoru

  1. K vygenerování přístupového tokenu OAuth na úrovni pracovního prostoru použijte klienta, například curl autorizační kód na úrovni pracovního prostoru. V následujícím curl volání nahraďte následující zástupné symboly:

    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. V odpovědi zkopírujte přístupový token OAuth na úrovni pracovního prostoru. Přístupový token je úplný řetězec znaků v objektu access_token . Například přístupový token v následující odpovědi:eyJr...Dkag

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

    Platnost tohoto přístupového tokenu vyprší za jednu hodinu. Pokud chcete vygenerovat nový přístupový token, opakujte tento postup z kroku 1.

Krok 4: Volání rozhraní REST API Databricks

Přístupový token OAuth na úrovni účtu nebo pracovního prostoru použijete k ověření v rozhraních REST API na úrovni účtu Azure Databricks a rozhraní REST API na úrovni pracovního prostoru v závislosti na rozsahu přístupového tokenu. Aby bylo možné volat rozhraní REST API na úrovni účtu, musí být váš uživatelský účet Azure Databricks správcem účtu.

Příklad požadavku rozhraní REST API na úrovni účtu

Tento příklad používá curl spolu s ověřováním Bearer seznam všech pracovních prostorů přidružených k účtu.

  • Nahraďte <oauth-access-token> přístupovým tokenem OAuth na úrovni účtu.
  • Nahraďte <account-id> ID účtu.
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"

Příklad požadavku rozhraní REST API na úrovni pracovního prostoru

Tento příklad používá curl spolu s ověřováním Bearer seznam všech dostupných clusterů v zadaném pracovním prostoru.

export OAUTH_TOKEN=<oauth-access-token>

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