Delen via


Toegang tot Azure Databricks verifiëren met een gebruikersaccount met behulp van OAuth (OAuth U2M)

Azure Databricks maakt gebruik van OAuth-gebruikers-naar-machine-verificatie (U2M) om CLI- en API-toegang tot Azure Databricks-account- en werkruimtebronnen namens een gebruiker in te schakelen. Nadat een gebruiker zich in eerste instantie heeft aangemeld en toestemming heeft gegeven voor de OAuth-verificatieaanvraag, wordt vanaf dat moment een OAuth-token aan het deelnemende hulpprogramma of sdk gegeven om tokengebaseerde verificatie uit te voeren namens de gebruiker. Het OAuth-token heeft een levensduur van één uur, waarna het betrokken hulpprogramma of de SDK een automatische achtergrondpoging uitvoert om een nieuw token te verkrijgen dat ook één uur geldig is.

Azure Databricks ondersteunt twee manieren om toegang te verifiëren voor een gebruikersaccount met OAuth:

  • Meestal automatisch, met behulp van de geïntegreerde ondersteuning voor Databricks-clientverificatie. Gebruik deze vereenvoudigde benadering als u specifieke Azure Databricks SDK's (zoals de Databricks Terraform SDK) en hulpprogramma's gebruikt. Ondersteunde hulpprogramma's en SDK's worden vermeld in geïntegreerde Databricks-clientverificatie.
  • Handmatig, door rechtstreeks een OAuth-codeverifier/challenge-paar en een autorisatiecode te genereren en deze te gebruiken om het oorspronkelijke OAuth-token te maken dat u in uw configuratie opgeeft. Gebruik deze benadering wanneer u geen API gebruikt die wordt ondersteund door geïntegreerde Databricks-clientverificatie. Zie voor meer informatie: Handmatig toegangstokens genereren en gebruiken voor OAuth-gebruikers-naar-machine-verificatie (U2M).

U2M-verificatie met geïntegreerde Databricks-clientverificatie

Notitie

Voordat u begint met het configureren van uw verificatie, controleert u de ACL-machtigingen voor een specifieke categorie bewerkingen voor werkruimteobjecten en bepaalt u of uw account het toegangsniveau heeft dat u nodig hebt. Zie Toegangsbeheerlijsten voor meer informatie.

Als u OAuth U2M-verificatie wilt uitvoeren met Azure Databricks SDK's en hulpprogramma's die geïntegreerde clientverificatie ondersteunen, integreert u het volgende in uw code:

Omgeving

Als u omgevingsvariabelen wilt gebruiken voor een specifiek verificatietype van Azure Databricks met een hulpprogramma of SDK, raadpleegt u Verificatietoegang tot Azure Databricks-resources of de documentatie van het hulpprogramma of de SDK. Zie ook Omgevingsvariabelen en -velden voor geïntegreerde clientverificatie en de standaardmethoden voor geïntegreerde clientverificatie.

Stel voor bewerkingen op accountniveau de volgende omgevingsvariabelen in:

  • DATABRICKS_HOST, ingesteld op de waarde van de URL van uw Azure Databricks-accountconsole, https://accounts.azuredatabricks.net.
  • DATABRICKS_ACCOUNT_ID

Stel voor bewerkingen op werkruimteniveau de volgende omgevingsvariabelen in:

  • DATABRICKS_HOST, bijvoorbeeld ingesteld op de waarde van uw AZURE Databricks-URL https://adb-1234567890123456.7.azuredatabricks.netper werkruimte.

Profiel

Maak of identificeer een Azure Databricks-configuratieprofiel met de volgende velden in uw .databrickscfg bestand. Als u het profiel maakt, vervangt u de tijdelijke aanduidingen door de juiste waarden. Als u het profiel wilt gebruiken met een hulpprogramma of SDK, raadpleegt u Toegang tot Azure Databricks-resources of de documentatie van het hulpprogramma of de SDK verifiëren. Zie ook Omgevingsvariabelen en -velden voor geïntegreerde clientverificatie en de standaardmethoden voor geïntegreerde clientverificatie.

