Autenticar o acesso no Azure Databricks com uma conta de usuário usando OAuth (OAuth U2M)
O Azure Databricks usa a autenticação OAuth U2M (usuário para computador) para habilitar o acesso da CLI e da API à conta do Azure Databricks e aos recursos do workspace em nome de um usuário. Depois que um usuário faz login inicialmente e consente com a solicitação de autenticação OAuth, um token OAuth é fornecido à ferramenta participante ou SDK para executar a autenticação baseada em token em nome do usuário daquele momento em diante. O token OAuth tem um tempo de vida de uma hora, após o qual a ferramenta ou SDK envolvido fará uma tentativa automática em segundo plano para obter um novo token que também é válido por uma hora.
O Azure Databricks oferece suporte a duas maneiras de autenticar o acesso para uma conta de usuário com OAuth:
- Principalmente automaticamente, usando o suporte à autenticação de cliente unificada do Databricks. Use essa abordagem simplificada se você estiver usando SDKs (como o SDK do Databricks Terraform) e ferramentas específicos do Azure Databricks. As ferramentas e SDKs com suporte estão listados na autenticação de cliente unificada do Databricks.
- Manualmente, gerando diretamente um par de verificador/desafio de código OAuth e um código de autorização e usando-os para criar o token OAuth inicial que você fornecerá em sua configuração. Use essa abordagem quando não estiver usando uma API compatível com a autenticação unificada de cliente do Databricks. Para obter mais detalhes, consulte Gerar manualmente e usar tokens de acesso para autenticação U2M (usuário para computador) do OAuth.
Autenticação U2M com autenticação de cliente unificada do Databricks
Observação
Antes de começar a configurar sua autenticação, revise as permissões de ACL para uma categoria específica de operações em objetos de espaço de trabalho e determine se sua conta tem o nível de acesso necessário. Para obter detalhes, confira Listas de controle de acesso.
Para executar a autenticação OAuth U2M com SDKs e ferramentas do Azure Databricks que oferecem suporte à autenticação unificada de cliente, integre o seguinte ao seu código:
Ambiente
Para usar variáveis de ambiente para um tipo de autenticação do Azure Databricks específico com uma ferramenta ou SDK, consulte Autenticar o acesso a recursos do Azure Databricks ou a documentação da ferramenta ou SDK. Consulte também Variáveis de ambiente e campos para autenticação unificada do cliente e Métodos padrão para autenticação unificada do cliente.
Para operações no nível da conta, defina as seguintes variáveis de ambiente:
DATABRICKS_HOST
, definido como o valor da URL do console da sua conta do Azure Databricks,https://accounts.azuredatabricks.net
.DATABRICKS_ACCOUNT_ID
Para operações no nível do workspace, defina as seguintes variáveis de ambiente:
DATABRICKS_HOST
, defina o valor da sua URL por workspace do Azure Databricks, por exemplo,https://adb-1234567890123456.7.azuredatabricks.net
.
Perfil
Crie ou identifique um perfil de configuração do Azure Databricks com os seguintes campos em seu arquivo do .databrickscfg
. Se você criar o perfil, substitua os espaços reservados pelos valores apropriados. Para usar o perfil com uma ferramenta ou SDK, consulte Autenticar o acesso a recursos do Azure Databricks ou a documentação da ferramenta ou SDK. Consulte também Variáveis de ambiente e campos para autenticação unificada do cliente e Métodos padrão para autenticação unificada do cliente.
Para operações no nível da conta, defina os seguintes valores em seu arquivo .databrickscfg
. Nesse caso, a URL do console da conta do Azure Databricks é https://accounts.azuredatabricks.net
:
[<some-unique-configuration-profile-name>]
host = <account-console-url>
account_id = <account-id>
Para operações no nível do workspace, defina os seguintes valores em seu arquivo .databrickscfg
. Nesse caso, o host é a URL por workspace do Azure Databricks, por exemplo https://adb-1234567890123456.7.azuredatabricks.net
:
[<some-unique-configuration-profile-name>]
host = <workspace-url>
CLI
Para a CLI do Databricks, execute o comando databricks auth login
com as opções a seguir:
- 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 workspace do Azure Databricks,
--host <workspace-url>
.
Depois de executar esse comando, siga as instruções no navegador da Web para fazer logon em sua conta ou workspace do Azure Databricks.
Para obter mais detalhes, consulte Autenticação OAuth U2M com a CLI do Databricks.
Conectar
Observação
A autenticação U2M do OAuth é compatível com as seguintes versões do Databricks Connect:
- Para Python, Databricks Connect para o Databricks Runtime 13.1 e superior.
- No caso do Scala, o Databricks Connect para Databricks Runtime 13.3 LTS e superior.
No Databricks Connect, siga um destes procedimentos:
- Defina os valores em seu arquivo
.databrickscfg
para operações no nível do workspace do Azure Databricks, conforme especificado na seção "Perfil" deste artigo. Defina também a variável de ambientecluster_id
no seu perfil como a URL por workspace, por exemplo,https://adb-1234567890123456.7.azuredatabricks.net
. - Defina as variáveis de ambiente para operações no nível do workspace do Azure Databricks, conforme especificado na seção "Ambiente" deste artigo. Defina também a variável de ambiente
DATABRICKS_CLUSTER_ID
como a URL por workspace, por exemplo,https://adb-1234567890123456.7.azuredatabricks.net
.
Os valores do arquivo .databrickscfg
sempre têm precedência sobre as variáveis de ambiente.
Para inicializar o cliente do Databricks Connect com essas variáveis de ambiente ou valores em seu .databrickscfg
arquivo, consulte Configuração de computação para o Databricks Connect.
Código VS
Na extensão do Databricks para Visual Studio Code, faça o seguinte:
- No painel Configuração, clique em Configurar o Databricks.
- Na Paleta de Comandos, em Host do Databricks, insira a URL por workspace, por exemplo,
https://adb-1234567890123456.7.azuredatabricks.net
, e pressioneEnter
. - Selecione OAuth (usuário para computador).
- Conclua as instruções na tela no navegador da Web para concluir a autenticação com sua conta do Azure Databricks e permitir o acesso a todas as APIs.
Para obter mais detalhes, consulte Autenticação OAuth U2M com a CLI do Databricks.
Terraform
Observação
Ainda não há suporte para a autenticação U2M do OAuth.
Python
Para operações no nível da conta e no nível do espaço de trabalho, primeiro você deve usar a CLI do Databricks para executar o comando a seguir, antes de executar seu código Python. Este comando instrui a CLI do Databricks a gerar e armazenar em cache o token OAuth necessário no caminho .databricks/token-cache.json
dentro da pasta inicial do usuário em seu computador:
Configurar para operações no nível da conta do Databricks
databricks auth login --host <account-console-url> --account-id <account-id>
Substitua os seguintes espaços reservados:
- Substitua
<account-console-url>
pelo valorhttps://accounts.azuredatabricks.net
. (Não defina isso com o valor da URL do seu workspace do Azure Databricks.) - Substitua
<account-id>
pelo valor da sua conta do Azure Databricks. Confira Localizar a ID da conta.
Observação
Se você tiver um perfil de configuração do Azure Databricks com os campos host
e account_id
já definidos, poderá substituir --host <account-console-url> --account-id <account-id>
por --profile <profile-name>
.
Depois de executar o comando auth login
, você será solicitado a salvar a URL de logon da conta e a ID da conta como um perfil de configuração do Azure Databricks. Quando solicitado, insira o nome de um perfil novo ou existente em seu arquivo .databrickscfg
. Qualquer perfil existente com o mesmo nome em seu arquivo .databrickscfg
é substituído.
Se solicitado, conclua as instruções na tela do navegador da Web para concluir o logon. Em seguida, use código Python semelhante a um dos seguintes snippets:
Para autenticação padrão:
from databricks.sdk import AccountClient
a = AccountClient()
# ...
Para a configuração direta (substitua os espaços reservados retrieve
por sua própria implantação para recuperar os valores do console ou de algum outro repositório de configurações, como o Azure KeyVault). Nesse caso, a URL do console da conta do Azure Databricks é https://accounts.azuredatabricks.net
:
from databricks.sdk import AccountClient
a = AccountClient(
host = retrieveAccountConsoleUrl(),
account_id = retrieveAccountId()
)
# ...
Configurar para operações no nível do espaço de trabalho do Azure Databricks
databricks auth login --host <worskpace-url>
Substitua o espaço reservado <workspace-url>
pela URL por workspace do Azure Databricks de destino, por exemplo, https://adb-1234567890123456.7.azuredatabricks.net
.
Observação
Se você tiver um perfil de configuração do Azure Databricks com o campo host
já definido, poderá substituir --host <workspace-url>
por --profile <profile-name>
.
Depois de executar o comando auth login
, você será solicitado a salvar a URL do workspace como um perfil de configuração do Azure Databricks. Quando solicitado, insira o nome de um perfil novo ou existente em seu arquivo .databrickscfg
. Qualquer perfil existente com o mesmo nome em seu arquivo .databrickscfg
é substituído.
Se solicitado, conclua as instruções na tela do navegador da Web para concluir o logon. Em seguida, use código Python semelhante a um dos seguintes snippets:
Para autenticação padrão:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
# ...
Para a configuração direta (substitua os espaços reservados retrieve
por sua própria implantação para recuperar os valores do console ou de algum outro repositório de configurações, como o Azure KeyVault). Nesse caso, o host é a URL por workspace do Azure Databricks, por exemplo https://adb-1234567890123456.7.azuredatabricks.net
:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient(host = retrieveWorkspaceUrl())
# ...
Para obter mais informações sobre como autenticar com as ferramentas e SDKs do Databricks que usam o Python e que implementam a autenticação unificada do cliente do Databricks, consulte:
- Configurar o cliente do Databricks Connect para o Python
- Configuração de autenticação da extensão do Databricks para o Visual Studio Code
- Autenticar o SDK do Databricks para o 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
dentro da pasta inicial do usuário em seu computador:
Configurar para operações no nível da conta do Databricks
databricks auth login --host <account-console-url> --account-id <account-id>
Substitua os seguintes espaços reservados:
- Substitua
<account-console-url>
pelo valorhttps://accounts.azuredatabricks.net
. (Não defina isso com o valor da URL do seu workspace do Azure Databricks.) - Substitua
<account-id>
pelo valor da sua conta do Azure Databricks. Confira Localizar a ID da conta.
Observação
Se você tiver um perfil de configuração do Azure Databricks com os campos host
e account_id
já definidos, poderá substituir --host <account-console-url> --account-id <account-id>
por --profile <profile-name>
.
Depois de executar o comando auth login
, você será solicitado a salvar a URL de logon da conta e a ID da conta como um perfil de configuração do Azure Databricks. Quando solicitado, insira o nome de um perfil novo ou existente em seu arquivo .databrickscfg
. Qualquer perfil existente com o mesmo nome em seu arquivo .databrickscfg
é substituído.
Se solicitado, conclua as instruções na tela do navegador da Web para concluir o logon. Em seguida, use o código Java semelhante a um dos seguintes snippets:
Para autenticação padrão:
import com.databricks.sdk.AccountClient;
// ...
AccountClient a = new AccountClient();
// ...
Para a configuração direta (substitua os espaços reservados retrieve
por sua própria implantação para recuperar os valores do console ou de algum outro repositório de configurações, como o Azure KeyVault). Nesse caso, a URL do console da conta do Azure Databricks é https://accounts.azuredatabricks.net
:
import com.databricks.sdk.AccountClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
.setHost(retrieveAccountConsoleUrl())
.setAccountId(retrieveAccountId());
AccountClient a = new AccountClient(cfg);
// ...
Configurar para operações no nível do espaço de trabalho do Azure Databricks
Para operações no nível do workspace, primeiro você deve usar a CLI do Databricks para executar o comando a seguir, antes de executar o código Java. Este comando instrui a CLI do Databricks a gerar e armazenar em cache o token OAuth necessário no caminho .databricks/token-cache.json
dentro da pasta inicial do usuário em seu computador:
databricks auth login --host <worskpace-url>
Substitua o espaço reservado <workspace-url>
pela URL por workspace do Azure Databricks de destino, por exemplo, https://adb-1234567890123456.7.azuredatabricks.net
.
Observação
Se você tiver um perfil de configuração do Azure Databricks com o campo host
já definido, poderá substituir --host <workspace-url>
por --profile <profile-name>
.
Depois de executar o comando auth login
, você será solicitado a salvar a URL do workspace como um perfil de configuração do Azure Databricks. Quando solicitado, insira o nome de um perfil novo ou existente em seu arquivo .databrickscfg
. Qualquer perfil existente com o mesmo nome em seu arquivo .databrickscfg
é substituído.
Se solicitado, conclua as instruções na tela do navegador da Web para concluir o logon. Em seguida, use o código Java semelhante a um dos seguintes snippets:
Para autenticação padrão:
import com.databricks.sdk.WorkspaceClient;
// ...
WorkspaceClient w = new WorkspaceClient();
// ...
Para a configuração direta (substitua os espaços reservados retrieve
por sua própria implantação para recuperar os valores do console ou de algum outro repositório de configurações, como o Azure KeyVault). Nesse caso, o host é a URL por workspace do Azure Databricks, por exemplo https://adb-1234567890123456.7.azuredatabricks.net
:
import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
.setHost(retrieveWorkspaceUrl())
WorkspaceClient w = new WorkspaceClient(cfg);
// ...
Para obter mais informações sobre como autenticar com as ferramentas e SDKs do Databricks que usam Java e que implementam a autenticação unificada do cliente do Databricks, consulte:
- Configurar o cliente do Databricks Connect para o Scala (o cliente do Databricks Connect para o Scala usa o SDK do Databricks incluído para o Java para autenticação)
- Autenticar o SDK do Databricks para o 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 comando a seguir, antes de executar o código Go. Este comando instrui a CLI do Databricks a gerar e armazenar em cache o token OAuth necessário no caminho .databricks/token-cache.json
dentro da pasta inicial do usuário em seu computador:
Configurar para operações no nível da conta do Databricks
databricks auth login --host <account-login-url> --account-id <account-id>
Substitua os seguintes espaços reservados:
- Substitua
<account-console-url>
pelo valorhttps://accounts.azuredatabricks.net
. (Não defina isso com o valor da URL do seu workspace do Azure Databricks.) - Substitua
<account-id>
pelo valor da sua conta do Azure Databricks. Confira Localizar a ID da conta.
Observação
Se você tiver um perfil de configuração do Azure Databricks com os campos host
e account_id
já definidos, poderá substituir --host <account-console-url> --account-id <account-id>
por --profile <profile-name>
.
Depois de executar o comando auth login
, você será solicitado a salvar a URL de logon da conta e a ID da conta como um perfil de configuração do Azure Databricks. Quando solicitado, insira o nome de um perfil novo ou existente em seu arquivo .databrickscfg
. Qualquer perfil existente com o mesmo nome em seu arquivo .databrickscfg
é substituído.
Se solicitado, conclua as instruções na tela do navegador da Web para concluir o logon. Em seguida, use o código Go semelhante a um dos seguintes snippets:
Para autenticação padrão:
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient())
// ...
Para a configuração direta (substitua os espaços reservados retrieve
por sua própria implantação para recuperar os valores do console ou de algum outro repositório de configurações, como o Azure KeyVault). Nesse caso, a URL do console da conta do Azure Databricks é https://accounts.azuredatabricks.net
:
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
Host: retrieveAccountConsoleUrl(),
AccountId: retrieveAccountId(),
}))
// ...
Configurar para operações no nível do espaço de trabalho do Azure Databricks
Para operações no nível do workspace, primeiro você deve usar a CLI do Databricks para executar o comando a seguir, antes de executar o código Go. Este comando instrui a CLI do Databricks a gerar e armazenar em cache o token OAuth necessário no caminho .databricks/token-cache.json
dentro da pasta inicial do usuário em seu computador:
databricks auth login --host <worskpace-url>
Substitua o espaço reservado <workspace-url>
pela URL por workspace do Azure Databricks de destino, por exemplo, https://adb-1234567890123456.7.azuredatabricks.net
.
Observação
Se você tiver um perfil de configuração do Azure Databricks com o campo host
já definido, poderá substituir --host <workspace-url>
por --profile <profile-name>
.
Depois de executar o comando auth login
, você será solicitado a salvar a URL do workspace como um perfil de configuração do Azure Databricks. Quando solicitado, insira o nome de um perfil novo ou existente em seu arquivo .databrickscfg
. Qualquer perfil existente com o mesmo nome em seu arquivo .databrickscfg
é substituído.
Se solicitado, conclua as instruções na tela do navegador da Web para concluir o logon. Em seguida, use o código Go semelhante a um dos seguintes snippets:
Para autenticação padrão:
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient())
// ...
Para a configuração direta (substitua os espaços reservados retrieve
por sua própria implantação para recuperar os valores do console ou de algum outro repositório de configurações, como o Azure KeyVault). Nesse caso, o host é a URL por workspace do Azure Databricks, por exemplo https://adb-1234567890123456.7.azuredatabricks.net
:
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
Host: retrieveWorkspaceUrl(),
}))
// ...
Para obter mais informações sobre como autenticar com as ferramentas e SDKs do Databricks que usam o Go e que implementam a autenticação unificada do cliente do Databricks, consulte Autenticar o SDK do Databricks para o Go com sua conta ou espaço de trabalho do Azure Databricks.
Gerar manualmente e usar tokens de acesso para autenticação U2M (usuário para computador) do OAuth
Observação
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 do Databricks.
Se, por algum motivo, você precisar gerar, atualizar ou usar manualmente tokens de acesso OAuth do Azure Databricks para autenticação U2M do OAuth, siga as instruções nesta seção.
Etapa 1: Gerar um verificador de código e um par de desafios de código OAuth
Para gerar manualmente e usar tokens de acesso para autenticação U2M do OAuth, primeiro você deve ter um verificador de código OAuth e um desafio de código OAuth derivado do verificador de código. Use o desafio de código na Etapa 2 para gerar um código de autorização OAuth. Use o verificador de código e o código de autorização na Etapa 3 para gerar o token de acesso OAuth.
Observação
Embora seja tecnicamente possível usar strings de texto sem formatação e não codificadas para o verificador de código e o desafio de código, o Databricks incentiva a seguir o padrão OAuth para gerar o verificador de código e o desafio de código.
Especificamente, o verificador de código deve ser uma cadeia de caracteres criptograficamente aleatória usando caracteres dos conjuntos A-Z
, a-z
, 0-9
, e os caracteres de pontuação -._~
(hífen, ponto, sublinhado e til), entre 43 e 128 caracteres. O desafio de código deve ser uma cadeia de caracteres de URL codificada em base64 do hash SHA256 do verificador de código. Para obter mais informações, consulte Solicitação de Autorização.
Execute o script Python a seguir para gerar rapidamente um par de desafios de código e um verificador de código exclusivos. Embora você possa reutilizar esse verificador de código gerado e o par de desafios de código várias vezes, o Databricks recomenda que você gere um novo verificador de código e um par de desafios de código sempre que gerar manualmente tokens de acesso para autenticação U2M do OAuth.
import uuid, hashlib, base64
# Generate a UUID.
uuid1 = uuid.uuid4()
# Convert the UUID to a string.
uuid_str1 = str(uuid1).upper()
# Create the code verifier.
code_verifier = uuid_str1 + "-" + uuid_str1
# Create the code challenge based on the code verifier.
code_challenge = base64.urlsafe_b64encode(hashlib.sha256(code_verifier.encode()).digest()).decode('utf-8')
# Remove all padding from the code challenge.
code_challenge = code_challenge.replace('=', '')
# Print the code verifier and the code challenge.
# Use these in your calls to manually generate
# access tokens for OAuth U2M authentication.
print(f"code_verifier: {code_verifier}")
print(f"code_challenge: {code_challenge}")
Etapa 2: Gerar um código de autorização
Use um código de autorização OAuth para gerar um token de acesso OAuth do Azure Databricks. O código de autorização expira imediatamente após o uso para gerar um token de acesso OAuth do Azure Databricks. O escopo do código de autorização depende do nível do qual você o gera. Você pode gerar um código de autorização no nível da conta ou no nível do workspace do Azure Databricks, da seguinte maneira:
- Para chamar APIs REST no nível da conta e no nível do workspace em contas e workspaces 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 workspace ao qual sua conta de usuário tem acesso, gere um código de autorização no nível do workspace somente para esse workspace.
Gerar um código de autorização no nível da conta
Como administrador de conta, faça logon no console da conta.
Clique na seta para baixo ao lado do seu nome de usuário no canto superior direito.
Copie sua ID da conta.
Navegue até a seguinte URL na barra de endereços do navegador da Web. Quebras de linha foram adicionadas para facilitar a leitura. Sua URL não deve conter essas quebras de linha.
Na URL a seguir, substitua o seguinte:
- Substitua
<account-id>
pela ID da conta copiada. - Substitua
<redirect-url>
por uma URL de redirecionamento para seu computador local, por exemplo,http://localhost:8020
. - Substitua
<state>
por alguma cadeia de caracteres de texto sem formatação que você pode usar para verificar a integridade do código de autorização. - Substitua
<code-challenge>
pelo desafio de código gerado na Etapa 1.
https://accounts.azuredatabricks.net/oidc/accounts/<account-id>/v1/authorize ?client_id=databricks-cli &redirect_uri=<redirect-url> &response_type=code &state=<state> &code_challenge=<code-challenge> &code_challenge_method=S256 &scope=all-apis+offline_access
- Substitua
Quando solicitado, siga as instruções na tela para fazer logon em sua conta do Azure Databricks.
Copie o código de autorização na barra de endereços do navegador da Web. O código de autorização é a cadeia de caracteres completa entre
code=
e o caractere&
na URL. Por exemplo, o código de autorização na URL a seguir édcod...7fe6
:http://localhost:8020/?code=dcod...7fe6&state=<state>
Verifique a integridade desse código de autorização confirmando visualmente que o valor
<state>
nessa URL de resposta corresponde ao valorstate
fornecido na URL de solicitação. Se os valores forem diferentes, não use esse código de autorização, pois ele pode estar comprometido.Pule para Gerar um token de acesso no nível da conta.
Gerar um código de autorização no nível do workspace
Navegue até a seguinte URL na barra de endereços do navegador da Web. Quebras de linha foram adicionadas para facilitar a leitura. Sua URL não deve conter essas quebras de linha.
Na URL a seguir, substitua o seguinte:
- Substitua
<databricks-instance>
pelo nome da instância do workspace do Azure Databricks, por exemploadb-1234567890123456.7.azuredatabricks.net
. - Substitua
<redirect-url>
por uma URL de redirecionamento para seu computador local, por exemplo,http://localhost:8020
. - Substitua
<state>
por alguma cadeia de caracteres de texto sem formatação que você pode usar para verificar a integridade do código de autorização. - Substitua
<code-challenge>
pelo desafio de código gerado na Etapa 1.
https://<databricks-instance>/oidc/v1/authorize ?client_id=databricks-cli &redirect_uri=<redirect-url> &response_type=code &state=<state> &code_challenge=<code-challenge> &code_challenge_method=S256 &scope=all-apis+offline_access
- Substitua
Quando solicitado, siga as instruções na tela para fazer logon no workspace do Azure Databricks.
Copie o código de autorização na barra de endereços do navegador da Web. O código de autorização é a cadeia de caracteres completa entre
code=
e o caractere&
na URL. Por exemplo, o código de autorização na URL a seguir édcod...7fe6
:http://localhost:8020/?code=dcod...7fe6&state=<state>
Verifique a integridade desse código de autorização confirmando visualmente que o valor
<state>
nessa URL de resposta corresponde ao valorstate
fornecido na URL de solicitação. Se os valores forem diferentes, não use esse código de autorização, pois ele pode estar comprometido.
Etapa 3: Usar o código de autorização para gerar um token de acesso OAuth
Use o código de autorização OAuth da etapa anterior para gerar um token de acesso OAuth do Azure Databricks, da seguinte maneira:
- Para chamar nível da conta e nível do workspace em contas e workspaces de Rest APIs 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 workspace ao qual sua conta de usuário tem acesso, use o código de autorização no nível do workspace para gerar um token de acesso no nível do workspace somente para esse workspace.
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 seguinte chamadacurl
, substitua os espaços reservados a seguir:- Substitua
<account-id>
pela ID de conta da Etapa 2. - Substitua
<redirect-url>
pela URL de redirecionamento da Etapa 2. - Substitua
<code-verifier>
pelo verificador de código gerado na Etapa 1. - Substitua
<authorization-code>
pelo código de autorização no nível da conta gerado na Etapa 2.
curl --request POST \ https://accounts.azuredatabricks.net/oidc/accounts/<account-id>/v1/token \ --data "client_id=databricks-cli" \ --data "grant_type=authorization_code" \ --data "scope=all-apis offline_access" \ --data "redirect_uri=<redirect-url>" \ --data "code_verifier=<code-verifier>" \ --data "code=<authorization-code>"
- Substitua
Na resposta, copie o token de acesso OAuth no nível da conta. O token de acesso é a cadeia de caracteres completa no objeto
access_token
. Por exemplo, o token de acesso na resposta a seguir éeyJr...Dkag
:{ "access_token": "eyJr...Dkag", "refresh_token": "doau...f26e", "scope": "all-apis offline_access", "token_type": "Bearer", "expires_in": 3600 }
Este token de acesso expira em uma hora. Para gerar um novo token de acesso, repita este procedimento da Etapa 1.
Pule para a Etapa 4: Chamar uma API REST do Databricks.
Gerar um token de acesso no nível do workspace
Use um cliente como
curl
junto com o código de autorização no nível do workspace para gerar o token de acesso OAuth no nível do workspace. Na seguinte chamadacurl
, substitua os espaços reservados a seguir:- Substitua
<databricks-instance>
pelo nome da instância do workspace do Azure Databricks, por exemploadb-1234567890123456.7.azuredatabricks.net
. - Substitua
<redirect-url>
pela URL de redirecionamento da Etapa 2. - Substitua
<code-verifier>
pelo verificador de código gerado na Etapa 1. - Substitua
<authorization-code>
pelo código de autorização no nível do workspace gerado na Etapa 2.
curl --request POST \ https://<databricks-instance>/oidc/v1/token \ --data "client_id=databricks-cli" \ --data "grant_type=authorization_code" \ --data "scope=all-apis offline_access" \ --data "redirect_uri=<redirect-url>" \ --data "code_verifier=<code-verifier>" \ --data "code=<authorization-code>"
- Substitua
Na resposta, copie o token de acesso OAuth no nível do workspace. O token de acesso é a cadeia de caracteres completa no objeto
access_token
. Por exemplo, o token de acesso na resposta a seguir éeyJr...Dkag
:{ "access_token": "eyJr...Dkag", "refresh_token": "doau...f26e", "scope": "all-apis offline_access", "token_type": "Bearer", "expires_in": 3600 }
Este token de acesso expira em uma hora. Para gerar um novo token de acesso, repita este procedimento da Etapa 1.
Etapa 4: Chamar uma API REST do Databricks
Use o token de acesso OAuth no nível da conta ou no nível do workspace para autenticação nas APIs REST no nível da conta e APIs REST no nível do workspace do Azure Databricks, dependendo do escopo do token de acesso. Sua conta de usuário do Azure Databricks deve ser um administrador da conta para chamar APIs REST no nível da conta.
Exemplo de solicitação da API REST no nível da conta
Este exemplo usa curl
junto com a autenticação Bearer
para obter uma lista de todos os workspaces associados a uma conta.
- Substitua
<oauth-access-token>
pelo token de acesso OAuth no nível da conta. - Substitua
<account-id>
pela ID da sua conta.
export OAUTH_TOKEN=<oauth-access-token>
curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
"https://accounts.azuredatabricks.net/api/2.0/accounts/<account-id>/workspaces"
Exemplo de solicitação da API REST no nível do workspace
Este exemplo usa curl
junto com a autenticação Bearer
para listar todos os clusters disponíveis no workspace especificado.
- Substitua
<oauth-access-token>
pelo token de acesso OAuth no nível da conta ou no nível do workspace. - Substitua
<databricks-instance>
pelo nome da instância do workspace do Azure Databricks, por 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"