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

Databricks usa a autenticação OAuth user-to-machine (U2M) para permitir o acesso de CLI e API a Databricks account e workspace recurso em nome de um usuário. Depois que um usuário inicialmente faz login 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 tokens em nome do usuário a partir desse momento. Os tokens do OAuth têm uma vida útil de uma hora, após a qual a ferramenta ou o SDK envolvido fará uma tentativa automática em segundo plano para obter novos tokens que também são válidos por uma hora.

Databricks Há duas maneiras de autenticar o acesso de um usuário account com OAuth:

  • Principalmente de forma automática, usando o suporte de autenticação de cliente unificado do Databricks. Use essa abordagem simplificada se estiver usando SDKs específicos da Databricks (como o SDK do Databricks Terraform) e ferramentas. As ferramentas e os SDKs compatíveis estão listados em Autenticação de cliente unificada da Databricks.

  • Manualmente, gerando diretamente um par verificador/desafio de código OAuth e um código de autorização, e usando-os para criar os tokens OAuth iniciais que o senhor fornecerá na sua configuração. Use essa abordagem quando não estiver usando uma API compatível com a autenticação de cliente unificada da Databricks. Para obter mais detalhes, consulte: Gerar e usar manualmente access tokens para autenticação OAuth de usuário para máquina (U2M).

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

Observação

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

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

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

Para account-level operações, defina a seguinte variável de ambiente:

  • DATABRICKS_HOST, defina para o valor da URL do console da sua conta Databricks, https://accounts.cloud.databricks.com.

  • DATABRICKS_ACCOUNT_ID

Para workspace-level operações, defina a seguinte variável de ambiente:

  • DATABRICKS_HOST, defina como o valor da URL do espaço de trabalho do Databricks, por exemplo https://dbc-a1b2345c-d6e7.cloud.databricks.com.

Crie ou identifique um perfil de configuração do Databricks com os seguintes campos em seu arquivo .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 Databricks recurso ou a documentação da ferramenta ou SDK. Consulte também variável de ambiente e campos para autenticação unificada de cliente e os métodos padrão para autenticação unificada de cliente.

Para operações no nível da conta, defina os seguintes valores em seu arquivo .databrickscfg. Nesse caso, o URL do console Databricks account é https://accounts.cloud.databricks.com:

[<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 em seu arquivo .databrickscfg. Nesse caso, o host é o URL do espaço de trabalho do Databricks, por exemplo, https://dbc-a1b2345c-d6e7.cloud.databricks.com:

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

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

Depois de executar este comando, siga as instruções em seu navegador da Web para log in em sua account ou workspace do Databricks.

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

Observação

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

  • Para Python, Databricks Connect for Databricks Runtime 13.1 e acima.

  • Para Scala, Databricks Connect for Databricks Runtime 13.3 LTS e acima.

Para o Databricks Connect, você pode fazer o seguinte:

  • Defina os valores em seu arquivo .databrickscfg para Databricks workspace -level operações conforme especificado na seção "Profile" deste artigo. Defina também a variável de ambiente cluster_id em seu perfil como o URL da instância do espaço de trabalho, por exemplo, https://dbc-a1b2345c-d6e7.cloud.databricks.com.

  • Defina a variável de ambiente para Databricks workspace -level operações conforme especificado na seção "Environment" deste artigo. Defina também a variável de ambiente DATABRICKS_CLUSTER_ID como o URL da instância do workspace, por exemplo, https://dbc-a1b2345c-d6e7.cloud.databricks.com.

Os valores no seu arquivo .databrickscfg sempre têm precedência sobre a variável de ambiente.

Para inicializar o cliente Databricks Connect com essas variáveis de ambiente ou valores em seu arquivo .databrickscfg , consulte um dos seguintes:

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

  1. No painel Configuração , clique em Configurar Databricks.

  2. No comando Palette, para Databricks Host, insira a URL do seu espaço de trabalho, por exemplo https://dbc-a1b2345c-d6e7.cloud.databricks.com e pressione Enter.

  3. Selecione OAuth (usuário para máquina).

  4. Conclua as instruções na tela do seu navegador da Web para concluir a autenticação com sua account do Databricks e permitir o acesso a todas as APIs .

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

Tanto para as operações de nível accountquanto para as de nível workspace, o senhor deve usar o comando Databricks CLI para executar o seguinte comando antes de aplicar a configuração Terraform. Esse comando instrui o Databricks CLI a gerar e armazenar em cache os tokens OAuth necessários no caminho .databricks/token-cache.json dentro da pasta home do usuário em seu computador:

Configuração para operações em nível de 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.cloud.databricks.com. (Não defina esse valor para o URL do workspace do Databricks.)

  • Substitua <account-id> pelo valor de seu Databricks account. Consulte Localizar o ID de sua conta.

Observação

Se o senhor tiver um perfil de configuração do Databricks existente 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 auth login comando , o senhor será solicitado a salvar o account URL de login e o account ID como um Databricks perfil de configuração. 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 é sobrescrito.

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

Para autenticação default:

provider "databricks" {
  alias = "account"
}

Para configuração direta, defina o provider usando a configuração a seguir. Substitua os espaços reservados retrieve- por sua própria implementação para recuperar os valores do console ou de algum outro armazenamento de configuração, como o HashiCorp Vault. Consulte também Vault Provider). Neste exemplo, o senhor pode definir account_id como o URL do console Databricks account do console.

