Share via


Autenticação OAuth user-to-machine (U2M)

A autenticação U2M (user-to-machine) do OAuth usa o logon humano em tempo real e o consentimento para autenticar a conta de usuário do Azure Databricks de destino. Depois que o usuário entra com êxito e consente com a solicitação de autenticação OAuth, um token OAuth é dado à ferramenta participante ou SDK para executar a autenticação baseada em token a partir desse momento em nome do usuário. O token OAuth tem uma vida útil de uma hora, após a 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.

Para configurar a autenticação U2M do OAuth com o Azure Databricks, você deve definir as seguintes variáveis de ambiente associadas, .databrickscfg campos, campos Terraform ou Config campos:

  • O host do Azure Databricks, especificado como https://accounts.azuredatabricks.net para operações de conta ou a URL de destino por espaço de trabalho, por exemplohttps://adb-1234567890123456.7.azuredatabricks.net, para operações de espaço de trabalho.
  • A ID da conta do Azure Databricks, para operações de conta do Azure Databricks.

Para executar a autenticação OAuth U2M com o Azure Databricks, integre o seguinte em seu código, com base na ferramenta participante ou SDK. Observe que, dependendo das operações do Azure Databricks que seu código chama, você não precisa necessariamente ser um administrador para a conta do Azure Databricks:

Environment

Para usar variáveis de ambiente para um tipo de autenticação específico do Azure Databricks com uma ferramenta ou SDK, consulte Tipos de autenticação suportados pela ferramenta ou SDK do Azure Databricks ou a documentação da ferramenta ou SDK. Consulte também Variáveis e campos de ambiente para autenticação unificada do cliente e a ordem padrão de avaliação para métodos e credenciais de 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 conta do Azure Databricks, https://accounts.azuredatabricks.net.
  • DATABRICKS_ACCOUNT_ID

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

  • DATABRICKS_HOST, definido como o valor da URL do Azure Databricks por espaço de trabalho, por exemplohttps://adb-1234567890123456.7.azuredatabricks.net.

Perfil

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

Para operações no nível da conta, defina os seguintes valores em seu .databrickscfg arquivo. 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 espaço de trabalho, defina os seguintes valores no arquivo .databrickscfg . Nesse caso, o host é a URL do Azure Databricks por espaço de trabalho, por exemplohttps://adb-1234567890123456.7.azuredatabricks.net:

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

Cli

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

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

Para obter mais detalhes, consulte Autenticação de usuário para máquina (U2M) OAuth.

Ligar

Nota

A autenticação OAuth U2M é suportada nas seguintes versões do Databricks Connect:

  • Para Python, Databricks Connect for Databricks Runtime 13.1 e superior.
  • Para Scala, Databricks Connect for Databricks Runtime 13.3 LTS e superior.

Para o Databricks Connect, você pode seguir um destes procedimentos:

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

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

Para inicializar o cliente Databricks Connect com essas variáveis ou valores de ambiente em seu .databrickscfg arquivo, consulte uma das seguintes opções:

Código Vs

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

  1. No painel Configuração, clique em Configurar Databricks.
  2. Na Paleta de comandos, para Databricks Host, insira sua URL por espaço de trabalho, por exemplo https://adb-1234567890123456.7.azuredatabricks.net, e pressione Enter.
  3. Selecione OAuth (usuário para máquina).
  4. Conclua as instruções na tela em seu 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 Configurar a autenticação OAuth U2M.

Terraform

Nota

A autenticação OAuth U2M ainda não é suportada.

Python

Para operações no nível da conta, você deve primeiro usar a CLI do Databricks para executar o seguinte comando, antes de executar o 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 sua máquina:

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 como o valor da URL do espaço de trabalho do Azure Databricks.)
  • Substitua <account-id> pelo valor da sua conta do Azure Databricks. Consulte Localizar o ID da sua conta.

Nota

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

Depois de executar o auth login comando, 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 no arquivo .databrickscfg . Qualquer perfil existente com o mesmo nome no seu .databrickscfg ficheiro é substituído.

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

Para autenticação padrão:

from databricks.sdk import AccountClient

a = AccountClient()
# ...

