OAuth-autentisering från dator till dator (M2M)

OAuth-autentisering från dator till dator (M2M) använder autentiseringsuppgifterna för en automatiserad entitet (i det här fallet ett Azure Databricks-hanterat tjänsthuvudnamn eller ett Microsoft Entra-ID (tidigare Azure Active Directory) hanterat tjänsthuvudnamn) för att autentisera målentiteten.

När Azure Databricks har autentiserat måltjänstens huvudnamn via OAuth M2M-autentiseringsbegäran ges en Azure Databricks OAuth-token till det deltagande verktyget eller SDK:n för att utföra tokenbaserad autentisering från och med den tidpunkten för tjänstens huvudnamn. Azure Databricks OAuth-token har en livslängd på en timme, varefter 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.

Gör följande för att börja konfigurera OAuth M2M-autentisering:

Kommentar

Du måste vara azure databricks-kontoadministratör för att hantera autentiseringsuppgifter för Azure Databricks OAuth för tjänstens huvudnamn.

Steg 1: Skapa ett Microsoft Entra ID-tjänsthuvudnamn i ditt Azure-konto

Slutför det här steget om du vill länka ett Microsoft Entra ID-tjänsthuvudnamn till ditt Azure Databricks-konto, din arbetsyta eller både och. Annars går du vidare till steg 2.

  1. Logga in på Azure-portalen.

    Kommentar

    Portalen som ska användas skiljer sig beroende på om ditt Microsoft Entra-ID (tidigare Azure Active Directory) körs i det offentliga Azure-molnet eller i ett nationellt eller nationellt moln. Mer information finns i Nationella moln.

  2. Om du har åtkomst till flera klienter, prenumerationer eller kataloger klickar du på ikonen Kataloger + prenumerationer (katalog med filter) på den översta menyn för att växla till den katalog där du vill etablera tjänstens huvudnamn.

  3. I Sök efter resurser, tjänster och dokument söker du efter och väljer Microsoft Entra-ID.

  4. Klicka på + Lägg till och välj Appregistrering.

  5. Som Namn anger du ett namn för programmet.

  6. I avsnittet Kontotyper som stöds väljer du Endast konton i den här organisationskatalogen (enskild klient).

  7. Klicka på Registrera.

  8. På programsidans översiktssida i avsnittet Essentials kopierar du följande värden:

    • Program-ID (klient)-ID
    • Katalog-ID (klientorganisation)

    Översikt över Azure-registrerad app

  9. Om du vill generera en klienthemlighet klickar du på Certifikat och hemligheter i Hantera.

    Kommentar

    Du använder den här klienthemligheten för att generera Microsoft Entra-ID-token för autentisering av Tjänstens huvudnamn för Microsoft Entra med Azure Databricks. Information om huruvida ett Azure Databricks-verktyg eller SDK kan använda Microsoft Entra-ID-token finns i verktygets eller SDK:s dokumentation.

  10. På fliken Klienthemligheter klickar du på Ny klienthemlighet.

    Ny klienthemlighet

  11. I fönstret Lägg till en klienthemlighet för Beskrivning anger du en beskrivning för klienthemligheten.

  12. För Upphör att gälla väljer du en giltighetstid för klienthemligheten och klickar sedan på Lägg till.

  13. Kopiera och lagra klienthemlighetens värde på en säker plats, eftersom den här klienthemligheten är lösenordet för ditt program.

Steg 2: Lägga till ett huvudnamn för tjänsten i ditt Azure Databricks-konto

Det här steget fungerar bara om din Azure Databricks-målarbetsyta är aktiverad för identitetsfederation. Om din arbetsyta inte är aktiverad för identitetsfederation går du vidare till steg 3.

  1. På din Azure Databricks-arbetsyta klickar du på ditt användarnamn i det övre fältet och klickar på Hantera konto.

    Du kan också gå direkt till Azure Databricks-kontokonsolen på https://accounts.azuredatabricks.net.

  2. Logga in på ditt Azure Databricks-konto om du uppmanas att göra det.

  3. Klicka på Användarhantering i sidofältet.

  4. Klicka på fliken Tjänstens huvudnamn.

  5. Klicka på Lägg till tjänstens huvudnamn.

  6. Under Hantering väljer du Hanterat Databricks eller Microsoft Entra-ID som hanteras.

  7. Om du väljer Microsoft Entra-ID som hanteras klistrar du in programmets (klient)-ID-värdet från steg 1 under Microsoft Entra-program-ID.

  8. Ange ett namn för tjänstens huvudnamn.

  9. Klicka på Lägg till.

  10. (Valfritt) Tilldela behörigheter på kontonivå till tjänstens huvudnamn:

    1. På fliken Tjänsthuvudnamn klickar du på namnet på tjänstens huvudnamn.
    2. På fliken Roller växlar du till att aktivera eller inaktivera varje målroll som du vill att tjänstens huvudnamn ska ha.
    3. På fliken Behörigheter beviljar du åtkomst till alla Azure Databricks-användare, tjänsthuvudnamn och kontogrupproller som du vill hantera och använda tjänstens huvudnamn. Se Hantera roller på ett huvudnamn för tjänsten.

