Autenticar o acesso no Azure Databricks com uma conta de usuário usando OAuth (OAuth U2M)

O Azure Databricks usa a autenticação OAuth U2M (usuário para computador) para habilitar o acesso da CLI e da API à conta do Azure Databricks e aos recursos do workspace em nome de um usuário. Depois que um usuário faz login inicialmente e consente com a solicitação de autenticação OAuth, um token OAuth é fornecido à ferramenta participante ou SDK para executar a autenticação baseada em token em nome do usuário daquele momento em diante. O token OAuth tem um tempo de vida de uma hora, após o qual a ferramenta ou SDK envolvido fará uma tentativa automática em segundo plano para obter um novo token que também é válido por uma hora.

O Azure Databricks oferece suporte a duas maneiras de autenticar o acesso para uma conta de usuário com OAuth:

  • Principalmente automaticamente, usando o suporte à autenticação de cliente unificada do Databricks. Use essa abordagem simplificada se você estiver usando SDKs (como o SDK do Databricks Terraform) e ferramentas específicos do Azure Databricks. As ferramentas e SDKs com suporte estão listados na autenticação de cliente unificada do Databricks.
  • Manualmente, gerando diretamente um par de verificador/desafio de código OAuth e um código de autorização e usando-os para criar o token OAuth inicial que você fornecerá em sua configuração. Use essa abordagem quando não estiver usando uma API compatível com a autenticação unificada de cliente do Databricks. Para obter mais detalhes, consulte Gerar manualmente e usar tokens de acesso para autenticação U2M (usuário para computador) do OAuth.

Autenticação U2M com autenticação de cliente unificada do Databricks

Observação

Antes de começar a configurar sua autenticação, revise as permissões de ACL para uma categoria específica de operações em objetos de espaço de trabalho e determine se sua conta tem o nível de acesso necessário. Para obter detalhes, confira Listas de controle de acesso.

Para executar a autenticação OAuth U2M com SDKs e ferramentas do Azure Databricks que oferecem suporte à autenticação unificada de cliente, integre o seguinte ao seu código:

Ambiente

Para usar variáveis de ambiente para um tipo de autenticação do Azure Databricks específico com uma ferramenta ou SDK, consulte Autenticar o acesso a recursos do Azure Databricks ou a documentação da ferramenta ou SDK. Consulte também Variáveis de ambiente e campos para autenticação unificada do cliente e Métodos padrão para autenticação unificada do cliente.

Para operações no nível da conta, defina as seguintes variáveis de ambiente:

  • DATABRICKS_HOST, definido como o valor da URL do console da sua conta do Azure Databricks, https://accounts.azuredatabricks.net.
  • DATABRICKS_ACCOUNT_ID

Para operações no nível do workspace, defina as seguintes variáveis de ambiente:

  • DATABRICKS_HOST, defina o valor da sua URL por workspace do Azure Databricks, por exemplo, https://adb-1234567890123456.7.azuredatabricks.net.

Perfil

Crie ou identifique um perfil de configuração do Azure Databricks com os seguintes campos em seu arquivo do .databrickscfg. Se você criar o perfil, substitua os espaços reservados pelos valores apropriados. Para usar o perfil com uma ferramenta ou SDK, consulte Autenticar o acesso a recursos do Azure Databricks ou a documentação da ferramenta ou SDK. Consulte também Variáveis de ambiente e campos para autenticação unificada do cliente e Métodos padrão para autenticação unificada do cliente.

Para operações no nível da conta, defina os seguintes valores em seu arquivo .databrickscfg. Nesse caso, a URL do console da conta do Azure Databricks é https://accounts.azuredatabricks.net:

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

Para operações no nível do workspace, defina os seguintes valores em seu arquivo .databrickscfg. Nesse caso, o host é a URL por workspace do Azure Databricks, por exemplo https://adb-1234567890123456.7.azuredatabricks.net:

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

CLI

Para a CLI do Databricks, execute o comando databricks auth login com as opções a seguir:

Depois de executar esse comando, siga as instruções no navegador da Web para fazer logon em sua conta ou workspace do Azure Databricks.

Para obter mais detalhes, consulte Autenticação OAuth U2M com a CLI do Databricks.

Conectar

Observação