Para configuração direta (substitua os retrieve espaços reservados por sua própria implementação para recuperar os valores do console ou de algum outro repositório de configuração, 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()
)
# ...

Para operações no nível do espaço de trabalho, você deve primeiro usar a CLI do Databricks para executar o comando a seguir, antes de executar o 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 sua máquina:

databricks auth login --host <worskpace-url>

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

Nota

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

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

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

Para autenticação padrão:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

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

from databricks.sdk import WorkspaceClient

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

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

Java

Para operações no nível da conta, você deve primeiro usar a CLI do Databricks para executar o seguinte comando, 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 sua máquina:

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 como o valor da URL do espaço de trabalho do Azure Databricks.)
  • Substitua <account-id> pelo valor da sua conta do Azure Databricks. Consulte Localizar o ID da sua conta.

Nota

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

Depois de executar o auth login comando, 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 no arquivo .databrickscfg . Qualquer perfil existente com o mesmo nome no seu .databrickscfg ficheiro é substituído.

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

Para autenticação padrão:

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

Para configuração direta (substitua os retrieve espaços reservados por sua própria implementação para recuperar os valores do console ou de algum outro repositório de configuração, 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);
// ...

Para operações no nível do espaço de trabalho, você deve primeiro 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 sua máquina:

databricks auth login --host <worskpace-url>

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

Nota

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

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

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

Para autenticação padrão:

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

Para configuração direta (substitua os retrieve espaços reservados por sua própria implementação para recuperar os valores do console ou de algum outro repositório de configuração, como o Azure KeyVault). Nesse caso, o host é a URL do Azure Databricks por espaço de trabalho, por exemplohttps://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 a autenticação com ferramentas Databricks e SDKs que usam Java e que implementam a autenticação unificada do cliente Databricks, consulte:

Go

Para operações no nível da conta, você deve primeiro usar a CLI do Databricks para executar o seguinte comando, 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 sua máquina:

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 como o valor da URL do espaço de trabalho do Azure Databricks.)
  • Substitua <account-id> pelo valor da sua conta do Azure Databricks. Consulte Localizar o ID da sua conta.

Nota

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

Depois de executar o auth login comando, 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 no arquivo .databrickscfg . Qualquer perfil existente com o mesmo nome no seu .databrickscfg ficheiro é substituído.

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

Para autenticação padrão:

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

Para configuração direta (substitua os retrieve espaços reservados por sua própria implementação para recuperar os valores do console ou de algum outro repositório de configuração, 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(),
}))
// ...

Para operações no nível do espaço de trabalho, você deve primeiro usar a CLI do Databricks para executar o seguinte comando, 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 sua máquina:

databricks auth login --host <worskpace-url>

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

Nota

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

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

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

Para autenticação padrão:

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

Para configuração direta (substitua os retrieve espaços reservados por sua própria implementação para recuperar os valores do console ou de algum outro repositório de configuração, como o Azure KeyVault). Nesse caso, o host é a URL do Azure Databricks por espaço de trabalho, por exemplohttps://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 a autenticação com ferramentas e SDKs do Databricks que usam o Go e que implementam a autenticação unificada do cliente Databricks, consulte Autenticar o SDK do Databricks para Go com sua conta ou espaço de trabalho do Azure Databricks.

Gere e use manualmente tokens de acesso para autenticação OAuth user-to-machine (U2M)

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

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

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

Para gerar e usar manualmente tokens de acesso para autenticação OAuth U2M, você deve primeiro 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 posteriormente 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 posteriormente na Etapa 3 para gerar o token de acesso OAuth.

Nota

Embora seja tecnicamente possível usar cadeias de caracteres de texto simples não codificadas para o verificador de código e o desafio de código, o Databricks recomenda fortemente 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 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 codificada em Base64-URL do hash SHA256 do verificador de código. Para obter mais informações, consulte Solicitação de autorização.

Você pode executar o seguinte script Python para gerar rapidamente um verificador de código exclusivo e um par de desafio de código. Embora você possa reutilizar esse verificador de código gerado e par de desafio de código várias vezes, o Databricks recomenda que você gere um novo verificador de código e um par de desafio de código sempre que gerar manualmente tokens de acesso para autenticação OAuth U2M.

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

