Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Esta página explica como autorizar o acesso do usuário aos recursos do Azure Databricks ao usar a CLI do Databricks ou as APIs REST do Azure Databricks.
O Azure Databricks usa o OAuth 2.0 como o protocolo preferencial para autorização e autenticação de usuário fora da interface do usuário. A autenticação unificada do cliente automatiza a geração e a atualização de token. Depois que um usuário entra e concede consentimento, o OAuth emite um token de acesso para a CLI, O SDK ou outra ferramenta a ser usada em nome do usuário. Cada token de acesso é válido por uma hora, após a qual um novo token é solicitado automaticamente.
Nesta página, a autorização refere-se ao uso do OAuth para conceder acesso aos recursos do Azure Databricks, enquanto a autenticação refere-se à validação de credenciais por meio de tokens de acesso.
Para obter mais detalhes de alto nível, consulte Autorizar o acesso aos recursos do Azure Databricks.
Maneiras de autorizar o acesso aos recursos do Azure Databricks
O Azure Databricks dá suporte a duas maneiras de autorizar contas de usuário com o OAuth:
Automático (recomendado): Use a autenticação unificada se você estiver trabalhando com ferramentas e SDKs com suporte, como o SDK do Terraform do Azure Databricks. Essa abordagem manipula a geração de tokens e a atualização automaticamente.
Manual: Gere um verificador de código e um desafio e, em seguida, troque-os por um token OAuth. Use esse método se sua ferramenta não der suporte à autenticação unificada. Para obter detalhes, consulte Gerar manualmente tokens de acesso OAuth U2M.
Autorização automática com autenticação unificada
Observação
Antes de configurar a autorização, examine as permissões de ACL para o tipo de operações de workspace que você planeja executar e confirme se sua conta tem o nível de acesso necessário. Para obter detalhes, consulte listas de controle do Access.
Para executar a autorização do OAuth com SDKs do Databricks e ferramentas que dão suporte à autenticação unificada, integre o seguinte em seu código:
Ambiente
Para usar variáveis de ambiente para um tipo de autenticação específico do Azure Databricks com uma ferramenta ou SDK, consulte Autorizar 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 e a prioridade do método de autenticação.
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 Autorizar 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 e a prioridade do método de autenticação.
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 espaço de trabalho, defina os seguintes valores no 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 databricks auth login comando com as seguintes opções:
- Para operações de nível de conta,
--host https://accounts.cloud.databricks.com --account-id <account-id>. - Para operações no nível do workspace,
--host <workspace-url>.
Em seguida, siga as instruções no navegador da Web para fazer logon em sua conta ou workspace do Azure Databricks.
Para obter mais detalhes, consulte Autorização do OAuth com a CLI do Databricks.
VS Code
Para a extensão do Databricks para Visual Studio Code, siga as etapas em Configurar a autorização para a extensão do Databricks para Visual Studio Code.
Conectar
A autenticação U2M do OAuth tem suporte no Databricks Connect para Python, começando com o Databricks Runtime 13.1 e para Scala a partir do Databricks Runtime 13.3 LTS.
Para o Databricks Connect, você pode:
-
Use um perfil de configuração: Defina valores no nível do workspace em seu
.databrickscfgarquivo, conforme descrito na guia Perfil. Defina também `cluster_id` como a URL da instância do workspace. -
Use variáveis de ambiente: Defina os mesmos valores mostrados na guia Ambiente. Defina também a URL do workspace da instância
DATABRICKS_CLUSTER_ID.
Os valores em .databrickscfg têm precedência sobre as variáveis de ambiente.
Para inicializar o Databricks Connect com essas configurações, consulte a configuração de computação do Databricks Connect.
Terraformação
Antes de aplicar sua configuração do Terraform, você deve executar um dos comandos databricks auth login na guia CLI, dependendo se sua configuração utiliza operações de espaço de trabalho ou de conta. Esses comandos geram e armazenam em cache o token OAuth necessário na .databricks/token-cache.json pasta inicial do usuário.
Operações no nível da conta
Para autenticação padrão:
provider "databricks" {
alias = "account"
}
Para configuração direta:
provider "databricks" {
alias = "account"
host = <retrieve-account-console-url>
account_id = <retrieve-account-id>
}
Substitua os espaços reservados retrieve- pela sua própria implementação para recuperar os valores do console ou de outro repositório de configurações, como HashiCorp Vault. Veja também o Provedor do Cofre. Neste exemplo, você pode definir account_id como a URL do console da conta do Azure Databricks.
Operações no nível do espaço de trabalho
Para autenticação padrão:
provider "databricks" {
alias = "workspace"
}
Para configuração direta:
provider "databricks" {
alias = "workspace"
host = <retrieve-workspace-url>
}
Python
Antes de executar seu código, você deve executar o databricks auth login comando na guia CLI com opções de operações de workspace ou de conta. Esses comandos geram e armazenam em cache o token OAuth necessário na .databricks/token-cache.json pasta inicial do usuário.
Operações no nível da conta
Para autenticação padrão:
from databricks.sdk import AccountClient
a = AccountClient()
# ...
Para configuração direta:
from databricks.sdk import AccountClient
a = AccountClient(
host = retrieveAccountConsoleUrl(),
account_id = retrieveAccountId()
)
# ...
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.
Operações no nível do espaço de trabalho
Para autenticação padrão:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
# ...
Para configuração direta:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient(host = retrieve_workspace_url())
# ...
Para obter mais informações sobre como autenticar com ferramentas e SDKs do Azure Databricks que usam o Python e que implementam a autenticação unificada do Databricks, consulte:
- Configurar o cliente do Databricks Connect para o Python
- Configurar a autorização para a extensão do Databricks para o Visual Studio Code
- Autenticar o SDK do Databricks para o Python com sua conta ou workspace do Azure Databricks
Java
Antes de executar seu código, você deve executar o databricks auth login comando na guia CLI com opções de operações de workspace ou de conta. Esses comandos geram e armazenam em cache o token OAuth necessário na .databricks/token-cache.json pasta inicial do usuário.
Operações no nível da conta
Para autenticação padrão:
import com.databricks.sdk.AccountClient;
// ...
AccountClient a = new AccountClient();
// ...
Para configuração direta:
import com.databricks.sdk.AccountClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
.setHost(retrieveAccountConsoleUrl())
.setAccountId(retrieveAccountId());
AccountClient a = new AccountClient(cfg);
// ...
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.
Operações no nível do espaço de trabalho
Para autenticação padrão:
import com.databricks.sdk.WorkspaceClient;
// ...
WorkspaceClient w = new WorkspaceClient();
// ...
Para configuração direta:
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 autorizar e autenticar com ferramentas e SDKs do Azure Databricks que usam Java e que implementam a autenticação unificada do Databricks, consulte:
- Configurar o cliente do Databricks Connect para Scala (usa o SDK do Databricks para Java para autenticação)
- Autenticar o SDK do Databricks para o Java com sua conta ou workspace do Azure Databricks
Go
Antes de executar seu código, você deve executar o databricks auth login comando na guia CLI com opções de operações de workspace ou de conta. Esses comandos geram e armazenam em cache o token OAuth necessário na .databricks/token-cache.json pasta inicial do usuário.
Operações no nível da conta
Para autenticação padrão:
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient())
// ...
Para configuração direta:
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
Host: retrieveAccountConsoleUrl(),
AccountId: retrieveAccountId(),
}))
// ...
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.
Operações no nível do espaço de trabalho
Para autenticação padrão:
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient())
// ...
Para configuração direta:
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 workspace do Azure Databricks.
Gerar manualmente tokens de acesso U2M do OAuth
Esta seção é para usuários que trabalham com ferramentas ou serviços de terceiros que não dão suporte ao padrão de autenticação unificada do Databricks . Se você precisar gerar, atualizar ou usar manualmente tokens OAuth do Azure Databricks para autenticação OAuth U2M, siga as etapas nesta seção.
Etapa 1: gerar um verificador de código e um desafio
Para gerar tokens de acesso OAuth U2M manualmente, comece criando um verificador de código e um desafio de código correspondente. Você usará o desafio na Etapa 2 para obter um código de autorização e o verificador na Etapa 3 para trocar esse código por um token de acesso.
Observação
Siga o padrão OAuth PKCE:
- O verificador de código é uma cadeia de caracteres aleatória criptograficamente (43 a 128 caracteres) usando caracteres
A–Z,a–z,0–9,-._~. - O desafio de código é um hash SHA256 codificado em URL base64 do verificador.
Para obter mais informações, consulte Solicitação de Autorização.
O script Python a seguir gera um verificador e um desafio. Embora você possa usá-los várias vezes, o Azure Databricks recomenda gerar um novo par sempre que você gerar manualmente tokens de acesso.
import hashlib, base64, secrets, string
# Allowed characters for the code verifier, per PKCE spec
allowed_chars = string.ascii_letters + string.digits + "-._~"
# Generate a secure code verifier (43–128 characters)
code_verifier = ''.join(secrets.choice(allowed_chars) for _ in range(64))
# Create the SHA256 hash of the code verifier
sha256_hash = hashlib.sha256(code_verifier.encode()).digest()
# Base64-url-encode the hash and strip any trailing '=' padding
code_challenge = base64.urlsafe_b64encode(sha256_hash).decode().rstrip("=")
# Output values
print(f"code_verifier: {code_verifier}")
print(f"code_challenge: {code_challenge}")
Etapa 2: Gerar um código de autorização
Para obter um token de acesso OAuth do Azure Databricks, primeiro você deve gerar um código de autorização OAuth. Esse código expira imediatamente após o uso. Você pode gerar o código no nível da conta ou do workspace:
- Nível da conta: Use para chamar as APIs REST no nível da conta e no nível do workspace em todos os workspaces acessíveis ao usuário.
- Nível do workspace: Use para chamar APIs REST em um único workspace.
Observação
Esses exemplos usam databricks-cli como a ID do cliente. Se você não estiver usando uma ferramenta interna do Azure Databricks, como a CLI ou os SDKs, deverá habilitar um aplicativo OAuth personalizado e usá-lo client_id em suas solicitações. Confira Habilitar ou desabilitar aplicativos OAuth de parceiros.
Gerar um código de autorização no nível da conta
No navegador, navegue até a URL com as seguintes substituições:
-
<account-id>: sua ID da conta do Azure Databricks -
<redirect-url>: um URI de redirecionamento local (por exemplo,http://localhost:8020) -
<state>: qualquer cadeia de caracteres de texto sem formatação para validar a resposta -
<code-challenge>: o desafio de código da 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-
Faça logon quando solicitado a acessar sua conta do Azure Databricks.
Depois de entrar, o navegador navegará até a URL de redirecionamento. Se nada estiver escutando no host e na porta (por exemplo,
http://localhost:8020), a página mostrará um erro de conexão, o que é esperado. Copie o código de autorização da barra de endereços. É a subcadeia de caracteres depoiscode=e antes da próxima&na cadeia de caracteres de consulta.http://localhost:8020/?code=dcod...7fe6&state=<state>Verifique se o valor corresponde ao
stateque você forneceu originalmente. Se não funcionar, descarte o código.Continue para gerar um token de acesso no nível da conta.
Gerar um código de autorização no nível do workspace
No navegador, navegue até a URL com as seguintes substituições:
-
<databricks-instance>: Seu<databricks-instance>com o nome da instância do workspace do Azure Databricks, por exemploadb-1234567890123456.7.azuredatabricks.net -
<redirect-url>: um redirecionamento local (por exemplo,http://localhost:8020) -
<state>: qualquer valor de texto sem formatação para validação de resposta -
<code-challenge>: a cadeia de caracteres de desafio da 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-
Faça logon quando solicitado a acessar sua conta do Azure Databricks.
Depois de entrar, o navegador navegará até a URL de redirecionamento. Caso não haja nada escutando no host e na porta (por exemplo,
http://localhost:8020), a página mostrará um erro de conexão, o que é esperado. Copie o código de autorização da barra de endereços. É a subcadeia de caracteres depoiscode=e antes da próxima&na cadeia de caracteres de consulta.http://localhost:8020/?code=dcod...7fe6&state=<state>Verifique se o valor corresponde ao
stateque você forneceu originalmente. Se não for o caso, descarte o código.Continue com a geração de um token de acesso no nível do espaço de trabalho.
Etapa 3: Trocar o código de autorização para um token de acesso
Para trocar o código de autorização por um token de acesso OAuth do Azure Databricks, escolha o nível apropriado:
- Nível de conta: Use para chamar as APIs REST no nível de conta e nível de espaço de trabalho em todos os espaços de trabalho que o usuário pode acessar.
- Nível do workspace: Use para chamar APIs REST em um único workspace.
Gerar um token de acesso no nível da conta
Use
curlpara trocar o código de autorização no nível da conta por um token de acesso OAuth.Substitua o seguinte na solicitação:
-
<account-id>: sua ID da conta do Azure Databricks -
<redirect-url>: a URL de redirecionamento da etapa anterior -
<code-verifier>: o verificador que você gerou anteriormente -
<authorization-code>: o código de autorização da etapa anterior
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>"-
Copie o valor
access_tokenda resposta. Por exemplo:{ "access_token": "eyJr...Dkag", "refresh_token": "doau...f26e", "scope": "all-apis offline_access", "token_type": "Bearer", "expires_in": 3600 }O token é válido por uma hora.
Continue para a etapa 4: chame uma API REST do Azure Databricks.
Gerar um token de acesso no nível do workspace
Use
curlpara trocar o código de autorização no nível do workspace por um token de acesso OAuth.Substitua o seguinte na solicitação:
-
<databricks-instance>: Seu<databricks-instance>com o nome da instância do workspace do Azure Databricks, por exemploadb-1234567890123456.7.azuredatabricks.net -
<redirect-url>: a URL de redirecionamento da etapa anterior -
<code-verifier>: o verificador que você gerou anteriormente -
<authorization-code>: o código de autorização no nível do espaço de trabalho
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>"-
Copie o valor
access_tokenda resposta. Por exemplo:{ "access_token": "eyJr...Dkag", "refresh_token": "doau...f26e", "scope": "all-apis offline_access", "token_type": "Bearer", "expires_in": 3600 }O token é válido por uma hora.
Etapa 4: Chamar uma API REST do Azure Databricks
Use o token de acesso para chamar APIs REST no nível de conta ou de espaço de trabalho, dependendo de seu escopo. Para chamar APIs no nível da conta, o usuário do Azure Databricks deve ser um administrador de 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"