OAuth-autentisering från användare till dator (U2M)

OAuth-autentisering från användare till dator (U2M) använder mänsklig inloggning i realtid och medgivande för att autentisera azure Databricks-målanvändarkontot. När användaren har loggat in och samtyckt till OAuth-autentiseringsbegäran ges en OAuth-token till det deltagande verktyget eller SDK:n för att utföra tokenbaserad autentisering från och med den tiden framåt för användarens räkning. OAuth-token har en livslängd på en timme, varefter det aktuella verktyget eller SDK:n gör ett automatiskt bakgrundsförsök för att hämta en ny token som också är giltig i en timme.

För att konfigurera OAuth U2M-autentisering med Azure Databricks måste du ange följande associerade miljövariabler, .databrickscfg fält, Terraform-fält eller Config fält:

  • Azure Databricks-värden, som anges som https://accounts.azuredatabricks.net för kontoåtgärder eller mål-URL per arbetsyta, till exempel https://adb-1234567890123456.7.azuredatabricks.net för arbetsyteåtgärder.
  • Azure Databricks-konto-ID för Azure Databricks-kontoåtgärder.

Om du vill utföra OAuth U2M-autentisering med Azure Databricks integrerar du följande i koden baserat på det deltagande verktyget eller SDK:n. Observera att beroende på de Azure Databricks-åtgärder som koden anropar behöver du inte nödvändigtvis vara administratör för Azure Databricks-kontot:

Environment

Information om hur du använder miljövariabler för en specifik Azure Databricks-autentiseringstyp med ett verktyg eller SDK finns i autentiseringstyper som stöds av Azure Databricks-verktyget eller SDK eller verktygets eller SDK:s dokumentation. Se även Miljövariabler och fält för klient enhetlig autentisering och Standardordning för utvärdering för klient enhetliga autentiseringsmetoder och autentiseringsuppgifter.

För åtgärder på kontonivå anger du följande miljövariabler:

  • DATABRICKS_HOST, ange värdet för azure Databricks-kontokonsolens URL, https://accounts.azuredatabricks.net.
  • DATABRICKS_ACCOUNT_ID

För åtgärder på arbetsytans nivå anger du följande miljövariabler:

  • DATABRICKS_HOSTanger du värdet för din URL för Azure Databricks per arbetsyta, till exempel https://adb-1234567890123456.7.azuredatabricks.net.

Profil

Skapa eller identifiera en Azure Databricks-konfigurationsprofil med följande fält i .databrickscfg filen. Om du skapar profilen ersätter du platshållarna med lämpliga värden. Information om hur du använder profilen med ett verktyg eller SDK finns i autentiseringstyper som stöds av Azure Databricks-verktyget eller SDK eller verktygets eller SDK:s dokumentation. Se även Miljövariabler och fält för klient enhetlig autentisering och Standardordning för utvärdering för klient enhetliga autentiseringsmetoder och autentiseringsuppgifter.

För åtgärder på kontonivå anger du följande värden i .databrickscfg filen. I det här fallet är https://accounts.azuredatabricks.netAzure Databricks-kontokonsolens URL:

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

För åtgärder på arbetsytenivå anger du följande värden i .databrickscfg filen. I det här fallet är värden URL:en för Azure Databricks per arbetsyta, till exempel https://adb-1234567890123456.7.azuredatabricks.net:

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

Cli

För Databricks CLI kör du databricks auth login kommandot med följande alternativ:

  • För Azure Databricks-åtgärder på kontonivå, --host <account-console-url> --account-id <account-id>.
  • För åtgärder på Azure Databricks-arbetsytenivå, --host <workspace-url>.

När du har kört det här kommandot följer du anvisningarna i webbläsaren för att logga in på ditt Azure Databricks-konto eller din arbetsyta.

Mer information finns i OAuth-autentisering från användare till dator (U2M).

Anslut

Kommentar

OAuth U2M-autentisering stöds i följande Databricks-Anslut versioner:

  • För Python Anslut Databricks För Databricks Runtime 13.1 och senare.
  • För Scala Anslut Databricks Runtime 13.3 LTS och senare.