Você usa 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 você usá-lo para gerar um token de acesso OAuth do Azure Databricks. O escopo do código de autorização depende do nível a partir do qual você o gera. Você pode gerar um código de autorização no nível da conta do Azure Databricks ou no nível do espaço de trabalho, da seguinte maneira:

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

  1. Como administrador da conta, inicie sessão na consola da conta.

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

  3. Copie o ID da sua conta.

  4. Na barra de endereço do seu navegador da Web, navegue até o seguinte URL. Foram adicionadas quebras de linha para facilitar a leitura. O URL não deve conter essas quebras de linha.

    No seguinte URL, substitua o seguinte:

    • Substitua <account-id> pelo ID da conta que você copiou.
    • Substitua <redirect-url> por um URL de redirecionamento para sua máquina 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 que você gerou na Etapa 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 solicitado, siga as instruções na tela para fazer logon na sua conta do Azure Databricks.

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

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

    Você deve verificar a integridade desse código de autorização confirmando visualmente se o <state> valor nessa URL de resposta corresponde ao state valor fornecido na URL da solicitação. Se os valores forem diferentes, você não deve usar esse código de autorização, pois ele pode ser comprometido.

  7. Avançar para Gerar um token de acesso ao nível da conta.

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

  1. Na barra de endereço do seu navegador da Web, navegue até o seguinte URL. Foram adicionadas quebras de linha para facilitar a leitura. O URL não deve conter essas quebras de linha.

    No seguinte URL, substitua o seguinte:

    • Substitua <databricks-instance> pelo nome da instância do espaço de trabalho do Azure Databricks, por exemploadb-1234567890123456.7.azuredatabricks.net.
    • Substitua <redirect-url> por um URL de redirecionamento para sua máquina 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 que você gerou 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 seu espaço de trabalho do Azure Databricks.

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

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

    Você deve verificar a integridade desse código de autorização confirmando visualmente se o <state> valor nessa URL de resposta corresponde ao state valor fornecido na URL da solicitação. Se os valores forem diferentes, você não deve usar esse código de autorização, pois ele pode ser comprometido.

Etapa 3: Use 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:

  • Para chamar APIs REST no nível da conta e no nível do espaço de trabalho em contas e espaços de trabalho aos quais sua conta de usuário do Azure Databricks tem acesso, use o código de autorização no nível da conta para gerar um token de acesso no nível da conta.
  • Para chamar APIs REST em apenas um espaço de trabalho ao qual sua conta de usuário tem acesso, você pode usar o código de autorização no nível do espaço de trabalho para gerar um token de acesso no nível do espaço de trabalho somente para esse espaço de trabalho.

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 chamada a seguir curl , substitua os seguintes espaços reservados:

    • Substitua <account-id> pelo ID da Conta da Etapa 2.
    • Substitua <redirect-url> pelo URL de redirecionamento da Etapa 2.
    • Substitua <code-verifier> pelo verificador de código que você gerou na Etapa 1.
    • Substitua <authorization-code> pelo código de autorização no nível da conta que você gerou 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 completa de caracteres no access_token objeto. 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 espaço de trabalho

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

    • Substitua <databricks-instance> pelo nome da instância do espaço de trabalho do Azure Databricks, por exemploadb-1234567890123456.7.azuredatabricks.net.
    • Substitua <redirect-url> pelo URL de redirecionamento da Etapa 2.
    • Substitua <code-verifier> pelo verificador de código que você gerou na Etapa 1.
    • Substitua <authorization-code> pelo código de autorização no nível do espaço de trabalho que você gerou 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 espaço de trabalho. O token de acesso é a cadeia completa de caracteres no access_token objeto. 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

Você usa o token de acesso OAuth no nível da conta ou no espaço de trabalho para autenticar APIs REST no nível da conta do Azure Databricks e APIs REST no nível do espaço de trabalho, dependendo do escopo do token de acesso. Sua conta de usuário do Azure Databricks deve ser um administrador de conta para chamar APIs REST no nível da conta.

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

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

  • Substitua <oauth-access-token> pelo token de acesso OAuth no nível da conta.
  • Substitua <account-id> pelo 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 de API REST no nível do espaço de trabalho

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

export OAUTH_TOKEN=<oauth-access-token>

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