provider "databricks" {
  alias      = "account"
  host       = <retrieve-account-console-url>
  account_id = <retrieve-account-id>
}

Configuração para operações no nível do espaço de trabalho do Databricks

databricks auth login --host <workspace-url>

Substitua o espaço reservado <workspace-url> pela URL do espaço de trabalho do Databricks de destino, por exemplo https://dbc-a1b2345c-d6e7.cloud.databricks.com.

Observação

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

Depois de executar o auth login comando , o senhor será solicitado a salvar o workspace URL como um Databricks perfil de configuração. 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 é sobrescrito.

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

Para autenticação default:

provider "databricks" {
  alias = "workspace"
}

Para configuração direta (substitua os espaços reservados retrieve por sua própria implementação para recuperar os valores do console ou de algum outro armazenamento de configuração, como HashiCorp Vault. Consulte também Provedor do Vault). Nesse caso, o host é a URL do espaço de trabalho do Databricks, por exemplo https://dbc-a1b2345c-d6e7.cloud.databricks.com:

provider "databricks" {
  alias = "workspace"
  host  = <retrieve-workspace-url>
}

Para obter mais informações sobre a autenticação com o fornecedor Databricks Terraform, consulte Autenticação.

Tanto para as operações de nível accountquanto para as de nível workspace, o senhor deve usar o Databricks CLI para executar o seguinte comando antes de executar o código Python. Esse comando instrui o Databricks CLI a gerar e armazenar em cache os tokens OAuth necessários no caminho .databricks/token-cache.json dentro da pasta home do usuário em seu computador:

Configuração para operações em nível de 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.cloud.databricks.com. (Não defina esse valor para o URL do workspace do Databricks.)

  • Substitua <account-id> pelo valor de seu Databricks account. Consulte Localizar o ID de sua conta.

Observação

Se o senhor tiver um perfil de configuração do Databricks existente 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 auth login comando , o senhor será solicitado a salvar o account URL de login e o account ID como um Databricks perfil de configuração. 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 é sobrescrito.

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

Para autenticação default:

from databricks.sdk import AccountClient

a = AccountClient()
# ...

Para configuração direta (substitua os placeholders do retrieve por sua própria implementação para recuperar os valores do console ou algum outro armazenamento de configuração, como AWS Systems Manager Parameter Store). Nesse caso, a URL do console da conta Databricks é https://accounts.cloud.databricks.com:

from databricks.sdk import AccountClient

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

