Condividi tramite


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 esempio https://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:

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:

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:

VS Code

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

  1. Nel riquadro Configurazione, fare clic su Configura Databricks.
  2. Nel Riquadro Comandi, per Host Databricks, immettere l'URL per area di lavoro, ad esempio https://adb-1234567890123456.7.azuredatabricks.net e poi cliccare Enter.
  3. Selezionare OAuth (da utente a computer).
  4. 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 valore https://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:

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 valore https://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:

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 valore https://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

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

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:

Generare un codice di autorizzazione a livello di account

  1. Accedere alla console dell'account come amministratore dell'account.

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

  3. Copiare l’ID account.

  4. 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 esempio http://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_url=<redirect-url>
    &response_type=code
    &state=<state>
    &code_challenge=<code-challenge>
    &code_challenge_method=S256
    &scope=all-apis+offline_access
    
  5. Quando richiesto, seguire le istruzioni visualizzate per accedere all'account Azure Databricks.

  6. 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 al state valore specificato nell'URL della richiesta. Se i valori sono diversi, non è consigliabile usare questo codice di autorizzazione, perché potrebbe essere compromesso.

  7. Passare a Generare un token di accesso a livello di account.

Generare un codice di autorizzazione a livello di area di lavoro

  1. 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 esempio adb-1234567890123456.7.azuredatabricks.net.
    • Sostituire <redirect-url> con un URL di reindirizzamento al computer locale, ad esempio http://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
    
  2. Quando richiesto, seguire le istruzioni visualizzate per accedere all'area di lavoro di Azure Databricks.

  3. 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 al state 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:

Generare un token di accesso a livello di account

  1. 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 chiamata curl 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>"
    
  2. 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.

  3. Passare al Passaggio 4: Chiamare un'API REST di Databricks.

Generare un token di accesso all'area di lavoro

  1. 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 chiamata curl seguente, sostituire i segnaposto seguenti:

    • Sostituire <databricks-instance> con il nome dell'istanza dell'area di lavoro di Azure Databricks, ad esempio adb-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>"
    
  2. 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 esempio adb-1234567890123456.7.azuredatabricks.net.
export OAUTH_TOKEN=<oauth-access-token>

curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
"https://<databricks-instance>/api/2.0/clusters/list"