För Databricks Anslut kan du göra något av följande:

  • Ange värdena i .databrickscfg filen för åtgärder på Azure Databricks-arbetsytenivå enligt beskrivningen i den här artikelns avsnitt "Profil". Ange cluster_id även miljövariabeln i din profil till url:en per arbetsyta, till exempel https://adb-1234567890123456.7.azuredatabricks.net.
  • Ange miljövariablerna för åtgärder på Azure Databricks-arbetsytenivå enligt beskrivningen i den här artikelns "Miljö"-avsnitt. Ange DATABRICKS_CLUSTER_ID även miljövariabeln till url:en per arbetsyta, till exempel https://adb-1234567890123456.7.azuredatabricks.net.

Värden i .databrickscfg filen har alltid företräde framför miljövariabler.

Information om hur du initierar Databricks Anslut-klienten med dessa miljövariabler eller värden i filen finns i .databrickscfg något av följande:

Jämfört med kod

Gör följande för Databricks-tillägget för Visual Studio Code:

  1. I fönstret Konfiguration klickar du på Konfigurera Databricks.
  2. I kommandopaletten för Databricks Host anger du url:en per arbetsyta, till exempel https://adb-1234567890123456.7.azuredatabricks.netoch trycker sedan på Enter.
  3. Välj OAuth (användare till dator).
  4. Slutför autentisera med ditt Azure Databricks-konto och ge åtkomst till alla API:er genom att följa anvisningarna på skärmen i webbläsaren.

Mer information finns i Konfigurera OAuth U2M-autentisering.

Terraform

Kommentar

OAuth U2M-autentisering stöds ännu inte.

Python

För åtgärder på kontonivå bör du först använda Databricks CLI för att köra följande kommando innan du kör Python-koden. Det här kommandot instruerar Databricks CLI att generera och cachelagras nödvändig OAuth-token i sökvägen .databricks/token-cache.json i användarens hemmapp på datorn:

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

Ersätt följande platshållare:

  • Ersätt <account-console-url> med värdet https://accounts.azuredatabricks.net. (Ange inte värdet för url:en för din Azure Databricks-arbetsyta.)
  • Ersätt <account-id> med värdet för ditt Azure Databricks-konto. Se Hitta ditt konto-ID.

Kommentar

Om du har en befintlig Azure Databricks-konfigurationsprofil med fälten host och account_id redan har angetts kan du ersätta --host <account-console-url> --account-id <account-id> med --profile <profile-name>.

När du har kört auth login kommandot uppmanas du att spara kontots inloggnings-URL och konto-ID som en Azure Databricks-konfigurationsprofil. När du uppmanas till det anger du namnet på en ny eller befintlig profil i .databrickscfg filen. Alla befintliga profiler med samma namn i .databrickscfg filen skrivs över.

Om du uppmanas att göra det slutför du webbläsarens instruktioner på skärmen för att slutföra inloggningen. Använd sedan Python-kod som liknar något av följande kodfragment:

För standardautentisering:

from databricks.sdk import AccountClient

a = AccountClient()
# ...

För direkt konfiguration (ersätt retrieve platshållarna med din egen implementering för att hämta värdena från konsolen eller något annat konfigurationsarkiv, till exempel Azure KeyVault). I det här fallet är https://accounts.azuredatabricks.netAzure Databricks-kontokonsolens URL:

from databricks.sdk import AccountClient

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

För åtgärder på arbetsytenivå bör du först använda Databricks CLI för att köra följande kommando innan du kör Python-koden. Det här kommandot instruerar Databricks CLI att generera och cachelagras nödvändig OAuth-token i sökvägen .databricks/token-cache.json i användarens hemmapp på datorn:

databricks auth login --host <worskpace-url>

Ersätt platshållaren <workspace-url> med mål-URL:en för Azure Databricks per arbetsyta, till exempel https://adb-1234567890123456.7.azuredatabricks.net.

Kommentar

Om du har en befintlig Azure Databricks-konfigurationsprofil med fältet host redan inställt kan du ersätta --host <workspace-url> med --profile <profile-name>.

När du kör auth login kommandot uppmanas du att spara arbetsytans URL som en Azure Databricks-konfigurationsprofil. När du uppmanas till det anger du namnet på en ny eller befintlig profil i .databrickscfg filen. Alla befintliga profiler med samma namn i .databrickscfg filen skrivs över.

