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.
Este tópico fornece etapas e detalhes para autorizar o acesso aos recursos do Azure Databricks ao executar interativamente comandos da CLI do Azure Databricks ou chamar APIs REST do Azure Databricks.
O Azure Databricks usa o OAuth como o protocolo preferencial para autorização e autenticação do usuário ao interagir com recursos do Azure Databricks fora da interface do usuário. O Azure Databricks também fornece a ferramenta de autenticação de cliente unificada para automatizar a atualização dos tokens de acesso gerados como parte do método de autenticação do OAuth.
Para obter mais detalhes de alto nível, veja Autorizar acesso aos recursos do Azure Databricks.
Quais são as minhas opções de autorização e autenticação ao acessar recursos do Azure Databricks?
Neste tópico, autorização refere-se ao protocolo (OAuth) usado para negociar o acesso a recursos específicos do Azure Databricks por meio da delegação. A autenticação se refere ao mecanismo pelo qual as credenciais são representadas, transmitidas e verificadas, que, nesse caso, são tokens de acesso.
O Azure Databricks usa autorização baseada em OAuth 2.0 para habilitar o acesso aos recursos de conta e de workspace do Azure Databricks a partir da linha de comando ou código em nome de um usuário com permissões para acessar esses recursos. Depois que um usuário inicialmente entra e consente com a solicitação de autenticação OAuth, um token OAuth é fornecido à ferramenta participante ou ao SDK para executar a autenticação baseada em token em nome do usuário a partir desse momento. O token de acesso OAuth tem um tempo de vida útil de uma hora, seguindo o qual a ferramenta ou o SDK envolvido fará uma tentativa automática em segundo plano de obter um novo token que também é válido por uma hora.
O Azure Databricks dá suporte a duas maneiras de autorizar o acesso a uma conta de usuário com o OAuth:
- Principalmente de forma automática, usando o suporte à autenticação de cliente unificada do Databricks. Use essa abordagem simplificada se você estiver usando SDKs específicos do Azure Databricks (como o SDK do Databricks Terraform) e ferramentas. As ferramentas e SDKs suportados estão listados em Autenticação unificada de cliente 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á na sua configuração. Use essa abordagem quando você não estiver usando uma API compatível com a autenticação de cliente unificada do Databricks. Para obter mais detalhes, consulte: Gerar manualmente e usar tokens de acesso para autenticação OAuth de usuário para computador (U2M).
Autorização interativa do usuário com autenticação de cliente unificada do Databricks
Observação
Antes de começar a configurar sua autorização, examine as permissões de ACL para a categoria específica de operações que você executará em objetos de workspace 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 autorização do OAuth com SDKs e ferramentas do Azure Databricks que dão suporte à autenticação unificada do cliente, 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 Autorizando o acesso aos recursos do Azure Databricks ou à documentação da ferramenta ou do SDK. Veja 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 Autorizando o acesso aos recursos do Azure Databricks ou a documentação da ferramenta ou do SDK. Veja 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 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>
Interface de Linha de Comando (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 Autorização do OAuth 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 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
.databrickscfg
arquivo 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 arquivo .databrickscfg
, confira Configuração de computação do 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, para Host do Databricks, insira a URL por workspace, por exemplo,
https://adb-1234567890123456.7.azuredatabricks.net
, e pressioneEnter
. - Selecione OAuth (usuário para máquina).
- 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 mais detalhes, confira Autorização U2M do OAuth com a CLI do Databricks.
Terraformação
Para operações tanto no nível da conta quanto no nível do workspace, você deve usar a CLI do Databricks para executar o seguinte comando antes de aplicar a configuração do Terraform. 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:
Configuração 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 sua ID de 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 Terraform semelhante a um dos seguintes snippets:
Para autenticação padrão:
provider "databricks" {
alias = "account"
}
Para configuração direta, defina o provider
usando a configuração a seguir. 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. Confira também Provedor do Vault). Neste exemplo, você pode definir account_id
como o URL do console da conta do Azure Databricks.
provider "databricks" {
alias = "account"
host = <retrieve-account-console-url>
account_id = <retrieve-account-id>
}
Configuração para operações no nível do workspace do Databricks
databricks auth login --host <workspace-url>
Substitua o espaço reservado <workspace-url>
pela URL do Azure Databricks por workspace 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 Terraform semelhante a um dos seguintes snippets:
Para autenticação padrão:
provider "databricks" {
alias = "workspace"
}
Para configuração direta (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. Confira também Provedor de Cofre). Nesse caso, o host é a URL por workspace do Azure Databricks, por exemplo https://adb-1234567890123456.7.azuredatabricks.net
:
provider "databricks" {
alias = "workspace"
host = <retrieve-workspace-url>
}
Para obter mais informações sobre como autenticar com o provedor Databricks Terraform, consulte Authentication.
Python
Para operações tanto no nível da conta quanto 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 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:
Configuração 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 sua ID de 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 autorização padrão usando autenticação de cliente unificada do Databricks:
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()
)
# ...
Configuração para operações no nível do workspace do Databricks
databricks auth login --host <worskpace-url>
Substitua o espaço reservado <workspace-url>
pela URL do Azure Databricks por workspace 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 autorização padrão usando autenticação de cliente unificada do Databricks:
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
- 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
Para operações tanto no nível da conta quanto 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 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 seu computador:
Configuração 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 sua ID de 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 autorização padrão usando autenticação de cliente unificada do Databricks:
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);
// ...
Configuração para operações no nível do workspace do 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 seu 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 do Azure Databricks por workspace 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 autorização padrão usando autenticação de cliente unificada do Databricks:
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 autorizar e autenticar com ferramentas do Databricks e SDKs que usam Java e que implementam de autenticação unificada de 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 workspace do Azure Databricks
Vá
Para operações tanto no nível da conta quanto 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 seu computador:
Configuração 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 sua ID de 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 autorização padrão usando autenticação de cliente unificada do Databricks:
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(),
}))
// ...
Configuração para operações no nível do workspace do 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 do Azure Databricks por workspace 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 workspace do Azure Databricks.
Gerar manualmente e usar tokens de acesso para autenticação OAuth de usuário para computador (U2M)
Observação
Esta seção é fornecida para usuários com ferramentas ou serviços de terceiros que não funcionam com a autenticação unificada do cliente Databricks padrão.
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 cadeias de caracteres 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.
Na barra de endereços do navegador da Web, navegue até a URL a seguir. Para legibilidade, quebras de linha foram adicionadas. 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.
Na barra de endereços do navegador da Web, copie o código de autorização. 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
Na barra de endereços do navegador da Web, navegue até a URL a seguir. Para legibilidade, quebras de linha foram adicionadas. 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.
Na barra de endereços do navegador da Web, copie o código de autorização. 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
Utilize o token de acesso OAuth de nível de conta ou de nível de área de trabalho para autenticar-se nas APIs REST de nível de conta do Azure Databricks e nas APIs REST de nível de área de trabalho, dependendo do escopo do token de acesso. Sua conta de usuário do Azure Databricks deve ser uma conta de administrador para chamar as 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"