Configuração para operações no nível do espaço de trabalho do Databricks

databricks auth login --host <worskpace-url>

Substitua o espaço reservado <workspace-url> pela URL do espaço de trabalho do Databricks de destino, por exemplo https://dbc-a1b2345c-d6e7.cloud.databricks.com.

Observação

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

Depois de executar o auth login comando , o senhor será solicitado a salvar o workspace URL como um Databricks perfil de configuração. 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 é sobrescrito.

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

Para autenticação default:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

Para configuração direta (substitua os espaços reservados retrieve por sua própria implementação para recuperar os valores do console ou de algum outro armazenamento de configuração, como AWS Systems Manager Parameter Store). Nesse caso, o host é a URL do espaço de trabalho do Databricks, por exemplo https://dbc-a1b2345c-d6e7.cloud.databricks.com:

from databricks.sdk import WorkspaceClient

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

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

Tanto para as operações de nível accountquanto para as de nível workspace, o senhor deve usar o Databricks CLI para executar o seguinte comando antes de executar o código Java. Esse comando instrui o Databricks CLI a gerar e armazenar em cache os tokens OAuth necessários no caminho .databricks/token-cache.json na pasta home do usuário em seu computador:

Configuração para operações em nível de 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.cloud.databricks.com. (Não defina esse valor para o URL do workspace do Databricks.)

  • Substitua <account-id> pelo valor de seu Databricks account. Consulte Localizar o ID de sua conta.

Observação

Se o senhor tiver um perfil de configuração do Databricks existente 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 auth login comando , o senhor será solicitado a salvar o account URL de login e o account ID como um Databricks perfil de configuração. 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 é sobrescrito.

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

Para autenticação default:

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

Para configuração direta (substitua os placeholders do retrieve por sua própria implementação para recuperar os valores do console ou algum outro armazenamento de configuração, como AWS Systems Manager Parameter Store). Nesse caso, a URL do console da conta Databricks é https://accounts.cloud.databricks.com:

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

Configuração para operações no nível do espaço de trabalho do Databricks

Para operações de nívelworkspace, o senhor deve primeiro usar o Databricks CLI para executar o seguinte comando, antes de executar o código Java. Esse comando instrui o Databricks CLI a gerar e armazenar em cache os tokens OAuth necessários no caminho .databricks/token-cache.json dentro da pasta home do usuário em seu computador:

databricks auth login --host <worskpace-url>

Substitua o espaço reservado <workspace-url> pela URL do espaço de trabalho do Databricks de destino, por exemplo https://dbc-a1b2345c-d6e7.cloud.databricks.com.

Observação

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

Depois de executar o auth login comando , o senhor será solicitado a salvar o workspace URL como um Databricks perfil de configuração. 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 é sobrescrito.

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

Para autenticação default:

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

Para configuração direta (substitua os espaços reservados retrieve por sua própria implementação para recuperar os valores do console ou de algum outro armazenamento de configuração, como AWS Systems Manager Parameter Store). Nesse caso, o host é a URL do espaço de trabalho do Databricks, por exemplo https://dbc-a1b2345c-d6e7.cloud.databricks.com:

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 autenticação com ferramentas e SDKs do Databricks que usam Java e que implementam autenticação unificada do cliente Databricks, consulte:

Tanto para as operações de nível accountquanto para as de nível workspace, o senhor deve usar o comando Databricks CLI para executar o seguinte comando antes de executar o código Go. Esse comando instrui o Databricks CLI a gerar e armazenar em cache os tokens OAuth necessários no caminho .databricks/token-cache.json dentro da pasta home do usuário em seu computador:

Configuração para operações em nível de 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.cloud.databricks.com. (Não defina esse valor para o URL do workspace do Databricks.)

  • Substitua <account-id> pelo valor de seu Databricks account. Consulte Localizar o ID de sua conta.

Observação

Se o senhor tiver um perfil de configuração do Databricks existente 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 auth login comando , o senhor será solicitado a salvar o account URL de login e o account ID como um Databricks perfil de configuração. 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 é sobrescrito.

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

