Condividi tramite


Autenticazione OAuth da computer a computer (M2M)

L'autenticazione da computer a computer OAuth (M2M) usa le credenziali di un'entità automatizzata (in questo caso, un'entità servizio gestita di Azure Databricks o un'entità servizio gestita di Microsoft Entra (in precedenza Azure Active Directory) per autenticare l'entità di destinazione.

Dopo che Azure Databricks autentica correttamente l'entità servizio di destinazione tramite la richiesta di autenticazione OAuth M2M, viene assegnato un token OAuth di Azure Databricks allo strumento o all'SDK partecipante per eseguire l'autenticazione basata su token da quel momento in avanti per conto dell'entità servizio. Il token OAuth di Azure Databricks ha una durata di un'ora, in base al quale lo strumento o l'SDK coinvolto eseguirà un tentativo in background automatico di ottenere un nuovo token valido anche per un'ora.

Per iniziare a configurare l'autenticazione OAuth M2M, eseguire le operazioni seguenti:

Nota

Per gestire le credenziali OAuth di Azure Databricks per le entità servizio, è necessario essere un amministratore dell'account Azure Databricks.

Passaggio 1: Creare un'entità servizio Microsoft Entra ID nell'account Azure

Completare questo passaggio se si vuole collegare un'entità servizio Microsoft Entra ID all'account di Azure Databricks, all'area di lavoro o a entrambi. In caso contrario, andare al passaggio 2.

  1. Accedere al portale di Azure.

    Nota

    Il portale da usare è diverso a seconda che l'applicazione Microsoft Entra ID (in precedenza Azure Active Directory) venga eseguita nel cloud pubblico di Azure o in un cloud nazionale o sovrano. Per altre informazioni, vedere Cloud nazionali.

  2. Se si ha accesso a più tenant, sottoscrizioni o directory, fare clic sull'icona Directory e sottoscrizioni (directory con filtro) nel menu in alto per passare alla directory in cui si vuole effettuare il provisioning dell'entità servizio.

  3. In Cerca risorse, servizi e documenti cercare e selezionare Microsoft Entra ID.

  4. Fare clic su + Aggiungi e selezionare Registrazione app.

  5. In Nome immettere un nome per l'applicazione.

  6. Nella sezione Tipi di account supportati selezionare Account solo in questa directory organizzativa (tenant singolo).

  7. Fare clic su Registra.

  8. Nella pagina Panoramica della pagina dell'applicazione copiare i valori seguenti nella sezione Informazioni di base:

    • ID applicazione (client)
    • ID della directory (tenant)

    Panoramica dell'app registrata in Azure

  9. Per generare un segreto client, in Gestisci fare clic su Certificati e segreti.

    Nota

    Questo segreto client viene usato per generare token ID Microsoft Entra per l'autenticazione delle entità servizio Microsoft Entra ID con Azure Databricks. Per determinare se uno strumento o un SDK di Azure Databricks può usare i token ID di Microsoft Entra, vedere la documentazione dello strumento o dell'SDK.

  10. Nella scheda Segreti client fare clic su Nuovo segreto client.

    Nuovo segreto client

  11. Nel riquadro Aggiungi un segreto client immettere una descrizione per il segreto client.

  12. Per Scadenza selezionare un periodo di scadenza per il segreto client e quindi fare clic su Aggiungi.

  13. Copiare e archiviare il valore del segreto client in un luogo sicuro, perché questo segreto client è la password per l'applicazione.

Passaggio 2: Aggiungere un'entità servizio all'account Azure Databricks

Questo passaggio funziona solo se l'area di lavoro di Azure Databricks di destinazione è abilitata per la federazione delle identità. Se l'area di lavoro non è abilitata per la federazione delle identità, passare al passaggio 3.

  1. Nell'area di lavoro di Azure Databricks fare clic sul nome utente nella barra superiore e fare clic su Gestisci account.

    In alternativa, passare direttamente alla console dell'account Azure Databricks all'indirizzo https://accounts.azuredatabricks.net.

  2. Accedere all'account Azure Databricks, se richiesto.

  3. Sulla barra laterale fare clic su Gestione utenti.

  4. Fare clic sulla scheda Entità servizio.

  5. Fare clic su Aggiungi entità servizio.

  6. In Gestione scegliere Databricks gestito o Gestito da Microsoft Entra ID.

  7. Se si sceglie Microsoft Entra ID gestito, in Microsoft Entra application ID (ID applicazione Microsoft Entra) incollare il valore id applicazione (client) del passaggio 1.

  8. Immettere un nome per l'entità servizio.

  9. Fare clic su Aggiungi.

  10. (Facoltativo) Assegnare autorizzazioni a livello di account all'entità servizio:

    1. Nella scheda Entità servizio fare clic sul nome dell'entità servizio.
    2. Nella scheda Ruoli attivare o disabilitare ogni ruolo di destinazione in cui si vuole che questa entità servizio abbia.
    3. Nella scheda Autorizzazioni concedere l'accesso a tutti gli utenti, le entità servizio e i ruoli del gruppo di account di Azure Databricks da gestire e usare questa entità servizio. Vedere Gestire i ruoli in un'entità servizio.

Passaggio 3: Aggiungere l'entità servizio all'area di lavoro di Azure Databricks

Se l'area di lavoro è abilitata per la federazione delle identità:

  1. Nell'area di lavoro di Azure Databricks fare clic sul nome utente nella barra superiore e fare clic su Impostazioni.
  2. Fare clic sulla scheda Identità e accesso .
  3. Accanto a Entità servizio fare clic su Gestisci.
  4. Fare clic su Aggiungi entità servizio.
  5. Selezionare l'entità servizio nel passaggio 2 e fare clic su Aggiungi.

Passare al passaggio 4.

Se l'area di lavoro non è abilitata per la federazione delle identità:

  1. Nell'area di lavoro di Azure Databricks fare clic sul nome utente nella barra superiore e fare clic su Impostazioni.
  2. Fare clic sulla scheda Identità e accesso .
  3. Accanto a Entità servizio fare clic su Gestisci.
  4. Fare clic su Aggiungi entità servizio.
  5. Fare clic su Aggiungi nuovo.
  6. In Gestione scegliere Databricks gestito o Gestito da Microsoft Entra ID.
  7. Se si sceglie Microsoft Entra ID gestito, in Microsoft Entra application ID (ID applicazione Microsoft Entra) incollare il valore id applicazione (client) del passaggio 1.
  8. Immettere un nome visualizzato per la nuova entità servizio e fare clic su Aggiungi.

Passaggio 4: Assegnare autorizzazioni a livello di area di lavoro all'entità servizio

  1. Se la console di amministrazione per l'area di lavoro non è già aperta, fare clic sul nome utente nella barra superiore e fare clic su Impostazioni.
  2. Fare clic sulla scheda Identità e accesso .
  3. Accanto a Entità servizio fare clic su Gestisci.
  4. Fare clic sul nome dell'entità servizio per aprire la relativa pagina delle impostazioni.
  5. Nella scheda Configurazioni selezionare la casella accanto a ogni diritto a cui si vuole che l'entità servizio disponga per questa area di lavoro e quindi fare clic su Aggiorna.
  6. Nella scheda Autorizzazioni concedere l'accesso a qualsiasi utente, entità servizio e gruppi di Azure Databricks che si vuole gestire e usare questa entità servizio. Vedere Gestire i ruoli in un'entità servizio.

Passaggio 5: Creare un segreto OAuth di Azure Databricks per l'entità servizio

Prima di poter usare OAuth per eseguire l'autenticazione in Azure Databricks, è necessario creare un segreto OAuth, che può essere usato per generare token di accesso OAuth. Un'entità servizio può avere fino a cinque segreti OAuth. Per creare un segreto OAuth per un'entità servizio tramite la console dell'account:

  1. Accedere alla console dell'account Azure Databricks all'indirizzo https://accounts.azuredatabricks.net.
  2. Accedere all'account Azure Databricks, se richiesto.
  3. Sulla barra laterale fare clic su Gestione utenti.
  4. Fare clic sulla scheda Entità servizio.
  5. Fare clic sul nome dell'entità servizio.
  6. Nella sezione Segreti OAuth della scheda Informazioni sull'entità fare clic su Genera segreto.
  7. Nella finestra di dialogo Genera segreto copiare e archiviare il valore Segreto in una posizione sicura, perché questo segreto OAuth è la password per l'entità servizio.
  8. Fare clic su Fatto.

Nota

Per consentire all'entità servizio di usare cluster o data warehouse SQL, è necessario concedere all'entità servizio l'accesso. Vedere Autorizzazioni di calcolo o Gestire un'istanza di SQL Warehouse.

Completare la configurazione dell'autenticazione OAuth M2M

Per completare la configurazione dell'autenticazione OAuth M2M, è necessario impostare le variabili di ambiente, .databrickscfg i campi, i campi terraform o Config i campi associati seguenti:

  • L'host di Azure Databricks, specificato come https://accounts.azuredatabricks.net per le operazioni dell'account o l'URL di destinazione per area di lavoro, ad esempio https://adb-1234567890123456.7.azuredatabricks.net per le operazioni dell'area di lavoro.
  • ID dell'account Azure Databricks per le operazioni dell'account Azure Databricks.
  • ID client dell'entità servizio.
  • Segreto dell'entità servizio.

Per eseguire l'autenticazione OAuth M2M, integrare quanto segue all'interno del codice, in base allo strumento o all'SDK partecipante:

Ambiente

Per usare le variabili di ambiente per uno specifico tipo di autenticazione di Azure Databricks con uno strumento o un SDK, vedere Tipi di autenticazione supportati dallo strumento o dall'SDK di Azure Databricks o dalla documentazione dello strumento o dell'SDK. Vedere anche Variabili di ambiente e campi per l'autenticazione unificata client e l'ordine di valutazione predefinito per i metodi e le credenziali di autenticazione unificata client.

Per le operazioni a livello di account, impostare le variabili di ambiente seguenti:

  • DATABRICKS_HOST, impostare sull'URL della console dell'account Azure Databricks, https://accounts.azuredatabricks.net.
  • DATABRICKS_ACCOUNT_ID
  • DATABRICKS_CLIENT_ID
  • DATABRICKS_CLIENT_SECRET

Per le operazioni a livello di area di lavoro, impostare le variabili di ambiente seguenti:

  • DATABRICKS_HOST, impostare sull'URL di Azure Databricks per area di lavoro, ad esempio https://adb-1234567890123456.7.azuredatabricks.net.
  • DATABRICKS_CLIENT_ID
  • DATABRICKS_CLIENT_SECRET

Profilo

Creare o identificare un profilo di configurazione di Azure Databricks con i campi seguenti nel .databrickscfg file. Se si crea il profilo, sostituire i segnaposto con i valori appropriati. Per usare il profilo con uno strumento o un SDK, vedere Tipi di autenticazione supportati dallo strumento o dall'SDK di Azure Databricks o dalla documentazione dello strumento o dell'SDK . Vedere anche Variabili di ambiente e campi per l'autenticazione unificata client e l'ordine di valutazione predefinito per i metodi e le credenziali di autenticazione unificata client.

Per le operazioni a livello di account, impostare i valori seguenti nel .databrickscfg file. In questo caso, l'URL della console dell'account Azure Databricks è https://accounts.azuredatabricks.net:

[<some-unique-configuration-profile-name>]
host          = <account-console-url>
account_id    = <account-id>
client_id     = <service-principal-client-id>
client_secret = <service-principal-secret>

Per le operazioni a livello di area di lavoro, impostare i valori seguenti nel .databrickscfg file. In questo caso, l'host è l'URL di Azure Databricks per area di lavoro, ad esempio 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

Per l'interfaccia della riga di comando di Databricks, eseguire una delle operazioni seguenti:

  • Impostare le variabili di ambiente come specificato nella sezione "Ambiente" di questo articolo.
  • Impostare i valori nel .databrickscfg file come specificato nella sezione "Profile" di questo articolo.

Le variabili di ambiente hanno sempre la precedenza sui valori nel .databrickscfg file.

Vedere anche Autenticazione da computer a computer (M2M) OAuth.

Connessione

Nota

L'autenticazione OAuth M2M è supportata nelle versioni di Databricks Connessione seguenti:

  • Per Python, Databricks Connessione per Databricks Runtime 14.0 e versioni successive.
  • Per Scala, Databricks Connessione per Databricks Runtime 13.3 LTS e versioni successive. Databricks SDK per Java incluso in Databricks Connessione per Databricks Runtime 13.3 LTS e versioni successive deve essere aggiornato a Databricks SDK per Java 0.17.0 o versione successiva.

Per databricks Connessione, è possibile eseguire una delle operazioni seguenti:

  • Impostare i valori nel .databrickscfg file per le operazioni a livello di area di lavoro di Azure Databricks come specificato nella sezione "Profilo" di questo articolo. Impostare anche la cluster_id variabile di ambiente nel profilo sull'URL per area di lavoro, ad esempio https://adb-1234567890123456.7.azuredatabricks.net.
  • Impostare le variabili di ambiente per le operazioni a livello di area di lavoro di Azure Databricks come specificato nella sezione "Ambiente" di questo articolo. Impostare anche la variabile di ambiente sull'URL DATABRICKS_CLUSTER_IDper area di lavoro, ad esempio https://adb-1234567890123456.7.azuredatabricks.net.

I valori nel .databrickscfg file hanno sempre la precedenza sulle variabili di ambiente.

Per inizializzare il client di Databricks Connessione con queste variabili di ambiente o valori nel .databrickscfg file, vedere una delle opzioni seguenti:

Vs code

Per l'estensione Databricks per Visual Studio Code, eseguire le operazioni seguenti:

  1. Impostare i valori nel .databrickscfg file per le operazioni a livello di area di lavoro di Azure Databricks come specificato nella sezione "Profilo" di questo articolo.
  2. Nel riquadro Configurazione dell'estensione Databricks per Visual Studio Code fare clic su Configura Databricks.
  3. Nel riquadro comandi, per Host Databricks, immettere l'URL per area di lavoro, ad esempio https://adb-1234567890123456.7.azuredatabricks.net, e quindi premere Enter.
  4. Nel riquadro comandi selezionare il nome del profilo di destinazione nell'elenco per l'URL.

Per altre informazioni, vedere Configurazione dell'autenticazione per l'estensione Databricks per VS Code.

Terraform

Per le operazioni a livello di account, per l'autenticazione predefinita:

provider "databricks" {
  alias = "accounts"
}

Per la configurazione diretta (sostituire i retrieve segnaposto con la propria implementazione per recuperare i valori dalla console o da un altro archivio di configurazione, ad esempio HashiCorp Vault. Vedere anche Provider di insiemi di credenziali. In questo caso, l'URL della console dell'account Azure Databricks è https://accounts.azuredatabricks.net:

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

Per le operazioni a livello di area di lavoro, per l'autenticazione predefinita:

provider "databricks" {
  alias = "workspace"
}

Per la configurazione diretta (sostituire i retrieve segnaposto con la propria implementazione per recuperare i valori dalla console o da un altro archivio di configurazione, ad esempio HashiCorp Vault. Vedere anche Provider di insiemi di credenziali. In questo caso, l'host è l'URL di Azure Databricks per area di lavoro, ad esempio https://adb-1234567890123456.7.azuredatabricks.net:

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

Per altre informazioni sull'autenticazione con il provider Databricks Terraform, vedere Autenticazione.

Python

Per le operazioni a livello di account, usare quanto segue per l'autenticazione predefinita:

from databricks.sdk import AccountClient

a = AccountClient()
# ...

Per la configurazione diretta, usare quanto segue, sostituendo i retrieve segnaposto con la propria implementazione per recuperare i valori dalla console o da un altro archivio di configurazione, ad esempio Azure KeyVault. In questo caso, l'URL della console dell'account Azure Databricks è https://accounts.azuredatabricks.net:

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()
)
# ...

Per le operazioni a livello di area di lavoro, in particolare l'autenticazione predefinita:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

Per la configurazione diretta, sostituire i retrieve segnaposto con la propria implementazione per recuperare i valori dalla console o da un altro archivio di configurazione, ad esempio Azure KeyVault. In questo caso, l'host è l'URL di Azure Databricks per area di lavoro, ad esempio 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()
)
# ...

Per altre informazioni sull'autenticazione con gli strumenti e gli SDK di Databricks che usano Python e implementano l'autenticazione unificata del client Databricks, vedere:

Nota

L'estensione Databricks per Visual Studio Code usa Python ma non ha ancora implementato l'autenticazione OAuth M2M.

Java

Per le operazioni a livello di area di lavoro, per l'autenticazione predefinita:

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

Per la configurazione diretta (sostituire i retrieve segnaposto con la propria implementazione per recuperare i valori dalla console o da un altro archivio di configurazione, ad esempio Azure KeyVault). In questo caso, l'host è l'URL di Azure Databricks per area di lavoro, ad esempio 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);
// ...