A autenticação U2M do OAuth é compatível com as seguintes versões do Databricks Connect:

  • Para Python, Databricks Connect para o Databricks Runtime 13.1 e superior.
  • No caso do Scala, o Databricks Connect para Databricks Runtime 13.3 LTS e superior.

No Databricks Connect, siga um destes procedimentos:

  • Defina os valores em seu arquivo .databrickscfg para operações no nível do workspace do Azure Databricks, conforme especificado na seção "Perfil" deste artigo. Defina também a variável de ambiente cluster_id no seu perfil como a URL por workspace, por exemplo, https://adb-1234567890123456.7.azuredatabricks.net.
  • Defina as variáveis de ambiente para operações no nível do workspace do Azure Databricks, conforme especificado na seção "Ambiente" deste artigo. Defina também a variável de ambiente DATABRICKS_CLUSTER_ID como a URL por workspace, por exemplo, https://adb-1234567890123456.7.azuredatabricks.net.

Os valores do arquivo .databrickscfg sempre têm precedência sobre as variáveis de ambiente.

Para inicializar o cliente do Databricks Connect com essas variáveis de ambiente ou esses valores no arquivo .databrickscfg, confira um dos seguintes artigos:

Código VS

Na extensão do Databricks para Visual Studio Code, faça o seguinte:

  1. No painel Configuração, clique em Configurar o Databricks.
  2. Na Paleta de Comandos, em Host do Databricks, insira a URL por workspace, por exemplo, https://adb-1234567890123456.7.azuredatabricks.net, e pressione Enter.
  3. Selecione OAuth (usuário para computador).
  4. Conclua as instruções na tela no navegador da Web para concluir a autenticação com sua conta do Azure Databricks e permitir o acesso a todas as APIs.

Para obter mais detalhes, consulte Autenticação OAuth U2M com a CLI do Databricks.

Terraform

Observação

Ainda não há suporte para a autenticação U2M do OAuth.

Python

Para operações no nível da conta e no nível do espaço de trabalho, primeiro você deve usar a CLI do Databricks para executar o comando a seguir, antes de executar seu código Python. Este comando instrui a CLI do Databricks a gerar e armazenar em cache o token OAuth necessário no caminho .databricks/token-cache.json dentro da pasta inicial do usuário em seu computador:

Configurar para operações no nível da conta do Databricks

databricks auth login --host <account-console-url> --account-id <account-id>

Substitua os seguintes espaços reservados:

  • Substitua <account-console-url> pelo valor https://accounts.azuredatabricks.net. (Não defina isso com o valor da URL do seu workspace do Azure Databricks.)
  • Substitua <account-id> pelo valor da sua conta do Azure Databricks. Confira Localizar a ID da conta.

Observação

Se você tiver um perfil de configuração do Azure Databricks com os campos host e account_id já definidos, poderá substituir --host <account-console-url> --account-id <account-id> por --profile <profile-name>.

Depois de executar o comando auth login, você será solicitado a salvar a URL de logon da conta e a ID da conta como um perfil de configuração do Azure Databricks. Quando solicitado, insira o nome de um perfil novo ou existente em seu arquivo .databrickscfg. Qualquer perfil existente com o mesmo nome em seu arquivo .databrickscfg é substituído.

Se solicitado, conclua as instruções na tela do navegador da Web para concluir o logon. Em seguida, use código Python semelhante a um dos seguintes snippets:

Para autenticação padrão:

from databricks.sdk import AccountClient

a = AccountClient()
# ...

Para a configuração direta (substitua os espaços reservados retrieve por sua própria implantação para recuperar os valores do console ou de algum outro repositório de configurações, como o Azure KeyVault). Nesse caso, a URL do console da conta do Azure Databricks é https://accounts.azuredatabricks.net:

from databricks.sdk import AccountClient

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

Configurar para operações no nível do espaço de trabalho do Azure Databricks

databricks auth login --host <worskpace-url>

Substitua o espaço reservado <workspace-url> pela URL por workspace do Azure Databricks de destino, por exemplo, https://adb-1234567890123456.7.azuredatabricks.net.

Observação

Se você tiver um perfil de configuração do Azure Databricks com o campo host já definido, poderá substituir --host <workspace-url> por --profile <profile-name>.