Stel voor bewerkingen op accountniveau de volgende waarden in uw .databrickscfg bestand in. In dit geval is https://accounts.azuredatabricks.netde URL van de Azure Databricks-accountconsole:

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

Stel voor bewerkingen op werkruimteniveau de volgende waarden in het .databrickscfg bestand in. In dit geval is de host de URL van Azure Databricks per werkruimte, bijvoorbeeldhttps://adb-1234567890123456.7.azuredatabricks.net:

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

CLI

Voer voor de Databricks CLI de databricks auth login opdracht uit met de volgende opties:

Nadat u deze opdracht hebt uitgevoerd, volgt u de instructies in uw webbrowser om u aan te melden bij uw Azure Databricks-account of -werkruimte.

Zie OAuth U2M-verificatie met de Databricks CLI voor meer informatie.

Verbinden

Notitie

OAuth U2M-verificatie wordt ondersteund in de volgende Databricks Connect-versies:

  • Voor Python maakt Databricks Connect voor Databricks Runtime 13.1 en hoger.
  • Voor Scala, Databricks Connect voor Databricks Runtime 13.3 LTS en hoger.

Voor Databricks Connect kunt u een van de volgende handelingen uitvoeren:

  • Stel de waarden in uw .databrickscfg bestand in voor bewerkingen op werkruimteniveau van Azure Databricks, zoals opgegeven in de sectie Profiel van dit artikel. Stel ook de cluster_id omgevingsvariabele in uw profiel in op uw URL per werkruimte, bijvoorbeeld https://adb-1234567890123456.7.azuredatabricks.net.
  • Stel de omgevingsvariabelen in voor bewerkingen op werkruimteniveau van Azure Databricks, zoals opgegeven in de sectie 'Omgeving' van dit artikel. Stel de DATABRICKS_CLUSTER_ID omgevingsvariabele ook in op uw URL per werkruimte, bijvoorbeeld https://adb-1234567890123456.7.azuredatabricks.net.

Waarden in uw .databrickscfg bestand hebben altijd voorrang op omgevingsvariabelen.

Zie Compute-configuratie voor Databricks Connect om de Databricks Connect-client te initialiseren met deze omgevingsvariabelen of -waarden in uw .databrickscfg bestand.

VS Code

Ga als volgt te werk voor de Databricks-extensie voor Visual Studio Code:

  1. Klik in het deelvenster Configuratie op Databricks configureren.
  2. Voer in het opdrachtenpalet voor Databricks Host uw URL per werkruimte in, bijvoorbeeld https://adb-1234567890123456.7.azuredatabricks.neten druk Enterop .
  3. Selecteer OAuth (gebruiker naar computer).
  4. Voltooi de instructies op het scherm in uw webbrowser om de verificatie met uw Azure Databricks-account te voltooien en alle API's toegang te verlenen.

Zie OAuth U2M-verificatie met de Databricks CLI voor meer informatie.

Terraform

Notitie

OAuth U2M-verificatie wordt nog niet ondersteund.

Python

Voor bewerkingen op account- en werkruimteniveau moet u de Databricks CLI gebruiken om de volgende opdracht uit te voeren voordat u de Python-code uitvoert. Met deze opdracht wordt de Databricks CLI geïnstrueerd om het benodigde OAuth-token te genereren en in de cache op te slaan in het pad .databricks/token-cache.json in de basismap van uw gebruiker op uw computer:

Configureren voor bewerkingen op Databricks-accountniveau

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

Vervang de volgende tijdelijke aanduidingen:

  • Vervang door <account-console-url> de waarde https://accounts.azuredatabricks.net. (Stel dit niet in op de waarde van de URL van uw Azure Databricks-werkruimte.)
  • Vervang door <account-id> de waarde van uw Azure Databricks-account. Zie Uw account-id zoeken.

Notitie

Als u een bestaand Azure Databricks-configuratieprofiel hebt met de host velden die account_id al zijn ingesteld, kunt u deze vervangen door --profile <profile-name>--host <account-console-url> --account-id <account-id> .