Om du uppmanas att göra det slutför du webbläsarens instruktioner på skärmen för att slutföra inloggningen. Använd sedan Python-kod som liknar något av följande kodfragment:

För standardautentisering:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

För direkt konfiguration (ersätt retrieve platshållarna med din egen implementering för att hämta värdena från konsolen eller något annat konfigurationsarkiv, till exempel Azure KeyVault). I det här fallet är värden URL:en för Azure Databricks per arbetsyta, till exempel https://adb-1234567890123456.7.azuredatabricks.net:

from databricks.sdk import WorkspaceClient

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

Mer information om autentisering med Databricks-verktyg och SDK:er som använder Python och som implementerar enhetlig autentisering med Databricks-klienten finns i:

Java

För åtgärder på kontonivå bör du först använda Databricks CLI för att köra följande kommando innan du kör Java-koden. Det här kommandot instruerar Databricks CLI att generera och cachelagras nödvändig OAuth-token i sökvägen .databricks/token-cache.json i användarens hemmapp på datorn:

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

Ersätt följande platshållare:

  • Ersätt <account-console-url> med värdet https://accounts.azuredatabricks.net. (Ange inte värdet för url:en för din Azure Databricks-arbetsyta.)
  • Ersätt <account-id> med värdet för ditt Azure Databricks-konto. Se Hitta ditt konto-ID.

Kommentar

Om du har en befintlig Azure Databricks-konfigurationsprofil med fälten host och account_id redan har angetts kan du ersätta --host <account-console-url> --account-id <account-id> med --profile <profile-name>.

När du har kört auth login kommandot uppmanas du att spara kontots inloggnings-URL och konto-ID som en Azure Databricks-konfigurationsprofil. När du uppmanas till det anger du namnet på en ny eller befintlig profil i .databrickscfg filen. Alla befintliga profiler med samma namn i .databrickscfg filen skrivs över.

Om du uppmanas att göra det slutför du webbläsarens instruktioner på skärmen för att slutföra inloggningen. Använd sedan Java-kod som liknar något av följande kodfragment:

För standardautentisering:

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

För direkt konfiguration (ersätt retrieve platshållarna med din egen implementering för att hämta värdena från konsolen eller något annat konfigurationsarkiv, till exempel Azure KeyVault). I det här fallet är https://accounts.azuredatabricks.netAzure Databricks-kontokonsolens URL:

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

För åtgärder på arbetsytenivå bör du först använda Databricks CLI för att köra följande kommando innan du kör Java-koden. Det här kommandot instruerar Databricks CLI att generera och cachelagras nödvändig OAuth-token i sökvägen .databricks/token-cache.json i användarens hemmapp på datorn:

databricks auth login --host <worskpace-url>

Ersätt platshållaren <workspace-url> med mål-URL:en för Azure Databricks per arbetsyta, till exempel https://adb-1234567890123456.7.azuredatabricks.net.

Kommentar

Om du har en befintlig Azure Databricks-konfigurationsprofil med fältet host redan inställt kan du ersätta --host <workspace-url> med --profile <profile-name>.

När du har kört auth login kommandot uppmanas du att spara arbetsytans URL som en Azure Databricks-konfigurationsprofil. När du uppmanas till det anger du namnet på en ny eller befintlig profil i .databrickscfg filen. Alla befintliga profiler med samma namn i .databrickscfg filen skrivs över.

Om du uppmanas att göra det slutför du webbläsarens instruktioner på skärmen för att slutföra inloggningen. Använd sedan Java-kod som liknar något av följande kodfragment:

För standardautentisering:

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

För direkt konfiguration (ersätt retrieve platshållarna med din egen implementering för att hämta värdena från konsolen eller något annat konfigurationsarkiv, till exempel Azure KeyVault). I det här fallet är värden URL:en för Azure Databricks per arbetsyta, till exempel 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);
// ...

Mer information om autentisering med Databricks-verktyg och SDK:er som använder Java och som implementerar enhetlig autentisering för Databricks-klienten finns i:

Go

För åtgärder på kontonivå bör du först använda Databricks CLI för att köra följande kommando innan du kör Go-koden. Det här kommandot instruerar Databricks CLI att generera och cachelagras nödvändig OAuth-token i sökvägen .databricks/token-cache.json i användarens hemmapp på datorn:

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