Para autenticação default:

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

Para configuração direta (substitua os placeholders do retrieve por sua própria implementação para recuperar os valores do console ou algum outro armazenamento de configuração, como AWS Systems Manager Parameter Store). Nesse caso, a URL do console da conta Databricks é https://accounts.cloud.databricks.com:

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

Configuração para operações no nível do espaço de trabalho do Databricks

Para operações de nívelworkspace, o senhor deve primeiro usar o Databricks CLI para executar o seguinte comando, antes de executar o código Go. Esse comando instrui o Databricks CLI a gerar e armazenar em cache os tokens OAuth necessários no caminho .databricks/token-cache.json dentro da pasta home do usuário em seu computador:

databricks auth login --host <worskpace-url>

Substitua o espaço reservado <workspace-url> pela URL do espaço de trabalho do Databricks de destino, por exemplo https://dbc-a1b2345c-d6e7.cloud.databricks.com.

Observação

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

Depois de executar o auth login comando , o senhor será solicitado a salvar o workspace URL como um Databricks perfil de configuração. 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 é sobrescrito.

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

Para autenticação default:

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

Para configuração direta (substitua os espaços reservados retrieve por sua própria implementação para recuperar os valores do console ou de algum outro armazenamento de configuração, como AWS Systems Manager Parameter Store). Nesse caso, o host é a URL do espaço de trabalho do Databricks, por exemplo https://dbc-a1b2345c-d6e7.cloud.databricks.com:

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

Para mais informações sobre autenticação com ferramentas e SDKs do Databricks que usam Go e implementam autenticação unificada do cliente Databricks, veja Autentique o SDK do Databricks para Go com sua account ou workspace do Databricks.

Gerar e usar manualmente o token de acesso para autenticação OAuth de usuário para máquina (U2M)

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

Se, por algum motivo, for necessário gerar manualmente, refresh, ou usar o token de acesso OAuth da Databricks para autenticação OAuth U2M, siga as instruções desta seção.

o passo 1: gerar um verificador de código OAuth e um par de desafio de código

Para gerar e usar manualmente access tokens para OAuth autenticação U2M, o senhor deve primeiro ter um OAuth verificador de código e um OAuth desafio de código derivado do verificador de código. O senhor usa o desafio de código no passo 2 para gerar um código de autorização OAuth. O senhor usa o verificador de código e o código de autorização no passo 3 para gerar o OAuth access token.

Observação

Embora seja tecnicamente possível usar texto simples não codificado strings para o verificador de código e o desafio de código, o site Databricks recomenda enfaticamente que o senhor siga 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), com comprimento 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.

O senhor pode executar o seguinte script Python para gerar rapidamente um verificador de código exclusivo e um par de desafio de código. Embora o senhor possa reutilizar esse verificador de código gerado e o par de desafio de código várias vezes, a Databricks recomenda que o senhor gere um novo verificador de código e um par de desafio de código toda vez que gerar manualmente o token de acesso para a 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}")

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

