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-URLhttps://adb-1234567890123456.7.azuredatabricks.net
per 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.net
de 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:
- Voor bewerkingen op azure Databricks-accountniveau,
--host <account-console-url> --account-id <account-id>
. - Voor bewerkingen op werkruimteniveau op Azure Databricks.
--host <workspace-url>
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 decluster_id
omgevingsvariabele in uw profiel in op uw URL per werkruimte, bijvoorbeeldhttps://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, bijvoorbeeldhttps://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:
- Klik in het deelvenster Configuratie op Databricks configureren.
- Voer in het opdrachtenpalet voor Databricks Host uw URL per werkruimte in, bijvoorbeeld
https://adb-1234567890123456.7.azuredatabricks.net
en drukEnter
op . - Selecteer OAuth (gebruiker naar computer).
- 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 waardehttps://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.net
de 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:
- De Databricks Connect-client instellen voor Python
- Verificatie-instelling voor de Databricks-extensie voor Visual Studio Code
- De Databricks SDK voor Python verifiëren met uw Azure Databricks-account of -werkruimte
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 waardehttps://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.net
de 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:
- De Databricks Connect-client voor Scala instellen (de Databricks Connect-client voor Scala maakt gebruik van de meegeleverde Databricks SDK voor Java voor verificatie)
- De Databricks SDK voor Java verifiëren met uw Azure Databricks-account of -werkruimte
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 waardehttps://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.net
de 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-z
en 0-9
de 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:
- Als u REST API's op account- en werkruimteniveau wilt aanroepen binnen accounts en werkruimten waartoe uw Azure Databricks-gebruikersaccount toegang heeft, genereert u een autorisatiecode op accountniveau.
- Als u REST API's wilt aanroepen binnen slechts één werkruimte waartoe uw gebruikersaccount toegang heeft, kunt u een autorisatiecode genereren op werkruimteniveau voor alleen die werkruimte.
Een autorisatiecode op accountniveau genereren
Meld u als accountbeheerder aan bij de accountconsole.
Klik op de pijl-omlaag naast uw gebruikersnaam in de rechterbovenhoek.
Kopieer uw account-id.
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 computerhttp://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
- Vervang door
Wanneer u hierom wordt gevraagd, volgt u de aanwijzingen op het scherm om u aan te melden bij uw Azure Databricks-account.
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 isdcod...7fe6
bijvoorbeeld: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 destate
waarde die u hebt opgegeven in uw aanvraag-URL. Als de waarden verschillen, moet u deze autorisatiecode niet gebruiken, omdat deze mogelijk wordt aangetast.Ga verder met het genereren van een toegangstoken op accountniveau.
Een autorisatiecode op werkruimteniveau genereren
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 computerhttp://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
- Vervang bijvoorbeeld door
Wanneer u hierom wordt gevraagd, volgt u de aanwijzingen op het scherm om u aan te melden bij uw Azure Databricks-werkruimte.
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 isdcod...7fe6
bijvoorbeeld: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 destate
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:
- Als u REST API's op account- en werkruimteniveau wilt aanroepen binnen accounts en werkruimten waartoe uw Azure Databricks-gebruikersaccount toegang heeft, gebruikt u de autorisatiecode op accountniveau om een toegangstoken op accountniveau te genereren.
- Als u REST API's wilt aanroepen binnen slechts één werkruimte waartoe uw gebruikersaccount toegang heeft, kunt u de autorisatiecode op werkruimteniveau gebruiken om een toegangstoken te genereren op werkruimteniveau voor alleen die werkruimte.
Een toegangstoken op accountniveau genereren
Gebruik een client zoals
curl
de autorisatiecode op accountniveau om het OAuth-toegangstoken op accountniveau te genereren. Vervang in de volgendecurl
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>"
- Vervang
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 iseyJr...Dkag
bijvoorbeeld:{ "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.
Ga verder met stap 4: Een Databricks REST API aanroepen.
Een toegangstoken op werkruimteniveau genereren
Gebruik een client zoals
curl
de autorisatiecode op werkruimteniveau om het OAuth-toegangstoken op werkruimteniveau te genereren. Vervang in de volgendecurl
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>"
- Vervang bijvoorbeeld door
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 iseyJr...Dkag
bijvoorbeeld:{ "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"