Ersätt följande platshållare:

  • Ersätt <account-console-url> med värdet https://accounts.azuredatabricks.net. (Ange inte värdet för url:en för din Azure Databricks-arbetsyta.)
  • Ersätt <account-id> med värdet för ditt Azure Databricks-konto. Se Hitta ditt konto-ID.

Kommentar

Om du har en befintlig Azure Databricks-konfigurationsprofil med fälten host och account_id redan har angetts kan du ersätta --host <account-console-url> --account-id <account-id> med --profile <profile-name>.

När du har kört auth login kommandot uppmanas du att spara kontots inloggnings-URL och konto-ID som en Azure Databricks-konfigurationsprofil. När du uppmanas till det anger du namnet på en ny eller befintlig profil i .databrickscfg filen. Alla befintliga profiler med samma namn i .databrickscfg filen skrivs över.

Om du uppmanas att göra det slutför du webbläsarens instruktioner på skärmen för att slutföra inloggningen. Använd sedan Go-kod som liknar något av följande kodfragment:

För standardautentisering:

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

För direkt konfiguration (ersätt retrieve platshållarna med din egen implementering för att hämta värdena från konsolen eller något annat konfigurationsarkiv, till exempel Azure KeyVault). I det här fallet är https://accounts.azuredatabricks.netAzure Databricks-kontokonsolens URL:

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

För åtgärder på arbetsytenivå bör du först använda Databricks CLI för att köra följande kommando innan du kör Go-koden. Det här kommandot instruerar Databricks CLI att generera och cachelagras nödvändig OAuth-token i sökvägen .databricks/token-cache.json i användarens hemmapp på datorn:

databricks auth login --host <worskpace-url>

Ersätt platshållaren <workspace-url> med mål-URL:en för Azure Databricks per arbetsyta, till exempel https://adb-1234567890123456.7.azuredatabricks.net.

Kommentar

Om du har en befintlig Azure Databricks-konfigurationsprofil med fältet host redan inställt kan du ersätta --host <workspace-url> med --profile <profile-name>.

När du har kört auth login kommandot uppmanas du att spara arbetsytans URL som en Azure Databricks-konfigurationsprofil. När du uppmanas till det anger du namnet på en ny eller befintlig profil i .databrickscfg filen. Alla befintliga profiler med samma namn i .databrickscfg filen skrivs över.

Om du uppmanas att göra det slutför du webbläsarens instruktioner på skärmen för att slutföra inloggningen. Använd sedan Go-kod som liknar något av följande kodfragment:

För standardautentisering:

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

För direkt konfiguration (ersätt retrieve platshållarna med din egen implementering för att hämta värdena från konsolen eller något annat konfigurationsarkiv, till exempel Azure KeyVault). I det här fallet är värden URL:en för Azure Databricks per arbetsyta, till exempel https://adb-1234567890123456.7.azuredatabricks.net:

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

Mer information om autentisering med Databricks-verktyg och SDK:er som använder Go och som implementerar enhetlig autentisering för Databricks-klienten finns i Autentisera Databricks SDK för Go med ditt Azure Databricks-konto eller din arbetsyta.

Generera och använda åtkomsttoken manuellt för OAuth-autentisering från användare till dator (U2M)

Azure Databricks-verktyg och SDK:er som implementerar Databricks-klientens enhetliga autentiseringsstandard genererar, uppdaterar och använder åtkomsttoken för Azure Databricks OAuth åt dig efter behov för OAuth U2M-autentisering.

Om du av någon anledning måste generera, uppdatera eller använda Azure Databricks OAuth-åtkomsttoken för OAuth U2M-autentisering manuellt följer du anvisningarna i det här avsnittet.

Steg 1: Generera ett OAuth-kodverifierare och kodutmaningspar

Om du vill generera och använda åtkomsttoken manuellt för OAuth U2M-autentisering måste du först ha en OAuth-kodverifierare och en OAuth-kodutmaning som härleds från kodverifieraren. Du använder kodutmaningen senare i steg 2 för att generera en OAuth-auktoriseringskod. Du använder kodverifieraren och auktoriseringskoden senare i steg 3 för att generera OAuth-åtkomsttoken.

Kommentar

