Autenticar o acesso ao Azure Databricks com uma conta de usuário usando OAuth (OAuth U2M)
O Azure Databricks usa a autenticação de usuário para máquina (U2M) OAuth para habilitar o acesso da CLI e da API à conta do Azure Databricks e aos recursos do espaço de trabalho em nome de um usuário. Depois que um usuário inicialmente entra 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 em nome do usuário a partir desse momento. 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.
O Azure Databricks dá suporte a duas maneiras de autenticar o acesso a uma conta de usuário com OAuth:
- Principalmente automaticamente, usando o suporte à autenticação de cliente unificada Databricks. Use essa abordagem simplificada se estiver usando SDKs específicos do Azure Databricks (como o SDK do Databricks Terraform) e ferramentas. As ferramentas e SDKs suportados estão listados na autenticação de cliente unificada do Databricks.
- Manualmente, gerando diretamente um par de verificador/desafio de código OAuth e um código de autorização, e usando-os para criar o token OAuth inicial que você fornecerá em sua configuração. Use essa abordagem quando não estiver usando uma API suportada pela autenticação de cliente unificada Databricks. Para obter mais detalhes, consulte: Gerar e usar manualmente tokens de acesso para autenticação OAuth user-to-machine (U2M).
Autenticação U2M com autenticação de cliente unificada Databricks
Nota
Antes de começar a configurar sua autenticação, revise as permissões de ACL para uma categoria específica de operações em objetos de espaço de trabalho e determine se sua conta tem o nível de acesso necessário. Para obter mais detalhes, consulte Listas de controle de acesso.
Para executar a autenticação OAuth U2M com SDKs do Azure Databricks e ferramentas que dão suporte à autenticação de cliente unificada, integre o seguinte em seu código:
Environment
Para usar variáveis de ambiente para um tipo de autenticação específico do Azure Databricks com uma ferramenta ou SDK, consulte Autenticar o acesso aos recursos do Azure Databricks ou a documentação da ferramenta ou do SDK. Consulte também Variáveis de ambiente e campos para autenticação unificada do cliente e os métodos padrão para autenticação unificada do cliente.
Para operações no nível da conta, defina as seguintes variáveis de ambiente:
DATABRICKS_HOST
, definido como o valor da URL do console da 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 Autenticar o acesso aos recursos do Azure Databricks ou à documentação da ferramenta ou do SDK. Consulte também Variáveis de ambiente e campos para autenticação unificada do cliente e os métodos padrão para 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:
- Para operações no nível da conta do Azure Databricks,
--host <account-console-url> --account-id <account-id>
. - Para operações no nível do espaço de trabalho do Azure Databricks,
--host <workspace-url>
.
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 OAuth U2M com a CLI do Databricks.
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 acluster_id
variável de ambiente no seu perfil para o URL por espaço de trabalho, por exemplohttps://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 exemplohttps://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 de ambiente ou valores em seu .databrickscfg
arquivo, consulte Configuração de computação para Databricks Connect.
Código VS
Para a extensão Databricks para Visual Studio Code, faça o seguinte:
- No painel Configuração, clique em Configurar Databricks.
- Na Paleta de comandos, para Databricks Host, insira sua URL por espaço de trabalho, por exemplo
https://adb-1234567890123456.7.azuredatabricks.net
, e pressioneEnter
. - Selecione OAuth (usuário para máquina).
- 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 Autenticação OAuth U2M com a CLI do Databricks.
Terraform
Nota
A autenticação OAuth U2M ainda não é suportada.
Python
Para operações no nível da conta e no nível do espaço de trabalho, você deve usar a CLI do Databricks para executar o comando a seguir antes de executar o código 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:
Configurando para operações no nível da conta Databricks
databricks auth login --host <account-console-url> --account-id <account-id>
Substitua os seguintes espaços reservados:
- Substitua
<account-console-url>
pelo valorhttps://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()
)
# ...
Configurando 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 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:
- Configurar o cliente Databricks Connect para Python
- Configuração de autenticação para a extensão Databricks para Visual Studio Code
- Autentique o SDK do Databricks para Python com sua conta ou espaço de trabalho do Azure Databricks
Java
Para operações no nível da conta e no nível do espaço de trabalho, você deve usar a CLI do Databricks para executar o comando a seguir antes de executar o código Java. Este comando instrui a CLI do Databricks a gerar e armazenar em cache o token OAuth necessário no caminho .databricks/token-cache.json
na pasta inicial do usuário em sua máquina:
Configurando para operações no nível da conta Databricks
databricks auth login --host <account-console-url> --account-id <account-id>
Substitua os seguintes espaços reservados:
- Substitua
<account-console-url>
pelo valorhttps://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);
// ...
Configurando para operações no nível do espaço de trabalho do Databricks
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:
- Configure o cliente Databricks Connect para Scala (o cliente Databricks Connect para Scala usa o SDK Databricks incluído para Java para autenticação)
- Autenticar o SDK do Databricks para Java com sua conta ou espaço de trabalho do Azure Databricks
Go
Para operações no nível da conta e no nível do espaço de trabalho, você deve usar a CLI do Databricks para executar o 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:
Configurando para operações no nível da conta Databricks
databricks auth login --host <account-login-url> --account-id <account-id>
Substitua os seguintes espaços reservados:
- Substitua
<account-console-url>
pelo valorhttps://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(),
}))
// ...
Configurando para operações no nível do espaço de trabalho do Databricks
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)
Nota
Esta seção é fornecida para usuários com ferramentas ou serviços de terceiros que não funcionam com o padrão de autenticação unificada do cliente Databricks.
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 na Etapa 2 para gerar um código de autorização OAuth. Use o verificador de código e o código de autorização na Etapa 3 para gerar o token de acesso OAuth.
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:
- 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, gere um código de autorização 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 gerar um código de autorização no nível do espaço de trabalho somente para esse espaço de trabalho.
Gerar um código de autorização no nível da conta
Como administrador da conta, inicie sessão na consola da conta.
Clique na seta para baixo ao lado do seu nome de usuário no canto superior direito.
Copie o ID da sua conta.
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 exemplohttp://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_uri=<redirect-url> &response_type=code &state=<state> &code_challenge=<code-challenge> &code_challenge_method=S256 &scope=all-apis+offline_access
- Substitua
Quando solicitado, siga as instruções na tela para fazer logon na sua conta do Azure Databricks.
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 aostate
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.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
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 exemplohttp://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
- Substitua
Quando solicitado, siga as instruções na tela para fazer logon no seu espaço de trabalho do Azure Databricks.
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 aostate
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
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 seguircurl
, 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>"
- Substitua
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.
Pule para a Etapa 4: chamar uma API REST do Databricks.
Gerar um token de acesso no nível do espaço de trabalho
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 seguircurl
, 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>"
- Substitua
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.
- Substitua
<oauth-access-token>
pelo token de acesso OAuth no nível da conta ou no nível do espaço de trabalho. - Substitua
<databricks-instance>
pelo nome da instância do espaço de trabalho do Azure Databricks, por exemploadb-1234567890123456.7.azuredatabricks.net
.
export OAUTH_TOKEN=<oauth-access-token>
curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
"https://<databricks-instance>/api/2.0/clusters/list"