Condividi tramite


Autenticazione da utente a computer (U2M) OAuth

L'autenticazione da utente a computer (U2M) OAuth usa l'accesso umano in tempo reale e il consenso per autenticare l'account utente di Azure Databricks di destinazione. Dopo l'accesso e il consenso dell'utente alla richiesta di autenticazione OAuth, viene assegnato un token OAuth allo strumento o all'SDK partecipante per eseguire l'autenticazione basata su token da quel momento in poi per conto dell'utente. Il token OAuth ha una durata di un'ora, in seguito alla quale lo strumento o l'SDK coinvolto eseguirà un tentativo in background automatico di ottenere un nuovo token valido anche per un'ora.

Per configurare l'autenticazione U2M OAuth con Azure Databricks, è necessario impostare le variabili di ambiente, .databrickscfg i campi, i campi terraform o Config i campi associati seguenti:

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

Per eseguire l'autenticazione U2M OAuth con Azure Databricks, integrare quanto segue all'interno del codice, in base allo strumento o all'SDK partecipante. Si noti che, a seconda delle operazioni di Azure Databricks chiamate dal codice, non è necessario necessariamente essere un amministratore per l'account Azure Databricks:

Ambiente

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

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

  • DATABRICKS_HOST, impostare 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, impostare sul valore dell'URL di Azure Databricks per area di lavoro, ad esempio https://adb-1234567890123456.7.azuredatabricks.net.

Profilo

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

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

[<some-unique-configuration-profile-name>]
host       = <account-console-url>
account_id = <account-id>

Per le operazioni a livello di area di lavoro, impostare i valori seguenti nel .databrickscfg file. In questo caso, l'host è l'URL di Azure Databricks per area di lavoro, ad esempio https://adb-1234567890123456.7.azuredatabricks.net:

[<some-unique-configuration-profile-name>]
host = <workspace-url>

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 altre informazioni, vedere Autenticazione da utente a computer (U2M) OAuth.

Connessione

Nota

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

  • Per Python, Databricks Connessione per Databricks Runtime 13.1 e versioni successive.
  • Per Scala, Databricks Connessione per Databricks Runtime 13.3 LTS e versioni successive.

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

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

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

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

Vs code

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

  1. 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 quindi premere 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 altri dettagli, vedere Configurare l'autenticazione U2M OAuth.

Terraform

Nota

L'autenticazione U2M OAuth non è ancora supportata.

Python

Per le operazioni a livello di account, è necessario usare prima 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:

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 sul valore dell'URL dell'area di lavoro di Azure Databricks.
  • Sostituire <account-id> con il valore dell'account Azure Databricks. Vedere Individuare l'ID account.

Nota

Se si dispone di un profilo di configurazione di Azure Databricks esistente con i host campi 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 l'autenticazione predefinita:

from databricks.sdk import AccountClient

a = AccountClient()
# ...

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

from databricks.sdk import AccountClient

a = AccountClient(
  host       = retrieveAccountConsoleUrl(),
  account_id = retrieveAccountId()
)
# ...

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 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:

databricks auth login --host <worskpace-url>

Sostituire il segnaposto <workspace-url> con l'URL di Azure Databricks di destinazione per area di lavoro, ad esempio https://adb-1234567890123456.7.azuredatabricks.net.

Nota

Se si dispone di un profilo di configurazione di Azure Databricks esistente con il host campo già impostato, è possibile sostituire --host <workspace-url> con --profile <profile-name>.

Ater si esegue 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 l'autenticazione predefinita:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

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

from databricks.sdk import WorkspaceClient

w = WorkspaceClient(host = 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, vedere:

Java

Per le operazioni a livello di account, è 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 <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 sul valore dell'URL dell'area di lavoro di Azure Databricks.
  • Sostituire <account-id> con il valore dell'account Azure Databricks. Vedere Individuare l'ID account.

Nota

Se si dispone di un profilo di configurazione di Azure Databricks esistente con i host campi 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 Java simile a uno dei frammenti di codice seguenti:

Per l'autenticazione predefinita:

import com.databricks.sdk.AccountClient;
// ...
AccountClient a = new AccountClient();
// ...

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

import com.databricks.sdk.AccountClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
  .setHost(retrieveAccountConsoleUrl())
  .setAccountId(retrieveAccountId());
AccountClient a = new AccountClient(cfg);
// ...

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 di Azure Databricks di destinazione per area di lavoro, ad esempio https://adb-1234567890123456.7.azuredatabricks.net.

Nota

Se si dispone di un profilo di configurazione di Azure Databricks esistente con il host campo 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 Java simile a uno dei frammenti di codice seguenti:

Per l'autenticazione predefinita:

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

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

import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
  .setHost(retrieveWorkspaceUrl())
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, vedere:

Go

Per le operazioni a livello di account, è 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 <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 sul valore dell'URL dell'area di lavoro di Azure Databricks.
  • Sostituire <account-id> con il valore dell'account Azure Databricks. Vedere Individuare l'ID account.

Nota

Se si dispone di un profilo di configurazione di Azure Databricks esistente con i host campi 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 l'autenticazione predefinita:

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

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

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 di Azure Databricks di destinazione per area di lavoro, ad esempio https://adb-1234567890123456.7.azuredatabricks.net.

Nota

Se si dispone di un profilo di configurazione di Azure Databricks esistente con il host campo 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 l'autenticazione predefinita:

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

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

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
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, vedere Autenticare Databricks SDK for Go con l'account o l'area di lavoro di Azure Databricks.

Generare e usare manualmente i token di accesso per l'autenticazione da utente a computer (U2M) 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 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. La richiesta di codice verrà usata più avanti nel passaggio 2 per generare un codice di autorizzazione OAuth. Usare il verificatore del codice e il codice di autorizzazione più avanti 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 invece 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-9e 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, vedere Richiesta di autorizzazione.

È 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. Come amministratore dell'account, accedere alla console dell'account.

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

  3. Copiare l'ID account.

  4. Nella barra degli indirizzi del Web browser passare all'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 l'IDaccount 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 code= e il & carattere 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 passare all'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 code= e il & carattere 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 seguente curl 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
    }
    

    Questo token di accesso scade in 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 a livello di 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 seguente curl 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
    }
    

    Questo token di accesso scade in 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 Bearer all'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 Bearer all'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"