Autenticare l'accesso ad Azure Databricks con un'entità servizio usando OAuth (OAuth M2M)
Questo articolo illustra come creare un'entità servizio di Azure Databricks e usarla o un'entità servizio gestita di Microsoft Entra ID per l'autenticazione a un'entità di destinazione.
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 direttamente al passaggio 2.
Accedere al portale di Azure.
Nota
Il portale da usare è diverso a seconda del fatto che l'applicazione Microsoft Entra ID venga eseguita nel cloud pubblico di Microsoft Azure oppure in un cloud nazionale o sovrano. Per altre informazioni, vedere Cloud nazionali.
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.
In Cerca risorse, servizi e documenti cercare e selezionare Microsoft Entra ID.
Fare clic su + Aggiungi e selezionare Registrazione app.
In Nome immettere un nome per l'applicazione.
Nella sezione Tipi di account supportati, seleziona l'opzione Solo account in questa directory organizzativa (single tenant).
Fare clic su Registra.
Nella pagina Panoramica della pagina dell'applicazione, copiare i seguenti valori nella sezione Informazioni di base:
- ID applicazione (client)
- ID della directory (tenant)
Per generare un segreto client in Gestisci, fare clic su Certificati e segreti.
Nota
Questo segreto client viene usato per generare token Microsoft Entra ID 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, consultare la documentazione dello strumento o dell'SDK.
Nella scheda Segreti client selezionare Nuovo segreto client.
Nella riquadro Aggiungi un segreto client, per Descrizione, immettere una descrizione del segreto client.
Per Scadenza selezionare un periodo di scadenza per il segreto client e quindi fare clic su Aggiungi.
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.
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.
Se richiesto, accedere all'account di Azure Databricks.
Sulla barra laterale fare clic su Gestione utenti.
Fare clic sulla scheda Entità servizio.
Fare clic su Aggiungi entità servizio.
In Gestione scegliere Databricks gestito o Microsoft Entra ID gestito.
Se si sceglie Microsoft Entra ID gestito, in Microsoft Entra application ID incollare il valore ID dell’applicazione (client) del passaggio 1.
Immettere un Nome per l'entità servizio.
Fare clic su Aggiungi.
(Facoltativo) Assegnare l'autorizzazione del ruolo dell'account di registrazione all'entità servizio:
- Nella scheda Entità servizio fare clic sul nome dell'entità servizio.
- Nella schedaRuoli, attivare o disabilitare ogni ruolo di destinazione in cui si vuole che abbia questa entità servizio.
- 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. Consultare Gestire i ruoli in un'entità servizio.
Passaggio 3: Aggiungere l'entità servizio all'area di lavoro Azure Databricks
Se l'area di lavoro è abilitata per la federazione delle identità:
- Cliccare sul nome utente nella barra superiore dell'area di lavoro di Azure Databricks e selezionare Impostazioni.
- Fare clic sulla scheda Identità e accesso.
- Accanto a Entità servizio, fare clic su Gestisci.
- Fare clic su Aggiungi entità servizio.
- Selezionare l'entità servizio nel passaggio 2 e fare clic su Aggiungi.
Quindi procedere al Passaggio 4.
Se l'area di lavoro non è abilitata per la federazione delle identità:
- Cliccare sul nome utente nella barra superiore dell'area di lavoro di Azure Databricks e selezionare Impostazioni.
- Fare clic sulla scheda Identità e accesso.
- Accanto a Entità servizio, fare clic su Gestisci.
- Fare clic su Aggiungi entità servizio.
- Fare clic su Aggiungi nuovo.
- In Gestione scegliere Databricks gestito o Microsoft Entra ID gestito.
- Se si sceglie Microsoft Entra ID gestito, in Microsoft Entra application ID incollare il valore ID dell’applicazione (client) del passaggio 1.
- 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
- 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.
- Fare clic sulla scheda Identità e accesso.
- Accanto a Entità servizio, fare clic su Gestisci.
- Fare clic sul nome dell'entità servizio per aprire la relativa pagina delle impostazioni.
- 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.
- 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. Consultare 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 dalla console dell'account:
- Accesso alla console dell'account di Azure Databricks, a https://accounts.azuredatabricks.net.
- Se richiesto, accedere all'account di Azure Databricks.
- Sulla barra laterale fare clic su Gestione utenti.
- Fare clic sulla scheda Entità servizio.
- Fare clic sul nome dell'entità servizio.
- Nella sezione Segreti OAuth della scheda Informazioni principali fare clic su Genera segreto.
- 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.
- Fare clic su Fatto.
Per creare un segreto OAuth per un'entità servizio dall'area di lavoro:
Come amministratore dell'area di lavoro, fare clic sul nome utente nella barra superiore e fare clic su Impostazioni.
Fare clic sulla scheda Identità e accesso.
Accanto a Entità servizio, fare clic su Gestisci.
Fare clic sul nome dell'entità servizio per aprire la relativa pagina delle impostazioni.
Fare clic sulla scheda Segreti.
In Segreti OAuth fare clic su Genera segreto.
Copiare il Segreto visualizzato e l'ID client, quindi fare clic su Fine.
Il segreto verrà rivelato una sola volta durante la creazione. L'ID client corrisponde all'ID applicazione dell'entità servizio.
Nota
Per consentire all'entità servizio di usare cluster o data warehouse SQL, è necessario concedere all'entità servizio l'accesso ad essi. 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 per area di lavoro, ad esempiohttps://adb-1234567890123456.7.azuredatabricks.net
per le operazioni dell'area di lavoro. - L’ID dell'account Azure Databricks per le operazioni dell'account Azure Databricks.
- L’ID client dell'entità servizio.
- Il 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 un tipo di autenticazione di Azure Databricks specifico con uno strumento o un SDK, consultare Autenticare l'accesso alle risorse di Azure Databricks o alla documentazione dello strumento o dell'SDK. Consultare anche Variabili di ambiente e campi per l'autenticazione unificata client e i metodi predefiniti per l'autenticazione unificata client.
Per le operazioni a livello di account, impostare le variabili di ambiente seguenti:
DATABRICKS_HOST
, accedere all’URL console degli account di 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 per singola area di lavoro di Azure Databricks, ad esempiohttps://adb-1234567890123456.7.azuredatabricks.net
.DATABRICKS_CLIENT_ID
DATABRICKS_CLIENT_SECRET
Profilo
Creare o identificare un profilo di configurazione di Azure Databricks con i seguenti campi 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, consultare Autenticare l'accesso alle risorse di Azure Databricks o alla documentazione dello strumento o dell'SDK. Consultare anche Variabili di ambiente e campi per l'autenticazione unificata client e i metodi predefiniti per l'autenticazione unificata client.
Per le operazioni a livello di account, impostare i valori seguenti nel file .databrickscfg
. 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 file .databrickscfg
. In questo caso, l'host è l'URL per area di lavoro di Azure Databricks, 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 file
.databrickscfg
come specificato nella sezione "Profile" di questo articolo.
Le variabili di ambiente hanno sempre la precedenza sui valori nel file .databrickscfg
.
Consultare anche Autenticazione da computer a computer (M2M) OAuth.
Connessione
Nota
L'autenticazione OAuth M2M è supportata nelle versioni seguenti di Databricks Connect:
- Per Python, Databricks Connect per Databricks Runtime 14.0 e versioni successive.
- Per Scala, Databricks Connect per Databricks Runtime 13.3 LTS e versioni successive. Databricks SDK per Java incluso in Databricks Connect 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 Connect, è possibile eseguire una delle operazioni seguenti:
- Impostare i valori nel file
.databrickscfg
per le operazioni a livello di area di lavoro di Azure Databricks come specificato nella sezione “Profilo” di questo articolo. Impostare anche lacluster_id
variabile di ambiente nel profilo sull'URL per area di lavoro, ad esempiohttps://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
DATABRICKS_CLUSTER_ID
variabile di ambiente sull’URL per area di lavoro, ad esempiohttps://adb-1234567890123456.7.azuredatabricks.net
.
I valori nel file .databrickscfg
hanno sempre la precedenza sulle variabili di ambiente.
Per inizializzare il client Databricks Connect con queste variabili di ambiente o valori nel .databrickscfg
file, consultare una delle opzioni seguenti:
- Per Python, consultare Configurare le proprietà di connessione per Python.
- Per Scala, consultare Configurare le proprietà di connessione per Scala.
VS Code
Per l’estensione Databricks per Visual Studio Code, eseguire le operazioni seguenti:
- Impostare i valori nel file
.databrickscfg
per le operazioni a livello di area di lavoro di Azure Databricks come specificato nella sezione “Profilo” di questo articolo. - Nel riquadro Configurazione dell'estensione Databricks per Visual Studio Code fare clic su Configura Databricks.
- Nel Riquadro Comandi, per Host Databricks, immettere l'URL per area di lavoro, ad esempio
https://adb-1234567890123456.7.azuredatabricks.net
e poi cliccareEnter
. - Nel Riquadro Comandi selezionare il nome del profilo di destinazione nell'elenco per l'URL.
Per ulteriori dettagli, consultare Configurazione dell'autenticazione per l'estensione Databricks per Visual Studio Code.
Terraform
Per le operazioni a livello di account, per l'autenticazione predefinita:
provider "databricks" {
alias = "accounts"
}
Per la configurazione diretta (sostituire i segnaposto retrieve
con la propria implementazione per recuperare i valori dalla console o da un altro archivio di configurazione, ad esempio HashiCorp Vault. Consultare 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 segnaposto retrieve
con la propria implementazione per recuperare i valori dalla console o da un altro archivio di configurazione, ad esempio HashiCorp Vault. Consultare anche Provider di insiemi di credenziali). In questo caso, l'host è l'URL per area di lavoro di Azure Databricks, 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, consultare 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 per l'autenticazione predefinita:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
# ...
Per la configurazione diretta, sostituire i segnaposto retrieve
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 per area di lavoro di Azure Databricks, 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, consultare:
- Configurare il client Databricks Connect per Python
- Autenticare Databricks SDK per Python con l'account o l'area di lavoro di Azure Databricks
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 segnaposto retrieve
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 per area di lavoro di Azure Databricks, 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, consultare:
- Configurare il client Databricks Connect per Scala (il client Databricks Connect per Scala usa l'SDK di Databricks incluso per Java per l'autenticazione)
- Autenticare Databricks SDK per Java con l'account o l'area di lavoro di Azure Databricks
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 segnaposto retrieve
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 segnaposto retrieve
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 per area di lavoro di Azure Databricks, 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, consultare 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 M2M OAuth
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 è 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
Usare l'ID client dell'entità servizio gestita di Azure Databricks o l'ID dell'entità servizio gestita di Microsoft Entra ID e il segreto OAuth di Azure Databricks per richiedere un token di accesso OAuth di Azure Databricks per l'autenticazione alleAPI REST a livello di account e alle API REST a livello di area di lavoro. Il token scadrà dopo 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.
Accedere alla console dell'account come amministratore dell'account.
Fare clic sulla freccia giù accanto al nome utente nell'angolo in alto a destra.
Copiare l’ID account.
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
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'ambitoall-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 precedente. - 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 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'
In questo modo viene generata una risposta simile a:
{ "access_token": "eyJraWQiOiJkYTA4ZTVjZ…", "scope": "all-apis", "token_type": "Bearer", "expires_in": 3600 }
Copiare il valore
access_token
della 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.
- Sostituire
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.
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
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'ambitoall-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 precedente.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 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'
In questo modo viene generata una risposta simile a:
{ "access_token": "eyJraWQiOiJkYTA4ZTVjZ…", "scope": "all-apis", "token_type": "Bearer", "expires_in": 3600 }
Copiare il valore
access_token
della risposta.
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 aadb-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'
Risorse aggiuntive
- Entità servizio
- Panoramica del modello di identità di Databricks
- Informazioni aggiuntive sull'autenticazione e sul controllo di accesso