Nadat u de auth login opdracht hebt uitgevoerd, wordt u gevraagd om de aanmeldings-URL en account-id van het account op te slaan als een Azure Databricks-configuratieprofiel. Voer desgevraagd de naam in van een nieuw of bestaand profiel in uw .databrickscfg bestand. Elk bestaand profiel met dezelfde naam in uw .databrickscfg bestand wordt overschreven.

Als u hierom wordt gevraagd, vult u de instructies op het scherm van uw webbrowser in om de aanmelding te voltooien. Gebruik vervolgens Python-code die vergelijkbaar is met een van de volgende codefragmenten:

Voor standaardverificatie:

from databricks.sdk import AccountClient

a = AccountClient()
# ...

Voor directe configuratie (vervang de retrieve tijdelijke aanduidingen door uw eigen implementatie om de waarden op te halen uit de console of een ander configuratiearchief, zoals Azure KeyVault). In dit geval is https://accounts.azuredatabricks.netde URL van de Azure Databricks-accountconsole:

from databricks.sdk import AccountClient

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

Configureren voor bewerkingen op databricks-werkruimteniveau

databricks auth login --host <worskpace-url>

Vervang de tijdelijke aanduiding <workspace-url> door de doel-URL van Azure Databricks per werkruimte, bijvoorbeeldhttps://adb-1234567890123456.7.azuredatabricks.net.

Notitie

Als u een bestaand Azure Databricks-configuratieprofiel hebt met het host veld dat al is ingesteld, kunt u deze vervangen --host <workspace-url> door --profile <profile-name>.

Nadat u de auth login opdracht hebt uitgevoerd, wordt u gevraagd om de werkruimte-URL op te slaan als een Azure Databricks-configuratieprofiel. Voer desgevraagd de naam in van een nieuw of bestaand profiel in uw .databrickscfg bestand. Elk bestaand profiel met dezelfde naam in uw .databrickscfg bestand wordt overschreven.

Als u hierom wordt gevraagd, vult u de instructies op het scherm van uw webbrowser in om de aanmelding te voltooien. Gebruik vervolgens Python-code die vergelijkbaar is met een van de volgende codefragmenten:

Voor standaardverificatie:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

Voor directe configuratie (vervang de retrieve tijdelijke aanduidingen door uw eigen implementatie om de waarden op te halen uit de console of een ander configuratiearchief, zoals Azure KeyVault). In dit geval is de host de URL van Azure Databricks per werkruimte, bijvoorbeeldhttps://adb-1234567890123456.7.azuredatabricks.net:

from databricks.sdk import WorkspaceClient

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

Zie voor meer informatie over verificatie met Databricks-hulpprogramma's en SDK's die gebruikmaken van Python en die geïntegreerde verificatie voor Databricks-clients implementeren:

Java

Voor bewerkingen op account- en werkruimteniveau moet u de Databricks CLI gebruiken om de volgende opdracht uit te voeren voordat u uw Java-code uitvoert. Met deze opdracht wordt de Databricks CLI geïnstrueerd om het benodigde OAuth-token te genereren en in de cache op te slaan in het pad .databricks/token-cache.json in de basismap van uw gebruiker op uw computer:

Configureren voor bewerkingen op Databricks-accountniveau

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

Vervang de volgende tijdelijke aanduidingen:

  • Vervang door <account-console-url> de waarde https://accounts.azuredatabricks.net. (Stel dit niet in op de waarde van de URL van uw Azure Databricks-werkruimte.)
  • Vervang door <account-id> de waarde van uw Azure Databricks-account. Zie Uw account-id zoeken.

Notitie

Als u een bestaand Azure Databricks-configuratieprofiel hebt met de host velden die account_id al zijn ingesteld, kunt u deze vervangen door --profile <profile-name>--host <account-console-url> --account-id <account-id> .

Nadat u de auth login opdracht hebt uitgevoerd, wordt u gevraagd om de aanmeldings-URL en account-id van het account op te slaan als een Azure Databricks-configuratieprofiel. Voer desgevraagd de naam in van een nieuw of bestaand profiel in uw .databrickscfg bestand. Elk bestaand profiel met dezelfde naam in uw .databrickscfg bestand wordt overschreven.