Steg 3: Lägg till tjänstens huvudnamn på din Azure Databricks-arbetsyta

Om din arbetsyta är aktiverad för identitetsfederation:

  1. I din Azure Databricks-arbetsyta klickar du på ditt användarnamn i det övre fältet och klickar på Inställningar.
  2. Klicka på fliken Identitet och åtkomst .
  3. Bredvid Tjänstens huvudnamn klickar du på Hantera.
  4. Klicka på Lägg till tjänstens huvudnamn.
  5. Välj tjänstens huvudnamn från steg 2 och klicka på Lägg till.

Gå vidare till steg 4.

Om din arbetsyta inte är aktiverad för identitetsfederation:

  1. I din Azure Databricks-arbetsyta klickar du på ditt användarnamn i det övre fältet och klickar på Inställningar.
  2. Klicka på fliken Identitet och åtkomst .
  3. Bredvid Tjänstens huvudnamn klickar du på Hantera.
  4. Klicka på Lägg till tjänstens huvudnamn.
  5. Klicka på lägg till ny.
  6. Under Hantering väljer du Hanterat Databricks eller Microsoft Entra-ID som hanteras.
  7. Om du väljer Microsoft Entra-ID som hanteras klistrar du in programmets (klient)-ID-värdet från steg 1 under Microsoft Entra-program-ID.
  8. Ange ett visningsnamn för det nya tjänstens huvudnamn och klicka på Lägg till.

Steg 4: Tilldela behörigheter på arbetsytenivå till tjänstens huvudnamn

  1. Om administratörskonsolen för arbetsytan inte redan har öppnats klickar du på ditt användarnamn i det övre fältet och klickar på Inställningar.
  2. Klicka på fliken Identitet och åtkomst .
  3. Bredvid Tjänstens huvudnamn klickar du på Hantera.
  4. Klicka på namnet på tjänstens huvudnamn för att öppna sidan inställningar.
  5. På fliken Konfigurationer markerar du kryssrutan bredvid varje berättigande som du vill att tjänstens huvudnamn ska ha för den här arbetsytan och klickar sedan på Uppdatera.
  6. På fliken Behörigheter beviljar du åtkomst till alla Azure Databricks-användare, tjänsthuvudnamn och grupper som du vill hantera och använda tjänstens huvudnamn. Se Hantera roller på ett huvudnamn för tjänsten.

Steg 5: Skapa en Azure Databricks OAuth-hemlighet för tjänstens huvudnamn

Innan du kan använda OAuth för att autentisera till Azure Databricks måste du först skapa en OAuth-hemlighet som kan användas för att generera OAuth-åtkomsttoken. Ett huvudnamn för tjänsten kan ha upp till fem OAuth-hemligheter. Så här skapar du en OAuth-hemlighet för tjänstens huvudnamn med hjälp av kontokonsolen:

  1. Logga in på Azure Databricks-kontokonsolen på https://accounts.azuredatabricks.net.
  2. Logga in på ditt Azure Databricks-konto om du uppmanas att göra det.
  3. Klicka på Användarhantering i sidofältet.
  4. Klicka på fliken Tjänstens huvudnamn.
  5. Klicka på namnet på tjänstens huvudnamn.
  6. I avsnittet OAuth-hemligheter på fliken Huvudnamnsinformation klickar du på Generera hemlighet.
  7. I dialogrutan Generera hemlighet kopierar och lagrar du värdet Hemlighet på en säker plats, eftersom den här OAuth-hemligheten är lösenordet för tjänstens huvudnamn.
  8. Klicka på Klart.

Kommentar