Det är tekniskt möjligt att använda okodade okodade okodade textsträngar för kodverifieraren och kodutmaningen, men Databricks rekommenderar starkt att du följer OAuth-standarden för att generera kodverifieraren och kodutmaningen i stället.

Mer specifikt bör kodverifieraren vara en kryptografiskt slumpmässig sträng med tecken från uppsättningarna A-Z, a-z, 0-9och skiljetecken -._~ (bindestreck, punkt, understreck och tilde), mellan 43 och 128 tecken långa. Koduppgiften ska vara en Base64-URL-kodad sträng i SHA256-hashen för kodverifieraren. Mer information finns i Auktoriseringsbegäran.

Du kan köra följande Python-skript för att snabbt generera ett unikt kodverifierare och kodutmaningspar. Även om du kan återanvända den här genererade kodverifieraren och kodutmaningsparet flera gånger rekommenderar Databricks att du genererar en ny kodverifierare och kodutmaningspar varje gång du manuellt genererar åtkomsttoken för OAuth U2M-autentisering.

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

Steg 2: Generera en auktoriseringskod

Du använder en OAuth-auktoriseringskod för att generera en Azure Databricks OAuth-åtkomsttoken. Auktoriseringskoden upphör omedelbart efter att du har använt den för att generera en Azure Databricks OAuth-åtkomsttoken. Omfånget för auktoriseringskoden beror på vilken nivå du genererar den från. Du kan generera en auktoriseringskod på antingen Azure Databricks-kontonivå eller arbetsytenivå på följande sätt:

Generera en auktoriseringskod på kontonivå

  1. Logga in på kontokonsolen som kontoadministratör.

  2. Klicka på nedåtpilen bredvid ditt användarnamn i det övre högra hörnet.

  3. Kopiera ditt konto-ID.

  4. I webbläsarens adressfält bläddrar du till följande URL. Radbrytningar har lagts till för läsbarhet. Url:en får inte innehålla dessa radbrytningar.

    Ersätt följande i följande URL:

    • Ersätt <account-id> med det konto-ID som du kopierade.
    • Ersätt <redirect-url> med en omdirigerings-URL till den lokala datorn, till exempel http://localhost:8020.
    • Ersätt <state> med en sträng med oformaterad text som du kan använda för att verifiera auktoriseringskodens integritet.
    • Ersätt <code-challenge> med den koduppgift som du genererade i steg 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. När du uppmanas att göra det följer du anvisningarna på skärmen för att logga in på ditt Azure Databricks-konto.

  6. Kopiera auktoriseringskoden i webbläsarens adressfält. Auktoriseringskoden är den fullständiga strängen & med tecken mellan code= och tecknet i URL:en. Auktoriseringskoden i följande URL är dcod...7fe6till exempel :

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

    Du bör kontrollera integriteten för den här auktoriseringskoden genom att visuellt bekräfta att <state> värdet i den här svars-URL:en matchar det state värde som du angav i din begärande-URL. Om värdena skiljer sig bör du inte använda den här auktoriseringskoden eftersom den kan komprometteras.

  7. Gå vidare till Generera en åtkomsttoken på kontonivå.

Generera en auktoriseringskod på arbetsytenivå

  1. I webbläsarens adressfält bläddrar du till följande URL. Radbrytningar har lagts till för läsbarhet. Url:en får inte innehålla dessa radbrytningar.

    Ersätt följande i följande URL:

    • Ersätt <databricks-instance> med instansnamnet för Azure Databricks-arbetsytan, till exempel adb-1234567890123456.7.azuredatabricks.net.
    • Ersätt <redirect-url> med en omdirigerings-URL till den lokala datorn, till exempel http://localhost:8020.
    • Ersätt <state> med en sträng med oformaterad text som du kan använda för att verifiera auktoriseringskodens integritet.
    • Ersätt <code-challenge> med den koduppgift som du genererade i steg 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. När du uppmanas att göra det följer du anvisningarna på skärmen för att logga in på din Azure Databricks-arbetsyta.

  3. Kopiera auktoriseringskoden i webbläsarens adressfält. Auktoriseringskoden är den fullständiga strängen & med tecken mellan code= och tecknet i URL:en. Auktoriseringskoden i följande URL är dcod...7fe6till exempel :

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

    Du bör kontrollera integriteten för den här auktoriseringskoden genom att visuellt bekräfta att <state> värdet i den här svars-URL:en matchar det state värde som du angav i din begärande-URL. Om värdena skiljer sig bör du inte använda den här auktoriseringskoden eftersom den kan komprometteras.

