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 Azure 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 e ferramentas do Azure Databricks 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 Azure 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 a URL da instância docluster_idworkspace. -
Use variáveis de ambiente: Defina os mesmos valores mostrados na guia Ambiente . Defina também a URL da instância do
DATABRICKS_CLUSTER_IDworkspace.
Os valores têm .databrickscfg precedência sobre 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 a configuração do Terraform, você deve executar um dos databricks auth login comandos na guia CLI , dependendo de sua configuração usar 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:
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. Consulte 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 workspace
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 workspace
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 workspace
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 Azure 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 workspace
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 do workspace em todos os workspaces que o usuário pode acessar.
- 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.
Copie o código de autorização da barra de endereços do navegador. É o valor após
code=e antes&na URL de redirecionamento:http://localhost:8020/?code=dcod...7fe6&state=<state>Verifique se o valor corresponde ao
stateque você forneceu originalmente. Caso contrário, descarte o código.Continue a 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>: com<databricks-instance>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.
Copie o código de autorização da barra de endereços do navegador. É o valor após
code=e antes&na URL de redirecionamento:http://localhost:8020/?code=dcod...7fe6&state=<state>Verifique se o valor corresponde ao
stateque você forneceu originalmente. Caso contrário, descarte o código.Continue a gerar um token de acesso no nível do workspace.
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 da conta: Use para chamar as APIs REST no nível da conta e do workspace em todos os workspaces 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>: com<databricks-instance>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 workspace
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 workspace, 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"