Als u hierom wordt gevraagd, vult u de instructies op het scherm van uw webbrowser in om de aanmelding te voltooien. Gebruik vervolgens Java-code die vergelijkbaar is met een van de volgende codefragmenten:

Voor standaardverificatie:

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

Voor directe configuratie (vervang de retrieve tijdelijke aanduidingen door uw eigen implementatie om de waarden op te halen uit de console of een ander configuratiearchief, zoals Azure KeyVault). In dit geval is https://accounts.azuredatabricks.netde URL van de Azure Databricks-accountconsole:

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

Configureren voor bewerkingen op databricks-werkruimteniveau

Voor bewerkingen op werkruimteniveau moet u eerst de Databricks CLI gebruiken om de volgende opdracht uit te voeren voordat u uw Java-code uitvoert. Met deze opdracht wordt de Databricks CLI geïnstrueerd om het benodigde OAuth-token te genereren en in de cache op te slaan in het pad .databricks/token-cache.json in de basismap van uw gebruiker op uw computer:

databricks auth login --host <worskpace-url>

Vervang de tijdelijke aanduiding <workspace-url> door de doel-URL van Azure Databricks per werkruimte, bijvoorbeeldhttps://adb-1234567890123456.7.azuredatabricks.net.

Notitie

Als u een bestaand Azure Databricks-configuratieprofiel hebt met het host veld dat al is ingesteld, kunt u deze vervangen --host <workspace-url> door --profile <profile-name>.

Nadat u de auth login opdracht hebt uitgevoerd, wordt u gevraagd om de werkruimte-URL op te slaan als een Azure Databricks-configuratieprofiel. Voer desgevraagd de naam in van een nieuw of bestaand profiel in uw .databrickscfg bestand. Elk bestaand profiel met dezelfde naam in uw .databrickscfg bestand wordt overschreven.

Als u hierom wordt gevraagd, vult u de instructies op het scherm van uw webbrowser in om de aanmelding te voltooien. Gebruik vervolgens Java-code die vergelijkbaar is met een van de volgende codefragmenten:

Voor standaardverificatie:

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

Voor directe configuratie (vervang de retrieve tijdelijke aanduidingen door uw eigen implementatie om de waarden op te halen uit de console of een ander configuratiearchief, zoals Azure KeyVault). In dit geval is de host de URL van Azure Databricks per werkruimte, bijvoorbeeldhttps://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);
// ...

Zie voor meer informatie over verificatie met Databricks-hulpprogramma's en SDK's die gebruikmaken van Java en die geïntegreerde verificatie van databricks-clients implementeren:

Go

Voor bewerkingen op account- en werkruimteniveau moet u de Databricks CLI gebruiken om de volgende opdracht uit te voeren voordat u de Go-code uitvoert. Met deze opdracht wordt de Databricks CLI geïnstrueerd om het benodigde OAuth-token te genereren en in de cache op te slaan in het pad .databricks/token-cache.json in de basismap van uw gebruiker op uw computer:

Configureren voor bewerkingen op Databricks-accountniveau

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

Vervang de volgende tijdelijke aanduidingen:

  • Vervang door <account-console-url> de waarde https://accounts.azuredatabricks.net. (Stel dit niet in op de waarde van de URL van uw Azure Databricks-werkruimte.)
  • Vervang door <account-id> de waarde van uw Azure Databricks-account. Zie Uw account-id zoeken.

Notitie

Als u een bestaand Azure Databricks-configuratieprofiel hebt met de host velden die account_id al zijn ingesteld, kunt u deze vervangen door --profile <profile-name>--host <account-console-url> --account-id <account-id> .

Nadat u de auth login opdracht hebt uitgevoerd, wordt u gevraagd om de aanmeldings-URL en account-id van het account op te slaan als een Azure Databricks-configuratieprofiel. Voer desgevraagd de naam in van een nieuw of bestaand profiel in uw .databrickscfg bestand. Elk bestaand profiel met dezelfde naam in uw .databrickscfg bestand wordt overschreven.

Als u hierom wordt gevraagd, vult u de instructies op het scherm van uw webbrowser in om de aanmelding te voltooien. Gebruik vervolgens Go-code die vergelijkbaar is met een van de volgende codefragmenten:

