Autenticare l'accesso ad Azure Databricks con un account utente usando OAuth (OAuth U2M)
Azure Databricks usa l'autenticazione da utente a computer (U2M) OAuth per abilitare l'accesso dell'interfaccia della riga di comando e dell'API all'account e alle risorse dell'area di lavoro di Azure Databricks per conto di un utente. Dopo l'accesso iniziale e il consenso di un utente alla richiesta di autenticazione OAuth, viene assegnato un token OAuth allo strumento o all'SDK partecipante per eseguire l'autenticazione basata su token per conto dell'utente da quel momento in poi. Il token OAuth ha una durata di un'ora, in seguito lo strumento o l'SDK coinvolto eseguirà un tentativo in background automatico di ottenere un nuovo token valido anche per un'ora.
Azure Databricks supporta due modi per autenticare l'accesso per un account utente con OAuth:
- Per lo più automaticamente, usando il supporto dell'autenticazione client unificata di Databricks. Usare questo approccio semplificato se si usano SDK e strumenti specifici di Azure Databricks (ad esempio Databricks Terraform SDK). Gli strumenti e gli SDK supportati sono elencati nell'autenticazione client unificata di Databricks.
- Manualmente, generando direttamente una coppia di verifica/test del codice OAuth e un codice di autorizzazione e usandoli per creare il token OAuth iniziale specificato nella configurazione. Usare questo approccio quando non si usa un'API supportata dall'autenticazione client unificata di Databricks. Per ulteriori dettagli, consultare: Generare e usare manualmente i token di accesso per l'autenticazione da utente a computer (U2M) OAuth.
Autenticazione U2M con l'autenticazione client unificata di Databricks
Nota
Prima di iniziare a configurare l'autenticazione, esaminare le autorizzazioni ACL per una categoria specifica di operazioni sugli oggetti dell'area di lavoro e determinare se l'account ha il livello di accesso necessario. Per ulteriori dettagli, consultare Elenco di controllo di accesso.
Per eseguire l'autenticazione U2M OAuth con gli SDK e gli strumenti di Azure Databricks che supportano l'autenticazione client unificata, integrare quanto segue all'interno del codice:
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
, impostato sul valore dell'URL della console dell'account Azure Databricks,https://accounts.azuredatabricks.net
.DATABRICKS_ACCOUNT_ID
Per le operazioni a livello di area di lavoro, impostare le variabili di ambiente seguenti:
DATABRICKS_HOST
, impostato sul valore dell’URL per singola area di lavoro di Azure Databricks, ad esempiohttps://adb-1234567890123456.7.azuredatabricks.net
.
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>
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>
CLI
Per l'interfaccia della riga di comando di Databricks, eseguire il databricks auth login
comando con le opzioni seguenti:
- Per le operazioni a livello di account di Azure Databricks,
--host <account-console-url> --account-id <account-id>
. - Per le operazioni a livello di area di lavoro di Azure Databricks,
--host <workspace-url>
.
Dopo aver eseguito questo comando, seguire le istruzioni nel web browser per accedere all'account o all'area di lavoro di Azure Databricks.
Per ulteriori dettagli, consultare Autenticazione U2M OAuth con l'interfaccia della riga di comando di Databricks.
Connessione
Nota
L'autenticazione U2M OAuth è supportata nelle versioni seguenti di Databricks Connect:
- Per Python, Databricks Connect per Databricks Runtime 13.1 e versioni successive.
- Per Scala, Databricks Connect per Databricks Runtime 13.3 LTS e versioni successive.
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, vedere Configurazione di calcolo per Databricks Connect.
VS Code
Per l’estensione Databricks per Visual Studio Code, eseguire le operazioni seguenti:
- Nel riquadro Configurazione, 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
. - Selezionare OAuth (da utente a computer).
- Completare le istruzioni visualizzate all'interno del web browser per completare l'autenticazione con l'account Azure Databricks e consentire l'accesso a tutte le API.
Per ulteriori dettagli, consultare Autenticazione U2M OAuth con l'interfaccia della riga di comando di Databricks.
Terraform
Nota
Autenticazione U2M OAuth non è ancora supportata.
Python
Per le operazioni a livello di account e a livello di area di lavoro, è necessario usare l'interfaccia della riga di comando di Databricks per eseguire il comando seguente prima di eseguire il codice Python. Questo comando indica all'interfaccia della riga di comando di Databricks di generare e memorizzare nella cache il token OAuth necessario nel percorso .databricks/token-cache.json
all'interno della home folder dell'utente nel computer:
Configurazione per le operazioni a livello di account Databricks
databricks auth login --host <account-console-url> --account-id <account-id>
Sostituire i segnaposto seguenti:
- Sostituire
<account-console-url>
con il valorehttps://accounts.azuredatabricks.net
. (Non impostare questo valore sull’URL dell'area di lavoro di Azure Databricks.) - Sostituire
<account-id>
con il valore dell'account Azure Databricks. Consultare Individuare l'ID account.
Nota
Se si dispone di un profilo di configurazione di Azure Databricks esistente con i campi host
e account_id
già impostati, è possibile sostituire --host <account-console-url> --account-id <account-id>
con --profile <profile-name>
.
Dopo aver eseguito il auth login
comando, viene richiesto di salvare l'URL di accesso dell'account e l'ID account come profilo di configurazione di Azure Databricks. Quando richiesto, immettere il nome di un profilo nuovo o esistente nel .databrickscfg
file. Qualsiasi profilo esistente con lo stesso nome nel .databrickscfg
file viene sovrascritto.
Se richiesto, completare le istruzioni visualizzate del web browser per completare l'accesso. Usare quindi codice Python simile a uno dei frammenti di codice seguenti:
Per autenticazione predefinita:
from databricks.sdk import AccountClient
a = AccountClient()
# ...
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
:
from databricks.sdk import AccountClient
a = AccountClient(
host = retrieveAccountConsoleUrl(),
account_id = retrieveAccountId()
)
# ...
Configurazione per le operazioni a livello di area di lavoro di Databricks
databricks auth login --host <worskpace-url>
Sostituire il segnaposto <workspace-url>
con l'URL per area di lavoro, dell’obiettivo Azure Databricks, ad esempio https://adb-1234567890123456.7.azuredatabricks.net
.
Nota
Se si dispone di un profilo di configurazione di Azure Databricks esistente con il campo host
già impostato, è possibile sostituire --host <workspace-url>
con --profile <profile-name>
.
Dopo aver eseguito il auth login
comando, viene richiesto di salvare l'URL dell'area di lavoro come profilo di configurazione di Azure Databricks. Quando richiesto, immettere il nome di un profilo nuovo o esistente nel .databrickscfg
file. Qualsiasi profilo esistente con lo stesso nome nel .databrickscfg
file viene sovrascritto.
Se richiesto, completare le istruzioni visualizzate del web browser per completare l'accesso. Usare quindi codice Python simile a uno dei frammenti di codice seguenti:
Per 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 = retrieveWorkspaceUrl())
# ...
Per altre informazioni sull'autenticazione con gli strumenti e gli SDK di Databricks che usano Python e che implementano l'autenticazione unificata del client Databricks, consultare:
- Configurare il client Databricks Connect per Python
- Configurazione dell'autenticazione per l'estensione Databricks per Visual Studio Code
- Autenticare Databricks SDK per Python con l'account o l'area di lavoro di Azure Databricks
Java
Per le operazioni a livello di account e a livello di area di lavoro, è necessario usare l'interfaccia della riga di comando di Databricks per eseguire il comando seguente prima di eseguire il codice Java. Questo comando indica all'interfaccia della riga di comando di Databricks di generare e memorizzare nella cache il token OAuth necessario nel percorso .databricks/token-cache.json
nella home folder dell'utente nel computer:
Configurazione per le operazioni a livello di account Databricks
databricks auth login --host <account-console-url> --account-id <account-id>
Sostituire i segnaposto seguenti:
- Sostituire
<account-console-url>
con il valorehttps://accounts.azuredatabricks.net
. (Non impostare questo valore sull’URL dell'area di lavoro di Azure Databricks.) - Sostituire
<account-id>
con il valore dell'account Azure Databricks. Consultare Individuare l'ID account.
Nota
Se si dispone di un profilo di configurazione di Azure Databricks esistente con i campi host
e account_id
già impostati, è possibile sostituire --host <account-console-url> --account-id <account-id>
con --profile <profile-name>
.
Dopo aver eseguito il auth login
comando, viene richiesto di salvare l'URL di accesso dell'account e l'ID account come profilo di configurazione di Azure Databricks. Quando richiesto, immettere il nome di un profilo nuovo o esistente nel .databrickscfg
file. Qualsiasi profilo esistente con lo stesso nome nel .databrickscfg
file viene sovrascritto.
Se richiesto, completare le istruzioni visualizzate del web browser per completare l'accesso. Usare quindi il codice Java simile a uno dei frammenti di codice seguenti:
Per autenticazione predefinita:
import com.databricks.sdk.AccountClient;
// ...
AccountClient a = new AccountClient();
// ...
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 com.databricks.sdk.AccountClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
.setHost(retrieveAccountConsoleUrl())
.setAccountId(retrieveAccountId());
AccountClient a = new AccountClient(cfg);
// ...
Configurazione per le operazioni a livello di area di lavoro di Databricks
Per le operazioni a livello di area di lavoro, è necessario usare l'interfaccia della riga di comando di Databricks per eseguire il comando seguente, prima di eseguire il codice Java. Questo comando indica all'interfaccia della riga di comando di Databricks di generare e memorizzare nella cache il token OAuth necessario nel percorso .databricks/token-cache.json
all'interno della home folder dell'utente nel computer:
databricks auth login --host <worskpace-url>
Sostituire il segnaposto <workspace-url>
con l'URL per area di lavoro, dell’obiettivo Azure Databricks, ad esempio https://adb-1234567890123456.7.azuredatabricks.net
.
Nota
Se si dispone di un profilo di configurazione di Azure Databricks esistente con il campo host
già impostato, è possibile sostituire --host <workspace-url>
con --profile <profile-name>
.
Dopo aver eseguito il auth login
comando, viene richiesto di salvare l'URL dell'area di lavoro come profilo di configurazione di Azure Databricks. Quando richiesto, immettere il nome di un profilo nuovo o esistente nel .databrickscfg
file. Qualsiasi profilo esistente con lo stesso nome nel .databrickscfg
file viene sovrascritto.
Se richiesto, completare le istruzioni visualizzate del web browser per completare l'accesso. Usare quindi il codice Java simile a uno dei frammenti di codice seguenti:
Per 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())
WorkspaceClient w = new WorkspaceClient(cfg);
// ...
Per altre informazioni sull'autenticazione con gli strumenti e gli SDK di Databricks che usano Java e che 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 e a livello di area di lavoro, è necessario usare l'interfaccia della riga di comando di Databricks per eseguire il comando seguente prima di eseguire il codice Go. Questo comando indica all'interfaccia della riga di comando di Databricks di generare e memorizzare nella cache il token OAuth necessario nel percorso .databricks/token-cache.json
all'interno della home folder dell'utente nel computer:
Configurazione per le operazioni a livello di account Databricks
databricks auth login --host <account-login-url> --account-id <account-id>
Sostituire i segnaposto seguenti:
- Sostituire
<account-console-url>
con il valorehttps://accounts.azuredatabricks.net
. (Non impostare questo valore sull’URL dell'area di lavoro di Azure Databricks.) - Sostituire
<account-id>
con il valore dell'account Azure Databricks. Consultare Individuare l'ID account.
Nota
Se si dispone di un profilo di configurazione di Azure Databricks esistente con i campi host
e account_id
già impostati, è possibile sostituire --host <account-console-url> --account-id <account-id>
con --profile <profile-name>
.
Dopo aver eseguito il auth login
comando, viene richiesto di salvare l'URL di accesso dell'account e l'ID account come profilo di configurazione di Azure Databricks. Quando richiesto, immettere il nome di un profilo nuovo o esistente nel .databrickscfg
file. Qualsiasi profilo esistente con lo stesso nome nel .databrickscfg
file viene sovrascritto.
Se richiesto, completare le istruzioni visualizzate del web browser per completare l'accesso. Usare quindi il codice Go simile a uno dei frammenti di codice seguenti:
Per 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'URL della console dell'account Azure Databricks è https://accounts.azuredatabricks.net
:
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
Host: retrieveAccountConsoleUrl(),
AccountId: retrieveAccountId(),
}))
// ...
Configurazione per le operazioni a livello di area di lavoro di Databricks
Per le operazioni a livello di area di lavoro, è necessario usare l'interfaccia della riga di comando di Databricks per eseguire il comando seguente prima di eseguire il codice Go. Questo comando indica all'interfaccia della riga di comando di Databricks di generare e memorizzare nella cache il token OAuth necessario nel percorso .databricks/token-cache.json
all'interno della home folder dell'utente nel computer:
databricks auth login --host <worskpace-url>
Sostituire il segnaposto <workspace-url>
con l'URL per area di lavoro, dell’obiettivo Azure Databricks, ad esempio https://adb-1234567890123456.7.azuredatabricks.net
.
Nota
Se si dispone di un profilo di configurazione di Azure Databricks esistente con il campo host
già impostato, è possibile sostituire --host <workspace-url>
con --profile <profile-name>
.
Dopo aver eseguito il auth login
comando, viene richiesto di salvare l'URL dell'area di lavoro come profilo di configurazione di Azure Databricks. Quando richiesto, immettere il nome di un profilo nuovo o esistente nel .databrickscfg
file. Qualsiasi profilo esistente con lo stesso nome nel .databrickscfg
file viene sovrascritto.
Se richiesto, completare le istruzioni visualizzate del web browser per completare l'accesso. Usare quindi il codice Go simile a uno dei frammenti di codice seguenti:
Per 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'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"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
Host: retrieveWorkspaceUrl(),
}))
// ...
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 da utente a computer (U2M) OAuth
Nota
Questa sezione viene fornita agli utenti con strumenti o servizi di terze parti che non funzionano con lo standard di autenticazione unificata del client Databricks.
Se per qualche motivo è necessario generare, aggiornare o usare manualmente i token di accesso OAuth di Azure Databricks per l'autenticazione U2M OAuth, seguire le istruzioni riportate in questa sezione.
Passaggio 1: Generare un verificatore di codice OAuth e una coppia di verifica del codice
Per generare e usare manualmente i token di accesso per l'autenticazione U2M OAuth, è necessario innanzitutto disporre di un verificatore del codice OAuth e di una richiesta di verifica del codice OAuth derivata dal verificatore del codice. Per generare un codice di autorizzazione OAuth, usare la richiesta di verifica del codice nel passaggio 2. Usare il verificatore del codice e il codice di autorizzazione nel passaggio 3 per generare il token di accesso OAuth.
Nota
Sebbene sia tecnicamente possibile usare stringhe di testo normale non codificate per il verificatore del codice e la richiesta di verifica del codice, Databricks incoraggia fortemente a seguire lo standard OAuth per generare il verificatore del codice e la richiesta di verifica del codice.
In particolare, il verificatore di codice deve essere una stringa crittograficamente casuale usando caratteri dai set A-Z
, a-z
, 0-9
e i caratteri -._~
di punteggiatura (trattino, punto, sottolineatura e tilde), compresi tra 43 e 128 caratteri. La richiesta di verifica del codice deve essere una stringa con codifica Base64-URL dell'hash SHA256 del verificatore di codice. Per altre informazioni, consultare Autenticazione delle richieste.
È possibile eseguire lo script Python seguente per generare rapidamente una coppia univoca di verifica del codice e verifica del codice. Anche se è possibile riutilizzare più volte questa coppia di verifica del codice e verifica del codice generata, Databricks consiglia di generare una nuova coppia di verifica del codice e di verifica del codice ogni volta che si generano manualmente token di accesso per l'autenticazione U2M OAuth.
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}")
Passaggio 2: Generare un codice di autorizzazione
Si usa un codice di autorizzazione OAuth per generare un token di accesso OAuth di Azure Databricks. Il codice di autorizzazione scade immediatamente dopo l'uso per generare un token di accesso OAuth di Azure Databricks. L'ambito del codice di autorizzazione dipende dal livello da cui viene generato. È possibile generare un codice di autorizzazione a livello di account Azure Databricks o a livello di area di lavoro, come indicato di seguito:
- Per chiamare API REST a livello di account e a livello di area di lavoro all'interno di account e aree di lavoro a cui l'account utente di Azure Databricks ha accesso, generare un codice di autorizzazione a livello di account.
- Per chiamare le API REST all'interno di una sola area di lavoro a cui l'account utente ha accesso, è possibile generare un codice di autorizzazione a livello di area di lavoro solo per tale area di lavoro.
Generare un codice di autorizzazione a livello di account
Come amministratore dell'account, accedere alla console dell'account.
Fare clic sulla freccia giù accanto al nome utente nell'angolo in alto a destra.
Copiare l’ID account.
Nella barra degli indirizzi del web browser, navigare sull'URL seguente. Sono state aggiunte interruzioni di riga per migliorare la leggibilità. L'URL non deve contenere queste interruzioni di riga.
Nell'URL seguente sostituire quanto segue:
- Sostituire
<account-id>
con ID account copiato. - Sostituire
<redirect-url>
con un URL di reindirizzamento al computer locale, ad esempiohttp://localhost:8020
. - Sostituire
<state>
con una stringa di testo normale che è possibile usare per verificare l'integrità del codice di autorizzazione. - Sostituire
<code-challenge>
con la richiesta di verifica del codice generata nel passaggio 1.
https://accounts.azuredatabricks.net/oidc/accounts/<account-id>/v1/authorize ?client_id=databricks-cli &redirect_uri=<redirect-url> &response_type=code &state=<state> &code_challenge=<code-challenge> &code_challenge_method=S256 &scope=all-apis+offline_access
- Sostituire
Quando richiesto, seguire le istruzioni visualizzate per accedere all'account Azure Databricks.
Nella barra degli indirizzi del web browser copiare il codice di autorizzazione. Il codice di autorizzazione è la stringa completa di caratteri tra il carattere
code=
e&
nell'URL. Ad esempio, il codice di autorizzazione nell'URL seguente èdcod...7fe6
:http://localhost:8020/?code=dcod...7fe6&state=<state>
È necessario verificare l'integrità di questo codice di autorizzazione confermando visivamente che il
<state>
valore in questo URL di risposta corrisponda alstate
valore specificato nell'URL della richiesta. Se i valori sono diversi, non è consigliabile usare questo codice di autorizzazione, perché potrebbe essere compromesso.Passare a Generare un token di accesso a livello di account.
Generare un codice di autorizzazione a livello di area di lavoro
Nella barra degli indirizzi del web browser, navigare sull'URL seguente. Sono state aggiunte interruzioni di riga per migliorare la leggibilità. L'URL non deve contenere queste interruzioni di riga.
Nell'URL seguente sostituire quanto segue:
- Sostituire
<databricks-instance>
con il nome dell'istanza dell'area di lavoro di Azure Databricks, ad esempioadb-1234567890123456.7.azuredatabricks.net
. - Sostituire
<redirect-url>
con un URL di reindirizzamento al computer locale, ad esempiohttp://localhost:8020
. - Sostituire
<state>
con una stringa di testo normale che è possibile usare per verificare l'integrità del codice di autorizzazione. - Sostituire
<code-challenge>
con la richiesta di verifica del codice generata nel passaggio 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
- Sostituire
Quando richiesto, seguire le istruzioni visualizzate per accedere all'area di lavoro di Azure Databricks.
Nella barra degli indirizzi del web browser copiare il codice di autorizzazione. Il codice di autorizzazione è la stringa completa di caratteri tra il carattere
code=
e&
nell'URL. Ad esempio, il codice di autorizzazione nell'URL seguente èdcod...7fe6
:http://localhost:8020/?code=dcod...7fe6&state=<state>
È necessario verificare l'integrità di questo codice di autorizzazione confermando visivamente che il
<state>
valore in questo URL di risposta corrisponda alstate
valore specificato nell'URL della richiesta. Se i valori sono diversi, non è consigliabile usare questo codice di autorizzazione, perché potrebbe essere compromesso.
Passaggio 3: Usare il codice di autorizzazione per generare un token di accesso OAuth
Usare il codice di autorizzazione OAuth del passaggio precedente per generare un token di accesso OAuth di Azure Databricks, come indicato di seguito:
- Per chiamare API REST a livello di account e a livello di area di lavoro all'interno di account e aree di lavoro a cui ha accesso l'account utente di Azure Databricks, usare il codice di autorizzazione a livello di account per generare un token di accesso a livello di account.
- Per chiamare le API REST all'interno di una sola area di lavoro a cui l'account utente ha accesso, è possibile usare il codice di autorizzazione a livello di area di lavoro per generare un token di accesso a livello di area di lavoro solo per tale area di lavoro.
Generare un token di accesso a livello di account
Usare un client come
curl
insieme al codice di autorizzazione a livello di account per generare il token di accesso OAuth a livello di account. Nella chiamatacurl
seguente, sostituire i segnaposto seguenti:- Sostituire
<account-id>
con l'ID account del passaggio 2. - Sostituire
<redirect-url>
con l'URL di reindirizzamento del passaggio 2. - Sostituire
<code-verifier>
con il verificatore di codice generato nel passaggio 1. - Sostituire
<authorization-code>
con il codice di autorizzazione a livello di account generato nel passaggio 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>"
- Sostituire
Nella risposta copiare il token di accesso OAuth a livello di account. Il token di accesso è la stringa completa di caratteri nell'oggetto
access_token
. Ad esempio, il token di accesso nella risposta seguente èeyJr...Dkag
:{ "access_token": "eyJr...Dkag", "refresh_token": "doau...f26e", "scope": "all-apis offline_access", "token_type": "Bearer", "expires_in": 3600 }
I token di accesso scadono entro un'ora. Per generare un nuovo token di accesso, ripetere questa procedura dal passaggio 1.
Passare al Passaggio 4: Chiamare un'API REST di Databricks.
Generare un token di accesso all'area di lavoro
Usare un client come
curl
insieme al codice di autorizzazione a livello di area di lavoro per generare il token di accesso OAuth a livello di area di lavoro. Nella chiamatacurl
seguente, sostituire i segnaposto seguenti:- Sostituire
<databricks-instance>
con il nome dell'istanza dell'area di lavoro di Azure Databricks, ad esempioadb-1234567890123456.7.azuredatabricks.net
. - Sostituire
<redirect-url>
con l'URL di reindirizzamento del passaggio 2. - Sostituire
<code-verifier>
con il verificatore di codice generato nel passaggio 1. - Sostituire
<authorization-code>
con il codice di autorizzazione a livello di area di lavoro generato nel passaggio 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>"
- Sostituire
Nella risposta copiare il token di accesso OAuth a livello di area di lavoro. Il token di accesso è la stringa completa di caratteri nell'oggetto
access_token
. Ad esempio, il token di accesso nella risposta seguente èeyJr...Dkag
:{ "access_token": "eyJr...Dkag", "refresh_token": "doau...f26e", "scope": "all-apis offline_access", "token_type": "Bearer", "expires_in": 3600 }
I token di accesso scadono entro un'ora. Per generare un nuovo token di accesso, ripetere questa procedura dal passaggio 1.
Passaggio 4: Chiamare un'API REST di Databricks
Usare il token di accesso OAuth a livello di account o a livello di area di lavoro per eseguire l'autenticazione alle API REST a livello di account di Azure Databricks e alle API REST a livello di area di lavoro, a seconda dell'ambito del token di accesso. L'account utente di Azure Databricks deve essere un amministratore dell'account per chiamare le API REST a livello di account.
Esempio di richiesta API REST a livello di account
Questo esempio usa curl
insieme a Bearer
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 a livello di account. - 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 curl
insieme a Bearer
autenticazione per elencare tutti i cluster disponibili nell'area di lavoro specificata.
- Sostituire
<oauth-access-token>
con il token di accesso OAuth a livello di account o a livello di area di lavoro. - Sostituire
<databricks-instance>
con il nome dell'istanza dell'area di lavoro di Azure Databricks, ad esempioadb-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"