Depois de executar o comando auth login, você será solicitado a salvar a URL do workspace como um perfil de configuração do Azure Databricks. Quando solicitado, insira o nome de um perfil novo ou existente em seu arquivo .databrickscfg. Qualquer perfil existente com o mesmo nome em seu arquivo .databrickscfg é substituído.

Se solicitado, conclua as instruções na tela do navegador da Web para concluir o logon. Em seguida, use código Python semelhante a um dos seguintes snippets:

Para autenticação padrão:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

Para a configuração direta (substitua os espaços reservados retrieve por sua própria implantação para recuperar os valores do console ou de algum outro repositório de configurações, como o Azure KeyVault). Nesse caso, o host é a URL por workspace do Azure Databricks, por exemplo https://adb-1234567890123456.7.azuredatabricks.net:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient(host = retrieveWorkspaceUrl())
# ...

Para obter mais informações sobre como autenticar com as ferramentas e SDKs do Databricks que usam o Python e que implementam a autenticação unificada do cliente do Databricks, consulte:

Java

Para operações no nível da conta e no nível do espaço de trabalho, você deve usar a CLI do Databricks para executar o comando a seguir antes de executar o código Java. Este comando instrui a CLI do Databricks a gerar e armazenar em cache o token OAuth necessário no caminho .databricks/token-cache.json dentro da pasta inicial do usuário em seu computador:

Configurar para operações no nível da conta do Databricks

databricks auth login --host <account-console-url> --account-id <account-id>

Substitua os seguintes espaços reservados:

  • Substitua <account-console-url> pelo valor https://accounts.azuredatabricks.net. (Não defina isso com o valor da URL do seu workspace do Azure Databricks.)
  • Substitua <account-id> pelo valor da sua conta do Azure Databricks. Confira Localizar a ID da conta.

Observação

Se você tiver um perfil de configuração do Azure Databricks com os campos host e account_id já definidos, poderá substituir --host <account-console-url> --account-id <account-id> por --profile <profile-name>.

Depois de executar o comando auth login, você será solicitado a salvar a URL de logon da conta e a ID da conta como um perfil de configuração do Azure Databricks. Quando solicitado, insira o nome de um perfil novo ou existente em seu arquivo .databrickscfg. Qualquer perfil existente com o mesmo nome em seu arquivo .databrickscfg é substituído.

Se solicitado, conclua as instruções na tela do navegador da Web para concluir o logon. Em seguida, use o código Java semelhante a um dos seguintes snippets:

Para autenticação padrão:

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

Para a configuração direta (substitua os espaços reservados retrieve por sua própria implantação para recuperar os valores do console ou de algum outro repositório de configurações, como o Azure KeyVault). Nesse caso, a URL do console da conta do 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);
// ...

Configurar para operações no nível do espaço de trabalho do Azure Databricks

Para operações no nível do workspace, primeiro você deve usar a CLI do Databricks para executar o comando a seguir, antes de executar o código Java. Este comando instrui a CLI do Databricks a gerar e armazenar em cache o token OAuth necessário no caminho .databricks/token-cache.json dentro da pasta inicial do usuário em seu computador:

databricks auth login --host <worskpace-url>

Substitua o espaço reservado <workspace-url> pela URL por workspace do Azure Databricks de destino, por exemplo, https://adb-1234567890123456.7.azuredatabricks.net.

Observação

Se você tiver um perfil de configuração do Azure Databricks com o campo host já definido, poderá substituir --host <workspace-url> por --profile <profile-name>.

Depois de executar o comando auth login, você será solicitado a salvar a URL do workspace como um perfil de configuração do Azure Databricks. Quando solicitado, insira o nome de um perfil novo ou existente em seu arquivo .databrickscfg. Qualquer perfil existente com o mesmo nome em seu arquivo .databrickscfg é substituído.

Se solicitado, conclua as instruções na tela do navegador da Web para concluir o logon. Em seguida, use o código Java semelhante a um dos seguintes snippets:

Para autenticação padrão:

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

Para a configuração direta (substitua os espaços reservados retrieve por sua própria implantação para recuperar os valores do console ou de algum outro repositório de configurações, como o Azure KeyVault). Nesse caso, o host é a URL por workspace do Azure Databricks, por exemplo 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);
// ...

Para obter mais informações sobre como autenticar com as ferramentas e SDKs do Databricks que usam Java e que implementam a autenticação unificada do cliente do Databricks, consulte:

Go

Para operações no nível da conta e no nível do espaço de trabalho, você deve usar a CLI do Databricks para executar o comando a seguir, antes de executar o código Go. Este comando instrui a CLI do Databricks a gerar e armazenar em cache o token OAuth necessário no caminho .databricks/token-cache.json dentro da pasta inicial do usuário em seu computador:

Configurar para operações no nível da conta do Databricks

databricks auth login --host <account-login-url> --account-id <account-id>

Substitua os seguintes espaços reservados:

  • Substitua <account-console-url> pelo valor https://accounts.azuredatabricks.net. (Não defina isso com o valor da URL do seu workspace do Azure Databricks.)
  • Substitua <account-id> pelo valor da sua conta do Azure Databricks. Confira Localizar a ID da conta.

Observação

Se você tiver um perfil de configuração do Azure Databricks com os campos host e account_id já definidos, poderá substituir --host <account-console-url> --account-id <account-id> por --profile <profile-name>.

Depois de executar o comando auth login, você será solicitado a salvar a URL de logon da conta e a ID da conta como um perfil de configuração do Azure Databricks. Quando solicitado, insira o nome de um perfil novo ou existente em seu arquivo .databrickscfg. Qualquer perfil existente com o mesmo nome em seu arquivo .databrickscfg é substituído.

Se solicitado, conclua as instruções na tela do navegador da Web para concluir o logon. Em seguida, use o código Go semelhante a um dos seguintes snippets:

Para autenticação padrão:

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

Para a configuração direta (substitua os espaços reservados retrieve por sua própria implantação para recuperar os valores do console ou de algum outro repositório de configurações, como o Azure KeyVault). Nesse caso, a URL do console da conta do Azure Databricks é https://accounts.azuredatabricks.net:

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
  Host:      retrieveAccountConsoleUrl(),
  AccountId: retrieveAccountId(),
}))
// ...

Configurar para operações no nível do espaço de trabalho do Azure Databricks

Para operações no nível do workspace, primeiro você deve usar a CLI do Databricks para executar o comando a seguir, antes de executar o código Go. Este comando instrui a CLI do Databricks a gerar e armazenar em cache o token OAuth necessário no caminho .databricks/token-cache.json dentro da pasta inicial do usuário em seu computador:

databricks auth login --host <worskpace-url>

Substitua o espaço reservado <workspace-url> pela URL por workspace do Azure Databricks de destino, por exemplo, https://adb-1234567890123456.7.azuredatabricks.net.

Observação

Se você tiver um perfil de configuração do Azure Databricks com o campo host já definido, poderá substituir --host <workspace-url> por --profile <profile-name>.

Depois de executar o comando auth login, você será solicitado a salvar a URL do workspace como um perfil de configuração do Azure Databricks. Quando solicitado, insira o nome de um perfil novo ou existente em seu arquivo .databrickscfg. Qualquer perfil existente com o mesmo nome em seu arquivo .databrickscfg é substituído.

Se solicitado, conclua as instruções na tela do navegador da Web para concluir o logon. Em seguida, use o código Go semelhante a um dos seguintes snippets:

Para autenticação padrão:

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

Para a configuração direta (substitua os espaços reservados retrieve por sua própria implantação para recuperar os valores do console ou de algum outro repositório de configurações, como o Azure KeyVault). Nesse caso, o host é a URL por workspace do Azure Databricks, por exemplo https://adb-1234567890123456.7.azuredatabricks.net:

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
  Host: retrieveWorkspaceUrl(),
}))
// ...

Para obter mais informações sobre como autenticar com as ferramentas e SDKs do Databricks que usam o Go e que implementam a autenticação unificada do cliente do Databricks, consulte Autenticar o SDK do Databricks para o Go com sua conta ou espaço de trabalho do Azure Databricks.

Gerar manualmente e usar tokens de acesso para autenticação U2M (usuário para computador) do OAuth

As ferramentas e SDKs do Azure Databricks que implementam a autenticação unificada do cliente do Databricks padrão irão gerar, atualizar e usar automaticamente os tokens de acesso OAuth do Azure Databricks em seu nome, conforme necessário para a autenticação U2M do OAuth.

Se, por algum motivo, você precisar gerar, atualizar ou usar manualmente tokens de acesso OAuth do Azure Databricks para autenticação U2M do OAuth, siga as instruções nesta seção.