Voor standaardverificatie:

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

Voor directe configuratie (vervang de retrieve tijdelijke aanduidingen door uw eigen implementatie om de waarden op te halen uit de console of een ander configuratiearchief, zoals Azure KeyVault). In dit geval is https://accounts.azuredatabricks.netde URL van de Azure Databricks-accountconsole:

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

Configureren voor bewerkingen op databricks-werkruimteniveau

Voor bewerkingen op werkruimteniveau moet u eerst de Databricks CLI gebruiken om de volgende opdracht uit te voeren voordat u uw Go-code uitvoert. Met deze opdracht wordt de Databricks CLI geïnstrueerd om het benodigde OAuth-token te genereren en in de cache op te slaan in het pad .databricks/token-cache.json in de basismap van uw gebruiker op uw computer:

databricks auth login --host <worskpace-url>

Vervang de tijdelijke aanduiding <workspace-url> door de doel-URL van Azure Databricks per werkruimte, bijvoorbeeldhttps://adb-1234567890123456.7.azuredatabricks.net.

Notitie

Als u een bestaand Azure Databricks-configuratieprofiel hebt met het host veld dat al is ingesteld, kunt u deze vervangen --host <workspace-url> door --profile <profile-name>.

Nadat u de auth login opdracht hebt uitgevoerd, wordt u gevraagd om de werkruimte-URL op te slaan als een Azure Databricks-configuratieprofiel. Voer desgevraagd de naam in van een nieuw of bestaand profiel in uw .databrickscfg bestand. Elk bestaand profiel met dezelfde naam in uw .databrickscfg bestand wordt overschreven.

Als u hierom wordt gevraagd, vult u de instructies op het scherm van uw webbrowser in om de aanmelding te voltooien. Gebruik vervolgens Go-code die vergelijkbaar is met een van de volgende codefragmenten:

Voor standaardverificatie:

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

Voor directe configuratie (vervang de retrieve tijdelijke aanduidingen door uw eigen implementatie om de waarden op te halen uit de console of een ander configuratiearchief, zoals Azure KeyVault). In dit geval is de host de URL van Azure Databricks per werkruimte, bijvoorbeeldhttps://adb-1234567890123456.7.azuredatabricks.net:

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

Zie De Databricks-SDK voor Go verifiëren met uw Azure Databricks-account of -werkruimte voor meer informatie over verificatie met Databricks-hulpprogramma's en SDK's die gebruikmaken van Go en die geïntegreerde Verificatie van de Databricks-client implementeren.

Handmatig toegangstokens genereren en gebruiken voor OAuth-gebruikers-naar-machine-verificatie (U2M)

Notitie

Deze sectie is beschikbaar voor gebruikers met hulpprogramma's of services van derden die niet werken met de geïntegreerde verificatiestandaard van de Databricks-client.

Als u om een of andere reden handmatig Azure Databricks OAuth-toegangstokens moet genereren, vernieuwen of gebruiken voor OAuth U2M-verificatie, volgt u de instructies in deze sectie.

Stap 1: Een OAuth-codeverificator en codevraagpaar genereren

Als u handmatig toegangstokens voor OAuth U2M-verificatie wilt genereren en gebruiken, moet u eerst een OAuth-codeverificator en een OAuth-codevraag hebben die is afgeleid van de codeverificator. U gebruikt de codevraag in stap 2 om een OAuth-autorisatiecode te genereren. U gebruikt de codeverifier en de autorisatiecode in stap 3 om het OAuth-toegangstoken te genereren.

Notitie

Hoewel het technisch mogelijk is om niet-gecodeerde tekenreeksen zonder opmaak te gebruiken voor de codeverifier en code-uitdaging, moedigt Databricks ten zeerste aan om in plaats daarvan de OAuth-standaard te volgen voor het genereren van de codeverifier en code-uitdaging .

De codeverificator moet een cryptografische willekeurige tekenreeks zijn met behulp van tekens uit de sets A-Z, a-zen 0-9de interpunctietekens -._~ (afbreekstreepje, punt, onderstrepingsteken en tilde), tussen 43 en 128 tekens lang. De codevraag moet een Base64-URL-gecodeerde tekenreeks van de SHA256-hash van de codeverifier zijn. Zie Autorisatieaanvraag voor meer informatie.