O senhor usa um código de autorização OAuth para gerar um Databricks OAuth access token. O código de autorização expira imediatamente após o senhor usá-lo para gerar um Databricks OAuth access token. O escopo do código de autorização depende do nível a partir do qual o senhor o gera. O senhor pode gerar um código de autorização no nível do Databricks account ou no nível do workspace, como segue:

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

  1. Como administrador da conta, faça login 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 IDaccount .

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

    No URL a seguir, substitua o seguinte:

    • Substitua <account-id> pela IDaccount que o senhor copiou.

    • Substitua <redirect-url> por um URL de redirecionamento para sua máquina local, por exemplo, http://localhost:8020.

    • Substitua <state> por algumas cadeias de texto simples que o senhor pode usar para verificar a integridade do código de autorização.

    • Substitua <code-challenge> pelo desafio de código que o senhor gerou no passo 1.

    https://accounts.cloud.databricks.com/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 log in para o seu Databricks account.

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

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

    O senhor deve verificar a integridade desse código de autorização confirmando visualmente que o valor <state> nesse URL de resposta corresponde ao valor state que o senhor forneceu no URL de solicitação. Se os valores forem diferentes, o senhor não deve usar esse código de autorização, pois ele pode estar comprometido.

  7. Avance para Gerar um nível de conta access token.

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

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

    No URL a seguir, substitua o seguinte:

    • Substitua <databricks-instance> pelo nome da instância do espaço de trabalho do Databricks, por exemplo, dbc-a1b2345c-d6e7.cloud.databricks.com.

    • Substitua <redirect-url> por um URL de redirecionamento para sua máquina local, por exemplo, http://localhost:8020.

    • Substitua <state> por algumas cadeias de texto simples que o senhor pode usar para verificar a integridade do código de autorização.

    • Substitua <code-challenge> pelo desafio de código que o senhor gerou no passo 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 log in para o seu Databricks workspace.

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

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

    O senhor deve verificar a integridade desse código de autorização confirmando visualmente que o valor <state> nesse URL de resposta corresponde ao valor state que o senhor forneceu no URL de solicitação. Se os valores forem diferentes, o senhor não deve usar esse código de autorização, pois ele pode estar comprometido.

o passo 3: Use o código de autorização para gerar um OAuth access token

O senhor usa o código de autorização OAuth do passo anterior para gerar um Databricks OAuth access token, da seguinte forma:

Gerar um nível de conta access token

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

    • Substitua <account-id> pela IDaccount do passo 2.

    • Substitua <redirect-url> pelo URL de redirecionamento do passo 2.

    • Substitua <code-verifier> pelo verificador de código que o senhor gerou no passo 1.

    • Substitua <authorization-code> pelo código de autorização de nível accountque o senhor gerou no passo 2.

    curl --request POST \
    https://accounts.cloud.databricks.com/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 account-level OAuth access token. O endereço access token é a sequência completa de caracteres no objeto access_token. Por exemplo, o endereço access token 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 access token expira em uma hora. Para gerar um novo access token, repita o procedimento a partir do passo 1.

  3. Avance para o passo 4: Chamar uma API REST da Databricks.

Gerar um nível de espaço de trabalho access token

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

    • Substitua <databricks-instance> pelo nome da instância do espaço de trabalho do Databricks, por exemplo, dbc-a1b2345c-d6e7.cloud.databricks.com.

    • Substitua <redirect-url> pelo URL de redirecionamento do passo 2.

    • Substitua <code-verifier> pelo verificador de código que o senhor gerou no passo 1.

    • Substitua <authorization-code> pelo código de autorização de nível workspaceque o senhor gerou no passo 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 workspace-level OAuth access token. O endereço access token é a sequência completa de caracteres no objeto access_token. Por exemplo, o endereço access token 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 access token expira em uma hora. Para gerar um novo access token, repita o procedimento a partir do passo 1.

o passo 4: Chamar uma API REST da Databricks

O senhor usa o account-level ou workspace-level OAuth access token para se autenticar nas APIs REST da Databricks account-level e workspace-level REST APIs, dependendo do escopo do access token. O usuário do Databricks account deve ser um administrador account para chamar APIs REST de nível account.

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

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

  • Substitua <oauth-access-token> pelo account-level OAuth access token.

  • Substitua <account-id> por sua ID account.

export OAUTH_TOKEN=<oauth-access-token>

curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
"https://accounts.cloud.databricks.com/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 a autenticação Bearer para listar todos os clusters disponíveis no site workspace.

  • Substitua <oauth-access-token> pelo account-level ou workspace-level OAuth access token.

  • Substitua <databricks-instance> pelo nome da instância do espaço de trabalho do Databricks, por exemplo, dbc-a1b2345c-d6e7.cloud.databricks.com.

export OAUTH_TOKEN=<oauth-access-token>

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