Etapa 1: Gerar um verificador de código e um par de desafios de código OAuth

Para gerar manualmente e usar tokens de acesso para autenticação U2M do OAuth, primeiro você deve ter um verificador de código OAuth e um desafio de código OAuth derivado do verificador de código. Use o desafio de código na Etapa 2 para gerar um código de autorização OAuth. Use o verificador de código e o código de autorização na Etapa 3 para gerar o token de acesso OAuth.

Observação

Embora seja tecnicamente possível usar strings de texto sem formatação e não codificadas para o verificador de código e o desafio de código, o Databricks incentiva a seguir o padrão OAuth para gerar o verificador de código e o desafio de código.

Especificamente, o verificador de código deve ser uma cadeia de caracteres criptograficamente aleatória usando caracteres dos conjuntos A-Z, a-z, 0-9, e os caracteres de pontuação -._~ (hífen, ponto, sublinhado e til), entre 43 e 128 caracteres. O desafio de código deve ser uma cadeia de caracteres de URL codificada em base64 do hash SHA256 do verificador de código. Para obter mais informações, consulte Solicitação de Autorização.

Execute o script Python a seguir para gerar rapidamente um par de desafios de código e um verificador de código exclusivos. Embora você possa reutilizar esse verificador de código gerado e o par de desafios de código várias vezes, o Databricks recomenda que você gere um novo verificador de código e um par de desafios de código sempre que gerar manualmente tokens de acesso para autenticação U2M do 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}")

Etapa 2: Gerar um código de autorização

Use um código de autorização OAuth para gerar um token de acesso OAuth do Azure Databricks. O código de autorização expira imediatamente após o uso para gerar um token de acesso OAuth do Azure Databricks. O escopo do código de autorização depende do nível do qual você o gera. Você pode gerar um código de autorização no nível da conta ou no nível do workspace do Azure Databricks, da seguinte maneira:

Gerar um código de autorização no nível da conta

  1. Como administrador de conta, faça logon no console da conta.

  2. Clique na seta para baixo ao lado do seu nome de usuário no canto superior direito.

  3. Copie sua ID da conta.

  4. Navegue até a seguinte URL na barra de endereços do navegador da Web. Quebras de linha foram adicionadas para facilitar a leitura. Sua URL não deve conter essas quebras de linha.

    Na URL a seguir, substitua o seguinte:

    • Substitua <account-id> pela ID da conta copiada.
    • Substitua <redirect-url> por uma URL de redirecionamento para seu computador local, por exemplo, http://localhost:8020.
    • Substitua <state> por alguma cadeia de caracteres de texto sem formatação que você pode usar para verificar a integridade do código de autorização.
    • Substitua <code-challenge> pelo desafio de código gerado na Etapa 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
    
  5. Quando solicitado, siga as instruções na tela para fazer logon em sua conta do Azure Databricks.

  6. Copie o código de autorização na barra de endereços do navegador da Web. O código de autorização é a cadeia de caracteres completa entre code= e o caractere & na URL. Por exemplo, o código de autorização na URL a seguir é dcod...7fe6:

    http://localhost:8020/?code=dcod...7fe6&state=<state>
    

    Verifique a integridade desse código de autorização confirmando visualmente que o valor <state> nessa URL de resposta corresponde ao valor state fornecido na URL de solicitação. Se os valores forem diferentes, não use esse código de autorização, pois ele pode estar comprometido.

  7. Pule para Gerar um token de acesso no nível da conta.

Gerar um código de autorização no nível do workspace

  1. Navegue até a seguinte URL na barra de endereços do navegador da Web. Quebras de linha foram adicionadas para facilitar a leitura. Sua URL não deve conter essas quebras de linha.

    Na URL a seguir, substitua o seguinte:

    • Substitua <databricks-instance> pelo nome da instância do workspace do Azure Databricks, por exemplo adb-1234567890123456.7.azuredatabricks.net.
    • Substitua <redirect-url> por uma URL de redirecionamento para seu computador local, por exemplo, http://localhost:8020.
    • Substitua <state> por alguma cadeia de caracteres de texto sem formatação que você pode usar para verificar a integridade do código de autorização.
    • Substitua <code-challenge> pelo desafio de código gerado na Etapa 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 solicitado, siga as instruções na tela para fazer logon no workspace do Azure Databricks.

  3. Copie o código de autorização na barra de endereços do navegador da Web. O código de autorização é a cadeia de caracteres completa entre code= e o caractere & na URL. Por exemplo, o código de autorização na URL a seguir é dcod...7fe6:

    http://localhost:8020/?code=dcod...7fe6&state=<state>
    

    Verifique a integridade desse código de autorização confirmando visualmente que o valor <state> nessa URL de resposta corresponde ao valor state fornecido na URL de solicitação. Se os valores forem diferentes, não use esse código de autorização, pois ele pode estar comprometido.