U kunt het volgende Python-script uitvoeren om snel een unieke codeverificator en code-uitdagingpaar te genereren. Hoewel u dit gegenereerde codeverificator en code-uitdagingpaar meerdere keren opnieuw kunt gebruiken, raadt Databricks u aan om telkens wanneer u handmatig toegangstokens genereert voor OAuth U2M-verificatie een nieuwe codeverificator en codevraagpaar te genereren.

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}")

Stap 2: Een autorisatiecode genereren

U gebruikt een OAuth-autorisatiecode om een Azure Databricks OAuth-toegangstoken te genereren. De autorisatiecode verloopt onmiddellijk nadat u deze hebt gebruikt om een Azure Databricks OAuth-toegangstoken te genereren. Het bereik van de autorisatiecode is afhankelijk van het niveau waaruit u deze genereert. U kunt als volgt een autorisatiecode genereren op het niveau van het Azure Databricks-account of op werkruimteniveau:

Een autorisatiecode op accountniveau genereren

  1. Meld u als accountbeheerder aan bij de accountconsole.

  2. Klik op de pijl-omlaag naast uw gebruikersnaam in de rechterbovenhoek.

  3. Kopieer uw account-id.

  4. Blader in de adresbalk van uw webbrowser naar de volgende URL. Regeleinden zijn toegevoegd voor leesbaarheid. Uw URL mag deze regeleinden niet bevatten.

    Vervang in de volgende URL het volgende:

    • Vervang door <account-id> de account-id die u hebt gekopieerd.
    • Vervang <redirect-url> bijvoorbeeld door een omleidings-URL naar uw lokale computer http://localhost:8020.
    • Vervang <state> door een tekenreeks zonder opmaak die u kunt gebruiken om de integriteit van de autorisatiecode te verifiëren.
    • Vervang <code-challenge> door de codevraag die u in stap 1 hebt gegenereerd.
    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. Wanneer u hierom wordt gevraagd, volgt u de aanwijzingen op het scherm om u aan te melden bij uw Azure Databricks-account.

  6. Kopieer de autorisatiecode in de adresbalk van uw webbrowser. De autorisatiecode is de volledige tekenreeks tussen code= en het & teken in de URL. De autorisatiecode in de volgende URL is dcod...7fe6bijvoorbeeld:

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

    Controleer de integriteit van deze autorisatiecode door visueel te bevestigen dat de <state> waarde in deze antwoord-URL overeenkomt met de state waarde die u hebt opgegeven in uw aanvraag-URL. Als de waarden verschillen, moet u deze autorisatiecode niet gebruiken, omdat deze mogelijk wordt aangetast.

  7. Ga verder met het genereren van een toegangstoken op accountniveau.

Een autorisatiecode op werkruimteniveau genereren

  1. Blader in de adresbalk van uw webbrowser naar de volgende URL. Regeleinden zijn toegevoegd voor leesbaarheid. Uw URL mag deze regeleinden niet bevatten.

    Vervang in de volgende URL het volgende:

    • Vervang bijvoorbeeld door <databricks-instance> de naam van het Azure Databricks-werkruimte-exemplaaradb-1234567890123456.7.azuredatabricks.net.
    • Vervang <redirect-url> bijvoorbeeld door een omleidings-URL naar uw lokale computer http://localhost:8020.
    • Vervang <state> door een tekenreeks zonder opmaak die u kunt gebruiken om de integriteit van de autorisatiecode te verifiëren.
    • Vervang <code-challenge> door de codevraag die u in stap 1 hebt gegenereerd.
    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. Wanneer u hierom wordt gevraagd, volgt u de aanwijzingen op het scherm om u aan te melden bij uw Azure Databricks-werkruimte.

  3. Kopieer de autorisatiecode in de adresbalk van uw webbrowser. De autorisatiecode is de volledige tekenreeks tussen code= en het & teken in de URL. De autorisatiecode in de volgende URL is dcod...7fe6bijvoorbeeld:

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

    Controleer de integriteit van deze autorisatiecode door visueel te bevestigen dat de <state> waarde in deze antwoord-URL overeenkomt met de state waarde die u hebt opgegeven in uw aanvraag-URL. Als de waarden verschillen, moet u deze autorisatiecode niet gebruiken, omdat deze mogelijk wordt aangetast.

