Autenticação de usuário para máquina (U2M) OAuth

A autenticação OAuth de usuário para máquina (U2M) usa o login humano em tempo real e o consentimento para autenticar a conta de usuário de destino do Databricks. Depois que o usuário inicia a sessão com sucesso e aceita a solicitação de autenticação do OAuth, um OAuth token é entregue à ferramenta ou ao SDK participante para executar a autenticação baseada em token a partir desse momento em nome do usuário. O OAuth token tem 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 outro token que também válido por uma hora.

Para configurar a autenticação OAuth U2M com Databricks, você deve definir a seguinte variável de ambiente associada, campos .databrickscfg , campos Terraform ou campos Config :

  • O host do Databricks, especificado como https://accounts.cloud.databricks.com para operações account ou a URL do espaço de trabalho de destino, por exemplo https://dbc-a1b2345c-d6e7.cloud.databricks.com para operações de espaço de trabalho.

  • O ID da conta Databricks, para operações da conta Databricks.

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

Para utilizar a variável de ambiente para um tipo específico de autenticação Databricks com uma ferramenta ou SDK, consulte Tipos de autenticação suportados pela ferramenta ou SDK Databricks ou a documentação da ferramenta ou do SDK. Consulte também variável de ambiente e campos para autenticação unificada do cliente e a ordemdefault de avaliação para métodos e credenciais de autenticação unificada do 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 campos a seguir em seu arquivo .databrickscfg . Se você criar o perfil, substitua os espaços reservados pelos valores apropriados. Para utilizar o perfil com uma ferramenta ou SDK, consulte Tipos de autenticação suportados pela ferramenta Databricks ou SDK ou a documentação da ferramenta ou do SDK. Consulte também variável de ambiente e campos para autenticação unificada do cliente e a ordemdefault 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 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 usuário-máquina (U2M) OAuth.

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 Configurar a autenticação OAuth U2M.

Para operações de nívelaccount, o senhor deve primeiro usar o 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:

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 você 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 comando auth login, você será solicitado a salvar o URL de login account e o ID account como um perfil de configuração do Databricks. Quando solicitado, insira o nome de um perfil novo ou existente no arquivo .databrickscfg . Qualquer perfil existente com o mesmo nome no arquivo .databrickscfg será substituído.

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çãodefault :

provider "databricks" {
  alias = "account"
}

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 o HashiCorp Vault. Consulte também Provedor de Cofre). Nesse caso, a URL do console da conta Databricks é https://accounts.cloud.databricks.com:

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

Para operações de nívelworkspace, o senhor deve primeiro usar o 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:

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 você 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 comando auth login, você será solicitado a salvar a URL workspace como um perfil de configuração do Databricks. Quando solicitado, insira o nome de um perfil novo ou existente no arquivo .databrickscfg . Qualquer perfil existente com o mesmo nome no arquivo .databrickscfg será substituído.

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çãodefault :

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.

Para operações de nívelaccount, o senhor deve primeiro 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:

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 você 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 comando auth login, você será solicitado a salvar o URL de login account e o ID account como um perfil de configuração do Databricks. Quando solicitado, insira o nome de um perfil novo ou existente no arquivo .databrickscfg . Qualquer perfil existente com o mesmo nome no arquivo .databrickscfg será substituído.

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çãodefault :

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()
)
# ...

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

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 você 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 comando auth login, você será solicitado a salvar a URL workspace como um perfil de configuração do Databricks. Quando solicitado, insira o nome de um perfil novo ou existente no arquivo .databrickscfg . Qualquer perfil existente com o mesmo nome no arquivo .databrickscfg será substituído.

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çãodefault :

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

Para operações de nívelaccount, 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 <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 você 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 comando auth login, você será solicitado a salvar o URL de login account e o ID account como um perfil de configuração do Databricks. Quando solicitado, insira o nome de um perfil novo ou existente no arquivo .databrickscfg . Qualquer perfil existente com o mesmo nome no arquivo .databrickscfg será substituído.

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çãodefault :

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);
// ...

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 você 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 comando auth login, você será solicitado a salvar a URL workspace como um perfil de configuração do Databricks. Quando solicitado, insira o nome de um perfil novo ou existente no arquivo .databrickscfg . Qualquer perfil existente com o mesmo nome no arquivo .databrickscfg será substituído.

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çãodefault :

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

Para operações de nívelaccount, 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 <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 você 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 comando auth login, você será solicitado a salvar o URL de login account e o ID account como um perfil de configuração do Databricks. Quando solicitado, insira o nome de um perfil novo ou existente no arquivo .databrickscfg . Qualquer perfil existente com o mesmo nome no arquivo .databrickscfg será substituído.

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çãodefault :

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(),
}))
// ...

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 você 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 comando auth login, você será solicitado a salvar a URL workspace como um perfil de configuração do Databricks. Quando solicitado, insira o nome de um perfil novo ou existente no arquivo .databrickscfg . Qualquer perfil existente com o mesmo nome no arquivo .databrickscfg será substituído.

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çãodefault :

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 obter mais informações sobre a autenticação com ferramentas e SDKs do Databricks que usam Go e que implementam a autenticação unificada do cliente Databricks, consulte Autenticar o SDK do Databricks para Go com sua account ou workspacedo Databricks.

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

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

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 o token de acesso para autenticação OAuth U2M, o senhor deve primeiro ter um verificador de código OAuth e um desafio de código OAuth derivado do verificador de código. O senhor usa o desafio de código mais tarde, 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 mais adiante 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, a Databricks incentiva fortemente 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"