För att tjänstens huvudnamn ska kunna använda kluster eller SQL-lager måste du ge tjänstens huvudnamn åtkomst till dem. Se Beräkningsbehörigheter eller Hantera ett SQL-lager.

Slutför konfigurationen av OAuth M2M-autentisering

För att slutföra konfigurationen av OAuth M2M-autentisering 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.
  • Klient-ID för tjänstens huvudnamn.
  • Tjänstens huvudhemlighet.

Om du vill utföra OAuth M2M-autentisering integrerar du följande i koden baserat på det deltagande verktyget eller SDK:n:

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 till Azure Databricks-kontokonsolens URL, https://accounts.azuredatabricks.net.
  • DATABRICKS_ACCOUNT_ID
  • DATABRICKS_CLIENT_ID
  • DATABRICKS_CLIENT_SECRET

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

  • DATABRICKS_HOSTanger du till URL:en för Azure Databricks per arbetsyta, till exempel https://adb-1234567890123456.7.azuredatabricks.net.
  • DATABRICKS_CLIENT_ID
  • DATABRICKS_CLIENT_SECRET

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>
client_id     = <service-principal-client-id>
client_secret = <service-principal-secret>

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>
client_id     = <service-principal-client-id>
client_secret = <service-principal-secret>

Cli

Gör något av följande för Databricks CLI:

  • Ange miljövariablerna enligt beskrivningen i avsnittet "Miljö".
  • Ange värdena i .databrickscfg filen enligt beskrivningen i avsnittet Profil i den här artikeln.

Miljövariabler har alltid företräde framför värden i filen .databrickscfg .

Se även OAuth-autentisering från dator till dator (M2M).

Anslut

Kommentar

OAuth M2M-autentisering stöds på följande Databricks-Anslut versioner:

  • För Python Anslut Databricks Runtime 14.0 och senare för Databricks.
  • För Scala Anslut Databricks Runtime 13.3 LTS och senare. Databricks SDK för Java som ingår i Databricks Anslut för Databricks Runtime 13.3 LTS och senare måste uppgraderas till Databricks SDK för Java 0.17.0 eller 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. Ange värdena i .databrickscfg filen för åtgärder på Azure Databricks-arbetsytenivå enligt beskrivningen i den här artikelns avsnitt "Profil".
  2. I fönstret Konfiguration i Databricks-tillägget för Visual Studio Code klickar du på Konfigurera Databricks.
  3. I kommandopaletten för Databricks Host anger du url:en per arbetsyta, till exempel https://adb-1234567890123456.7.azuredatabricks.netoch trycker sedan på Enter.
  4. I kommandopaletten väljer du målprofilens namn i listan för din URL.

Mer information finns i Autentiseringskonfiguration för Databricks-tillägget för VS Code.

Terraform

För åtgärder på kontonivå för standardautentisering:

provider "databricks" {
  alias = "accounts"
}

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 HashiCorp Vault. Se även Valvprovider). I det här fallet är https://accounts.azuredatabricks.netAzure Databricks-kontokonsolens URL:

provider "databricks" {
  alias         = "accounts"
  host          = <retrieve-account-console-url>
  account_id    = <retrieve-account-id>
  client_id     = <retrieve-client-id>
  client_secret = <retrieve-client-secret>
}

För åtgärder på arbetsytenivå för standardautentisering:

provider "databricks" {
  alias = "workspace"
}

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 HashiCorp Vault. Se även Valvprovider). I det här fallet är värden URL:en för Azure Databricks per arbetsyta, till exempel https://adb-1234567890123456.7.azuredatabricks.net:

provider "databricks" {
  alias         = "workspace"
  host          = <retrieve-workspace-url>
  client_id     = <retrieve-client-id>
  client_secret = <retrieve-client-secret>
}

Mer information om autentisering med Databricks Terraform-providern finns i Autentisering.

Python

För åtgärder på kontonivå använder du följande för standardautentisering:

from databricks.sdk import AccountClient

a = AccountClient()
# ...

För direkt konfiguration använder du följande och ersätter 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          = retrieve_account_console_url(),
  account_id    = retrieve_account_id(),
  client_id     = retrieve_client_id(),
  client_secret = retrieve_client_secret()
)
# ...

För åtgärder på arbetsytenivå, särskilt standardautentisering:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

För direkt konfiguration ersätter du 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          = retrieve_workspace_url(),
  client_id     = retrieve_client_id(),
  client_secret = retrieve_client_secret()
)
# ...

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

Kommentar