Stap 3: De autorisatiecode gebruiken om een OAuth-toegangstoken te genereren

U gebruikt de OAuth-autorisatiecode uit de vorige stap om als volgt een OAuth-toegangstoken voor Azure Databricks te genereren:

Een toegangstoken op accountniveau genereren

  1. Gebruik een client zoals curl de autorisatiecode op accountniveau om het OAuth-toegangstoken op accountniveau te genereren. Vervang in de volgende curl aanroep de volgende tijdelijke aanduidingen:

    • Vervang <account-id> door de account-id uit stap 2.
    • Vervang <redirect-url> door de omleidings-URL uit stap 2.
    • Vervang <code-verifier> door de codeverificator die u in stap 1 hebt gegenereerd.
    • Vervang door <authorization-code> de autorisatiecode op accountniveau die u hebt gegenereerd in stap 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. Kopieer in het antwoord het OAuth-toegangstoken op accountniveau. Het toegangstoken is de volledige tekenreeks in het access_token object. Het toegangstoken in het volgende antwoord is eyJr...Dkagbijvoorbeeld:

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

    Dit toegangstoken verloopt over één uur. Als u een nieuw toegangstoken wilt genereren, herhaalt u deze procedure uit stap 1.

  3. Ga verder met stap 4: Een Databricks REST API aanroepen.

Een toegangstoken op werkruimteniveau genereren

  1. Gebruik een client zoals curl de autorisatiecode op werkruimteniveau om het OAuth-toegangstoken op werkruimteniveau te genereren. Vervang in de volgende curl aanroep de volgende tijdelijke aanduidingen:

    • Vervang bijvoorbeeld door <databricks-instance> de naam van het Azure Databricks-werkruimte-exemplaaradb-1234567890123456.7.azuredatabricks.net.
    • Vervang <redirect-url> door de omleidings-URL uit stap 2.
    • Vervang <code-verifier> door de codeverificator die u in stap 1 hebt gegenereerd.
    • Vervang door <authorization-code> de autorisatiecode op werkruimteniveau die u hebt gegenereerd in stap 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. Kopieer in het antwoord het OAuth-toegangstoken op werkruimteniveau. Het toegangstoken is de volledige tekenreeks in het access_token object. Het toegangstoken in het volgende antwoord is eyJr...Dkagbijvoorbeeld:

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

    Dit toegangstoken verloopt over één uur. Als u een nieuw toegangstoken wilt genereren, herhaalt u deze procedure uit stap 1.

Stap 4: Een Databricks REST API aanroepen

U gebruikt het OAuth-toegangstoken op accountniveau of op werkruimteniveau om te verifiëren bij REST API's op accountniveau van Azure Databricks en REST API's op werkruimteniveau, afhankelijk van het bereik van het toegangstoken. Uw Azure Databricks-gebruikersaccount moet een accountbeheerder zijn om REST API's op accountniveau aan te roepen.

Voorbeeld van REST API-aanvraag op accountniveau

In dit voorbeeld wordt curl gebruikgemaakt van Bearer verificatie om een lijst op te halen met alle werkruimten die zijn gekoppeld aan een account.

  • Vervang <oauth-access-token> door het OAuth-toegangstoken op accountniveau.
  • Vervang door <account-id> uw account-id.
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"

Voorbeeld van REST API-aanvraag op werkruimteniveau

In dit voorbeeld wordt curl gebruikgemaakt van Bearer verificatie om alle beschikbare clusters in de opgegeven werkruimte weer te geven.

  • Vervang <oauth-access-token> dit door het OAuth-toegangstoken op account- of werkruimteniveau.
  • Vervang bijvoorbeeld door <databricks-instance> de naam van het Azure Databricks-werkruimte-exemplaaradb-1234567890123456.7.azuredatabricks.net.
export OAUTH_TOKEN=<oauth-access-token>

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