Per altre informazioni sull'autenticazione con gli strumenti e gli SDK di Databricks che usano Java e implementano l'autenticazione unificata del client Databricks, vedere:

Go

Per le operazioni a livello di account, per l'autenticazione predefinita:

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

Per la configurazione diretta (sostituire i retrieve segnaposto con la propria implementazione per recuperare i valori dalla console o da un altro archivio di configurazione, ad esempio Azure KeyVault). In questo caso, l'URL della console dell'account Azure Databricks è https://accounts.azuredatabricks.net:

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

Per le operazioni a livello di area di lavoro, per l'autenticazione predefinita:

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

Per la configurazione diretta (sostituire i retrieve segnaposto con la propria implementazione per recuperare i valori dalla console o da un altro archivio di configurazione, ad esempio Azure KeyVault). In questo caso, l'host è l'URL di Azure Databricks per area di lavoro, ad esempio 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(),
}))
// ...

Per altre informazioni sull'autenticazione con gli strumenti e gli SDK di Databricks che usano Go e che implementano l'autenticazione unificata del client Databricks, vedere Autenticare Databricks SDK for Go con l'account o l'area di lavoro di Azure Databricks.

Generare e usare manualmente i token di accesso per l'autenticazione da computer a computer OAuth (M2M)

Gli strumenti e gli SDK di Azure Databricks che implementano lo standard di autenticazione unificata del client Databricks genereranno, aggiorneranno e useranno automaticamente i token di accesso OAuth di Azure Databricks per conto dell'utente in base alle esigenze per l'autenticazione OAuth M2M.