Databricks-tillägget för Visual Studio Code använder Python men har ännu inte implementerat OAuth M2M-autentisering.

Java

För åtgärder på arbetsytenivå 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())
  .setClientId(retrieveClientId())
  .setClientSecret(retrieveClientSecret());
WorkspaceClient w = new WorkspaceClient(cfg);
// ...

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

Go

För åtgärder på kontonivå 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 https://accounts.azuredatabricks.netAzure Databricks-kontokonsolens URL:

import (
"github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
  Host:         retrieveAccountConsoleUrl(),
  AccountId:    retrieveAccountId(),
  ClientId:     retrieveClientId(),
  ClientSecret: retrieveClientSecret(),
}))
// ...

För åtgärder på arbetsytenivå 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 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"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
  Host:         retrieveWorkspaceUrl(),
  ClientId:     retrieveClientId(),
  ClientSecret: retrieveClientSecret(),
}))
// ...

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-M2M-autentisering (machine-to-machine)

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

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

Steg 1: Skapa ett huvudnamn för tjänsten och en OAuth-hemlighet

Om du inte redan har ett azure Databricks-hanterat huvudnamn för tjänsten eller Microsoft Entra ID managed service principal och dess motsvarande Azure Databricks OAuth-hemlighet skapar du dem genom att slutföra steg 1–5 i början av den här artikeln.

Steg 2: Generera en åtkomsttoken manuellt

Du kan använda azure Databricks-tjänstens huvudnamn eller Microsoft Entra ID:s hanterade tjänsthuvudnamns klient-ID och Azure Databricks OAuth-hemligheten för att begära en Azure Databricks OAuth-åtkomsttoken för att autentisera till både REST-API:er på kontonivå och REST-API:er på arbetsytenivå. Token upphör att gälla om en timme. Du måste begära en ny Azure Databricks OAuth-åtkomsttoken efter förfallodatumet. Omfånget för OAuth-åtkomsttoken beror på vilken nivå du skapar token från. Du kan skapa en token på antingen kontonivå eller arbetsytenivå enligt följande:

Generera en åtkomsttoken på kontonivå manuellt

En Azure Databricks OAuth-åtkomsttoken som skapats från kontonivån kan användas mot Databricks REST-API:er i kontot och på alla arbetsytor som tjänstens huvudnamn för Azure Databricks eller Microsoft Entra ID managed service principal har tilldelats.

  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. Konstruera tokenslutpunkts-URL:en genom att <my-account-id> ersätta i följande URL med det konto-ID som du kopierade.

    https://accounts.azuredatabricks.net/oidc/accounts/<my-account-id>/v1/token
    
  5. Använd en klient, till exempel curl för att begära en Azure Databricks OAuth-åtkomsttoken med url:en för tokenslutpunkten, klient-ID:t (som även kallas program-ID) för azure Databricks-tjänstens huvudnamn eller Microsoft Entra-ID:ts hanterade tjänsthuvudnamn och den Azure Databricks OAuth-hemlighet som du skapade för den hanterade Tjänstens huvudnamn för Azure Databricks eller tjänstens huvudnamn för Microsoft Entra-ID. Omfånget all-apis begär en Azure Databricks OAuth-åtkomsttoken som kan användas för att komma åt alla Databricks REST-API:er som Azure Databricks hanterade tjänstens huvudnamn eller Microsoft Entra ID managed service principal har beviljats åtkomst till.

    • Ersätt <token-endpoint-URL> med url:en för tokenslutpunkten ovan.
    • Ersätt <client-id> med azure Databricks-hanterade tjänstens huvudnamn eller Microsoft Entra ID:s klient-ID, som även kallas för ett program-ID.
    • Ersätt <client-secret> med den Azure Databricks OAuth-hemlighet som du skapade för tjänstens huvudnamn för Azure Databricks eller tjänstens huvudnamn för Microsoft Entra ID.
    export CLIENT_ID=<client-id>
    export CLIENT_SECRET=<client-secret>
    
    curl --request POST \
    --url <token-endpoint-URL> \
    --user "$CLIENT_ID:$CLIENT_SECRET" \
    --data 'grant_type=client_credentials&scope=all-apis'
    

    Detta genererar ett svar som liknar:

    {
      "access_token": "eyJraWQiOiJkYTA4ZTVjZ…",
      "scope": "all-apis",
      "token_type": "Bearer",
      "expires_in": 3600
    }
    

    access_token Kopiera från svaret.

    Azure Databricks OAuth-åtkomsttoken upphör att gälla om en timme. Du måste generera en ny Azure Databricks OAuth-åtkomsttoken manuellt efter förfallodatumet.

  6. Gå vidare till steg 3: Anropa ett Databricks REST API.