Etapa 3: Usar o código de autorização para gerar um token de acesso OAuth

Use o código de autorização OAuth da etapa anterior para gerar um token de acesso OAuth do Azure Databricks, da seguinte maneira:

Gerar um token de acesso no nível da conta

  1. Use um cliente como curl junto com o código de autorização no nível da conta para gerar o token de acesso OAuth no nível da conta. Na seguinte chamada curl, substitua os espaços reservados a seguir:

    • Substitua <account-id> pela ID de conta da Etapa 2.
    • Substitua <redirect-url> pela URL de redirecionamento da Etapa 2.
    • Substitua <code-verifier> pelo verificador de código gerado na Etapa 1.
    • Substitua <authorization-code> pelo código de autorização no nível da conta gerado na Etapa 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. Na resposta, copie o token de acesso OAuth no nível da conta. O token de acesso é a cadeia de caracteres completa no objeto access_token. Por exemplo, o token de acesso na resposta a seguir é eyJr...Dkag:

    {
      "access_token": "eyJr...Dkag",
      "refresh_token": "doau...f26e",
      "scope": "all-apis offline_access",
      "token_type": "Bearer",
      "expires_in": 3600
    }
    

    Este token de acesso expira em uma hora. Para gerar um novo token de acesso, repita este procedimento da Etapa 1.

  3. Pule para a Etapa 4: Chamar uma API REST do Databricks.

Gerar um token de acesso no nível do workspace

  1. Use um cliente como curl junto com o código de autorização no nível do workspace para gerar o token de acesso OAuth no nível do workspace. Na seguinte chamada curl, substitua os espaços reservados a seguir:

    • Substitua <databricks-instance> pelo nome da instância do workspace do Azure Databricks, por exemplo adb-1234567890123456.7.azuredatabricks.net.
    • Substitua <redirect-url> pela URL de redirecionamento da Etapa 2.
    • Substitua <code-verifier> pelo verificador de código gerado na Etapa 1.
    • Substitua <authorization-code> pelo código de autorização no nível do workspace gerado na Etapa 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. Na resposta, copie o token de acesso OAuth no nível do workspace. O token de acesso é a cadeia de caracteres completa no objeto access_token. Por exemplo, o token de acesso na resposta a seguir é eyJr...Dkag:

    {
     "access_token": "eyJr...Dkag",
     "refresh_token": "doau...f26e",
     "scope": "all-apis offline_access",
     "token_type": "Bearer",
     "expires_in": 3600
    }
    

    Este token de acesso expira em uma hora. Para gerar um novo token de acesso, repita este procedimento da Etapa 1.

Etapa 4: Chamar uma API REST do Databricks

Use o token de acesso OAuth no nível da conta ou no nível do workspace para autenticação nas APIs REST no nível da conta e APIs REST no nível do workspace do Azure Databricks, dependendo do escopo do token de acesso. Sua conta de usuário do Azure Databricks deve ser um administrador da conta para chamar APIs REST no nível da conta.

Exemplo de solicitação da API REST no nível da conta

Este exemplo usa curl junto com a autenticação Bearer para obter uma lista de todos os workspaces associados a uma conta.

  • Substitua <oauth-access-token> pelo token de acesso OAuth no nível da conta.
  • Substitua <account-id> pela ID da sua conta.
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"

Exemplo de solicitação da API REST no nível do workspace

Este exemplo usa curl junto com a autenticação Bearer para listar todos os clusters disponíveis no workspace especificado.

  • Substitua <oauth-access-token> pelo token de acesso OAuth no nível da conta ou no nível do workspace.
  • Substitua <databricks-instance> pelo nome da instância do workspace do Azure Databricks, por exemplo 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"