Se per qualche motivo è necessario generare, aggiornare o usare manualmente i token di accesso OAuth di Azure Databricks per l'autenticazione OAuth M2M, seguire le istruzioni riportate in questa sezione.

Passaggio 1: Creare un'entità servizio e un segreto OAuth

Se non si ha già un'entità servizio gestita di Azure Databricks o un'entità servizio gestita di Microsoft Entra ID e il relativo segreto OAuth di Azure Databricks, crearli completando i passaggi da 1 a 5 all'inizio di questo articolo.

Passaggio 2: Generare manualmente un token di accesso

È possibile usare l'ID client dell'entità servizio gestita di Azure Databricks o microsoft Entra ID e il segreto OAuth di Azure Databricks per richiedere un token di accesso OAuth di Azure Databricks per eseguire l'autenticazione alle API REST a livello di account e alle API REST a livello di area di lavoro. Il token scadrà in un'ora. È necessario richiedere un nuovo token di accesso OAuth di Azure Databricks dopo la scadenza. L'ambito del token di accesso OAuth dipende dal livello da cui si crea il token. È possibile creare un token a livello di account o a livello di area di lavoro, come indicato di seguito:

  • Per chiamare API REST a livello di account e di area di lavoro all'interno di account e aree di lavoro a cui l'entità servizio gestita di Azure Databricks o l'entità servizio gestita di Microsoft Entra ID ha accesso, generare manualmente un token di accesso a livello di account.
    • Per chiamare le API REST all'interno di una sola area di lavoro a cui ha accesso l'entità servizio gestita di Azure Databricks o l'entità servizio gestita di Microsoft Entra ID, è possibile generare manualmente un token di accesso a livello di area di lavoro solo per tale area di lavoro.