Generera en åtkomsttoken på arbetsytans nivå manuellt

En Azure Databricks OAuth-åtkomsttoken som skapats från arbetsytenivån kan bara komma åt REST-API:er på den arbetsytan, även om azure Databricks-tjänstens huvudnamn eller Microsoft Entra ID managed service principal är kontoadministratör eller är medlem i andra arbetsytor.

  1. Skapa tokenslutpunkts-URL:en genom att https://<databricks-instance> ersätta med arbetsytans URL för din Azure Databricks-distribution:

    https://<databricks-instance>/oidc/v1/token
    
  2. Använd en klient, till exempel curl för att begära en Azure Databricks OAuth-åtkomsttoken med url:en för tokenslutpunkten, klient-ID:t (som även kallas program-ID) för azure Databricks-tjänstens huvudnamn eller Microsoft Entra-ID:ts hanterade tjänsthuvudnamn och den Azure Databricks OAuth-hemlighet som du skapade för den hanterade Tjänstens huvudnamn för Azure Databricks eller tjänstens huvudnamn för Microsoft Entra-ID. Omfånget all-apis begär en Azure Databricks OAuth-åtkomsttoken som kan användas för att komma åt alla Databricks REST-API:er som Azure Databricks hanterade tjänstens huvudnamn eller Microsoft Entra ID managed service principal har beviljats åtkomst till inom arbetsytan som du begär token från.

    • Ersätt <token-endpoint-URL> med url:en för tokenslutpunkten ovan.

    • Ersätt <client-id> med azure Databricks-hanterade tjänstens huvudnamn eller Microsoft Entra ID:s klient-ID, som även kallas för ett program-ID.

    • Ersätt <client-secret> med den Azure Databricks OAuth-hemlighet som du skapade för tjänstens huvudnamn för Azure Databricks eller tjänstens huvudnamn för Microsoft Entra ID.

      export CLIENT_ID=<client-id>
      export CLIENT_SECRET=<client-secret>
      
      curl --request POST \
      --url <token-endpoint-URL> \
      --user "$CLIENT_ID:$CLIENT_SECRET" \
      --data 'grant_type=client_credentials&scope=all-apis'
      

      Detta genererar ett svar som liknar:

      {
        "access_token": "eyJraWQiOiJkYTA4ZTVjZ…",
        "scope": "all-apis",
        "token_type": "Bearer",
        "expires_in": 3600
      }
      

      access_token Kopiera från svaret.

      Azure Databricks OAuth-åtkomsttoken upphör att gälla om en timme. Du måste generera en ny Azure Databricks OAuth-åtkomsttoken manuellt efter förfallodatumet.

Steg 3: Anropa ett Databricks REST API

Nu kan du använda en Azure Databricks OAuth-åtkomsttoken för att autentisera till REST-API:er på Azure Databricks-kontonivå och REST-API:er på arbetsytenivå. Azure Databricks-tjänstens huvudnamn eller Microsoft Entra ID managed service principal måste vara kontoadministratör för att anropa REST-API:er på kontonivå.

Du kan inkludera token i huvudet med hjälp av Bearer autentisering. Du kan använda den här metoden med curl eller någon klient som du skapar.

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

I det här exemplet används Bearer autentisering för att hämta en lista över alla arbetsytor som är associerade med ett konto.

  • Ersätt <oauth-access-token> med Azure Databricks OAuth-åtkomsttoken för tjänstens huvudnamn för Azure Databricks eller tjänstens huvudnamn för Microsoft Entra ID.
  • 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å

I det här exemplet används Bearer autentisering för att lista alla tillgängliga kluster på den angivna arbetsytan.

  • Ersätt <oauth-access-token> med Azure Databricks OAuth-åtkomsttoken för tjänstens huvudnamn för Azure Databricks eller tjänstens huvudnamn för Microsoft Entra ID.

  • Ersätt <workspace-URL> med din grundläggande arbetsyte-URL, som har formuläret som liknar adb-1111111111111111.1.azuredatabricks.net.

    export OAUTH_TOKEN=<oauth-access-token>
    
    curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
    'https://<workspace-URL>/api/2.0/clusters/list'