Steg 3: Använd auktoriseringskoden för att generera en OAuth-åtkomsttoken

Du använder OAuth-auktoriseringskoden från föregående steg för att generera en Azure Databricks OAuth-åtkomsttoken på följande sätt:

  • Om du vill anropa REST-API:er på kontonivå och arbetsytenivå i konton och arbetsytor som ditt Azure Databricks-användarkonto har åtkomst till använder du auktoriseringskoden på kontonivå för att generera en åtkomsttoken på kontonivå.
  • Om du bara vill anropa REST-API:er på en arbetsyta som ditt användarkonto har åtkomst till kan du använda auktoriseringskoden på arbetsytans nivå för att generera en åtkomsttoken på arbetsytans nivå för endast den arbetsytan.

Generera en åtkomsttoken på kontonivå

  1. Använd en klient, till exempel curl tillsammans med auktoriseringskoden på kontonivå för att generera OAuth-åtkomsttoken på kontonivå. Ersätt följande platshållare i följande curl anrop:

    • Ersätt <account-id> med konto-ID från steg 2.
    • Ersätt <redirect-url> med omdirigerings-URL:en från steg 2.
    • Ersätt <code-verifier> med kodverifieraren som du genererade i steg 1.
    • Ersätt <authorization-code> med auktoriseringskoden på kontonivå som du genererade i steg 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. I svaret kopierar du OAuth-åtkomsttoken på kontonivå. Åtkomsttoken är den fullständiga strängen access_token med tecken i objektet. Åtkomsttoken i följande svar är eyJr...Dkagtill exempel :

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

    Den här åtkomsttoken upphör att gälla om en timme. Om du vill generera en ny åtkomsttoken upprepar du den här proceduren från steg 1.

  3. Gå vidare till Steg 4: Anropa ett Databricks REST API.

Generera en åtkomsttoken på arbetsytenivå

  1. Använd en klient, till exempel curl tillsammans med auktoriseringskoden på arbetsytans nivå för att generera OAuth-åtkomsttoken på arbetsytenivå. Ersätt följande platshållare i följande curl anrop:

    • Ersätt <databricks-instance> med instansnamnet för Azure Databricks-arbetsytan, till exempel adb-1234567890123456.7.azuredatabricks.net.
    • Ersätt <redirect-url> med omdirigerings-URL:en från steg 2.
    • Ersätt <code-verifier> med kodverifieraren som du genererade i steg 1.
    • Ersätt <authorization-code> med auktoriseringskoden på arbetsytan som du genererade i steg 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. I svaret kopierar du OAuth-åtkomsttoken på arbetsytenivå. Åtkomsttoken är den fullständiga strängen access_token med tecken i objektet. Åtkomsttoken i följande svar är eyJr...Dkagtill exempel :

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

    Den här åtkomsttoken upphör att gälla om en timme. Om du vill generera en ny åtkomsttoken upprepar du den här proceduren från steg 1.

Steg 4: Anropa ett Databricks REST API

Du använder OAuth-åtkomsttoken på kontonivå eller arbetsytenivå för att autentisera till REST-API:er på Azure Databricks-kontonivå och REST-API:er på arbetsytenivå, beroende på åtkomsttokens omfång. Ditt Azure Databricks-användarkonto måste vara kontoadministratör för att anropa REST-API:er på kontonivå.

Exempel på REST API-begäran på kontonivå

Det här exemplet använder curl tillsammans med Bearer autentisering för att hämta en lista över alla arbetsytor som är associerade med ett konto.

  • Ersätt <oauth-access-token> med OAuth-åtkomsttoken på kontonivå.
  • Ersätt <account-id> med ditt konto-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"

Exempel på REST API-begäran på arbetsytenivå

Det här exemplet använder curl tillsammans med Bearer autentisering för att lista alla tillgängliga kluster på den angivna arbetsytan.

  • Ersätt <oauth-access-token> med OAuth-åtkomsttoken på kontonivå eller arbetsytenivå.
  • Ersätt <databricks-instance> med instansnamnet för Azure Databricks-arbetsytan, till exempel adb-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"