Generare manualmente un token di accesso a livello di account

È possibile usare un token di accesso OAuth di Azure Databricks creato dal livello di account per le API REST di Databricks nell'account e in qualsiasi area di lavoro a cui è stata assegnata l'entità servizio gestita di Azure Databricks o l'entità servizio gestita di Microsoft Entra ID.

  1. Come amministratore dell'account, accedere alla console dell'account.

  2. Fare clic sulla freccia giù accanto al nome utente nell'angolo in alto a destra.

  3. Copiare l'ID account.

  4. Costruire l'URL dell'endpoint del token sostituendo <my-account-id> nell'URL seguente con l'ID account copiato.

    https://accounts.azuredatabricks.net/oidc/accounts/<my-account-id>/v1/token
    
  5. Usare un client, curl ad esempio per richiedere un token di accesso OAuth di Azure Databricks con l'URL dell'endpoint del token, l'ID client (noto anche come ID applicazione) dell'entità servizio gestita di Azure Databricks o l'entità servizio gestita di Microsoft Entra ID e il segreto OAuth di Azure Databricks creato per l'entità servizio gestita di Azure Databricks o l'entità servizio gestita di Microsoft Entra ID. L'ambito all-apis richiede un token di accesso OAuth di Azure Databricks che può essere usato per accedere a tutte le API REST di Databricks a cui è stata concessa l'accesso all'entità servizio gestita di Azure Databricks o all'entità servizio gestita di Microsoft Entra ID.

    • Sostituire <token-endpoint-URL> con l'URL dell'endpoint del token riportato sopra.
    • Sostituire <client-id> con l'ID client dell'entità servizio gestita di Azure Databricks o dell'entità servizio gestita di Microsoft Entra ID, noto anche come ID applicazione.
    • Sostituire <client-secret> con il segreto OAuth di Azure Databricks creato per l'entità servizio gestita di Azure Databricks o l'entità servizio gestita con ID Microsoft Entra.
    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'
    

    In questo modo viene generata una risposta simile a:

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

    Copiare l'oggetto access_token dalla risposta.

    Il token di accesso OAuth di Azure Databricks scadrà in un'ora. È necessario generare manualmente un nuovo token di accesso OAuth di Azure Databricks dopo la scadenza.

  6. Passare al passaggio 3: Chiamare un'API REST di Databricks.

Generare manualmente un token di accesso a livello di area di lavoro

Un token di accesso OAuth di Azure Databricks creato dal livello dell'area di lavoro può accedere solo alle API REST in tale area di lavoro, anche se l'entità servizio gestita di Azure Databricks o l'entità servizio gestita di Microsoft Entra ID è un amministratore dell'account o è membro di altre aree di lavoro.

  1. Creare l'URL dell'endpoint del token sostituendo https://<databricks-instance> con l'URL dell'area di lavoro della distribuzione di Azure Databricks:

    https://<databricks-instance>/oidc/v1/token
    
  2. Usare un client, curl ad esempio per richiedere un token di accesso OAuth di Azure Databricks con l'URL dell'endpoint del token, l'ID client (noto anche come ID applicazione) dell'entità servizio gestita di Azure Databricks o l'entità servizio gestita di Microsoft Entra ID e il segreto OAuth di Azure Databricks creato per l'entità servizio gestita di Azure Databricks o l'entità servizio gestita di Microsoft Entra ID. L'ambito all-apis richiede un token di accesso OAuth di Azure Databricks che può essere usato per accedere a tutte le API REST di Databricks a cui è stata concessa l'entità servizio gestita di Azure Databricks o l'entità servizio gestita di Microsoft Entra ID all'interno dell'area di lavoro da cui si richiede il token.

    • Sostituire <token-endpoint-URL> con l'URL dell'endpoint del token riportato sopra.

    • Sostituire <client-id> con l'ID client dell'entità servizio gestita di Azure Databricks o dell'entità servizio gestita di Microsoft Entra ID, noto anche come ID applicazione.

    • Sostituire <client-secret> con il segreto OAuth di Azure Databricks creato per l'entità servizio gestita di Azure Databricks o l'entità servizio gestita con ID Microsoft Entra.

      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'
      

      In questo modo viene generata una risposta simile a:

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

      Copiare l'oggetto access_token dalla risposta.

      Il token di accesso OAuth di Azure Databricks scadrà in un'ora. È necessario generare manualmente un nuovo token di accesso OAuth di Azure Databricks dopo la scadenza.

Passaggio 3: Chiamare un'API REST di Databricks

È ora possibile usare un token di accesso OAuth di Azure Databricks per eseguire l'autenticazione alle API REST a livello di account di Azure Databricks e alle API REST a livello di area di lavoro. L'entità servizio gestita di Azure Databricks o l'entità servizio gestita di Microsoft Entra ID devono essere un amministratore dell'account per chiamare le API REST a livello di account.

È possibile includere il token nell'intestazione usando Bearer l'autenticazione. È possibile usare questo approccio con o qualsiasi curl client compilato.

Esempio di richiesta api REST a livello di account

Questo esempio usa Bearer l'autenticazione per ottenere un elenco di tutte le aree di lavoro associate a un account.

  • Sostituire <oauth-access-token> con il token di accesso OAuth di Azure Databricks per l'entità servizio gestita di Azure Databricks o l'entità servizio gestita di Microsoft Entra ID.
  • Sostituire <account-id> con l'ID account.
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'

Esempio di richiesta API REST a livello di area di lavoro

Questo esempio usa Bearer l'autenticazione per elencare tutti i cluster disponibili nell'area di lavoro specificata.

  • Sostituire <oauth-access-token> con il token di accesso OAuth di Azure Databricks per l'entità servizio gestita di Azure Databricks o l'entità servizio gestita di Microsoft Entra ID.

  • Sostituire <workspace-URL> con l'URL dell'area di lavoro di base, che ha il formato simile a 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'