Autorize o acesso interativo a Databricks recurso com um usuário account usando OAuth
Este tópico fornece etapas e detalhes para autorizar o acesso a Databricks recurso ao executar interativamente Databricks CLI comando ou chamar Databricks REST APIs.
Databricks usa o OAuth como o protocolo preferencial para autorização e autenticação de usuários ao interagir com o Databricks recurso fora da interface do usuário. Databricks também fornece a ferramenta de autenticação de cliente unificada para automatizar o refresh do acesso tokens gerado como parte do método de autenticação do OAuth.
Para obter mais detalhes de alto nível, consulte Autorização de acesso a Databricks recurso.
Quais são as minhas opções de autorização e autenticação ao acessar Databricks recurso?
Neste tópico, a autorização se refere ao protocolo (OAuth) usado para negociar o acesso a um recurso específico do Databricks por meio de delegação. A autenticação refere-se ao mecanismo pelo qual as credenciais são representadas, transmitidas e verificadas - que, nesse caso, são tokens de acesso .
Databricks usa a autorização baseada emOAuth 2.0para permitir o acesso a Databricks account e workspace recurso da linha de comando ou código em nome de um usuário com as permissões para acessar esses recursos. Depois que um usuário inicialmente faz login 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 tokens em nome do usuário a partir desse momento. Os tokens de acesso OAuth têm uma vida útil de uma hora, após a qual a ferramenta ou o site SDK envolvido fará uma tentativa automática em segundo plano para obter um novo token que também é válido por uma hora.
Databricks Há duas maneiras de autorizar o acesso de um usuário account com OAuth:
- Principalmente de forma automática, usando o suporte de autenticação de cliente unificado do Databricks. Use essa abordagem simplificada se estiver usando SDKs específicos da Databricks (como o SDK do Databricks Terraform) e ferramentas. As ferramentas e os SDKs compatíveis estão listados em Autenticação de cliente unificada da Databricks.
- Manualmente, gerando diretamente um par verificador/desafio de código OAuth e um código de autorização, e usando-os para criar os tokens OAuth iniciais que o senhor fornecerá na sua configuração. Use essa abordagem quando não estiver usando uma API compatível com a autenticação de cliente unificada da Databricks. Para obter mais detalhes, consulte: Gerar e usar manualmente tokens de acesso para autenticação OAuth de usuário para máquina (U2M).
Autorização interativa de usuários com a autenticação unificada de clientes da Databricks
Antes de começar a configurar sua autorização, revise as permissões do ACL para a categoria específica de operações que você realizará nos objetos do workspace e determine se o seu account tem o nível de acesso necessário. Para obter mais detalhes, consulte Listas de controle de acesso.
Para executar a autorização OAuth com SDKs e ferramentas da Databricks que oferecem suporte à autenticação unificada do cliente, integre o seguinte em seu código:
- Environment
- Profile
- CLI
- Connect
- VS Code
- Terraform
- Python
- Java
- Go
Para usar a variável de ambiente para um tipo específico de autenticação Databricks com uma ferramenta ou SDK, consulte Autorização de acesso a Databricks recurso ou a documentação da ferramenta ou SDK. Consulte também variável de ambiente e campos para autenticação unificada de cliente e os métodos padrão para autenticação unificada de cliente.
Para operações de nível account, defina as seguintes variáveis de ambiente:
DATABRICKS_HOST
, defina para o valor da URL do console da sua conta Databricks,https://accounts.gcp.databricks.com
.DATABRICKS_ACCOUNT_ID
Para operações em nível workspace, defina as seguintes variáveis de ambiente:
DATABRICKS_HOST
, definido como o valor do Databricks workspace URL, porhttps://1234567890123456.7.gcp.databricks.com
exemplo,.
Crie ou identifique um perfil de configuração do Databricks com os seguintes campos em seu arquivo .databrickscfg
. Se você criar o perfil, substitua os espaços reservados pelos valores apropriados. Para usar o perfil com uma ferramenta ou SDK, consulte Autorização de acesso ao recurso Databricks ou a documentação da ferramenta ou SDK. Consulte também variável de ambiente e campos para autenticação unificada de cliente e os métodos padrão para autenticação unificada de cliente.
accountPara operações .databrickscfg
de nível, defina os seguintes valores em seu arquivo. Nesse caso, o URL do console Databricks account é https://accounts.gcp.databricks.com
:
[<some-unique-configuration-profile-name>]
host = <account-console-url>
account_id = <account-id>
workspacePara operações .databrickscfg
de nível, defina os seguintes valores em seu arquivo. Nesse caso, o host é o Databricks workspace URL, por https://1234567890123456.7.gcp.databricks.com
exemplo,:
[<some-unique-configuration-profile-name>]
host = <workspace-url>
Para o site Databricks CLI, execute o comando databricks auth login
com as seguintes opções:
- Para Databricks account-level
--host <account-console-url> --account-id <account-id>
operações,. - Para Databricks workspace-level
--host <workspace-url>
operações,.
Depois de executar este comando, siga as instruções do navegador da Web para acessar log in em seu site Databricks account ou workspace.
Para obter mais detalhes, consulte Autorização OAuth com a CLI do Databricks.
A autenticação OAuth U2M é compatível com as seguintes versões do Databricks Connect:
- Para o Python, Databricks Connect para Databricks Runtime 13.1 e superior.
- Para o Scala, Databricks Connect para Databricks Runtime 13.3 LTS e superior.
Para o Databricks Connect, você pode fazer um das coisas a seguir:
- Defina os valores no seu
.databrickscfg
arquivo para Databricks workspace-level operações conforme especificado na seção "Profile" deste artigo. Defina também ocluster_id
variável de ambiente em seu perfil para o URL da instânciaworkspace, por exemplo,https://1234567890123456.7.gcp.databricks.com
. - Defina a variável de ambiente para Databricks workspace-level operações conforme especificado na seção "Environment" deste artigo. Defina também o
DATABRICKS_CLUSTER_ID
variável de ambiente para o URL da instânciaworkspace, por exemplo,https://1234567890123456.7.gcp.databricks.com
.
Os valores em seu arquivo .databrickscfg
sempre têm precedência sobre as variáveis de ambiente.
Para inicializar o cliente Databricks Connect com essas variáveis de ambiente ou valores em seu arquivo .databrickscfg
, consulte a configuração de computação para Databricks Connect.
Para a extensão do Databricks para Visual Studio Code, faça o seguinte:
- No painel Configuration , clique em Configure Databricks .
- Na paleta de comandos , em Databricks Host , digite o URLworkspace, por exemplo,
https://1234567890123456.7.gcp.databricks.com
, e pressioneEnter
. - Selecione OAuth (usuário para máquina) .
- Complete as instruções na tela do seu navegador da Web para concluir a autenticação com o seu Databricks account e permitir o acesso a todos os aplicativos .
Para obter mais detalhes, consulte Autorização OAuth U2M com a CLI da Databricks.
Tanto para as operações de nível accountquanto para as de nível workspace, o senhor deve usar o comando Databricks CLI para executar o seguinte comando antes de aplicar a configuração Terraform. Esse comando instrui o Databricks CLI a gerar e armazenar em cache os tokens OAuth necessários no caminho .databricks/token-cache.json
dentro da pasta home do usuário em seu computador:
Configuração para Databricks account-level operações
databricks auth login --host <account-console-url> --account-id <account-id>
Substitua os seguintes espaços reservados:
- Substitua
<account-console-url>
pelo valorhttps://accounts.gcp.databricks.com
. ( Não defina esse valor para o URL do workspace do Databricks.) - Substitua
<account-id>
pelo valor de seu Databricks account. Consulte Localizar sua account ID.
Se o senhor tiver um perfil de configuração do Databricks existente 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 auth login
comando, o senhor será solicitado a salvar o account URL de login e o account ID como um Databricks perfil de configuração. 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
é sobrescrito.
Se solicitado, conclua as instruções na tela do seu navegador para concluir o login. Em seguida, use o código Terraform semelhante a um dos seguintes trechos:
Para autenticaçãodefault:
provider "databricks" {
alias = "account"
}
Para configuração direta, defina o provider
usando a configuração a seguir. Substitua os espaços reservados retrieve-
por sua própria implementação para recuperar os valores do console ou de algum outro armazenamento de configuração, como o HashiCorp Vault. Consulte também Vault Provider). Neste exemplo, o senhor pode definir account_id
como o URL do console Databricks account do console.
provider "databricks" {
alias = "account"
host = <retrieve-account-console-url>
account_id = <retrieve-account-id>
}
Configuração para Databricks workspace-level operações
databricks auth login --host <workspace-url>
Substitua o <workspace-url>
espaço reservado pelo Databricks workspace URL de destino, por exemplo,.https://1234567890123456.7.gcp.databricks.com
Se o senhor tiver um perfil de configuração do Databricks existente com o campo host
já definido, poderá substituir --host <workspace-url>
por --profile <profile-name>
.
Depois de executar o auth login
comando, o senhor será solicitado a salvar o workspace URL como um Databricks perfil de configuração. 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
é sobrescrito.
Se solicitado, conclua as instruções na tela do seu navegador para concluir o login. Em seguida, use o código Terraform semelhante a um dos seguintes trechos:
Para autenticaçãodefault:
provider "databricks" {
alias = "workspace"
}
Para configuração direta (substitua os espaços reservados retrieve
por sua própria implementação para recuperar os valores do console ou de algum outro armazenamento de configuração, como o HashiCorp Vault. Consulte também Vault Provider). Nesse caso, o host é o Databricks workspace URL, por https://1234567890123456.7.gcp.databricks.com
exemplo,:
provider "databricks" {
alias = "workspace"
host = <retrieve-workspace-url>
}
Para obter mais informações sobre autenticação com o provedor Databricks Terraform, consulte Autenticação.
Tanto para as operações de nível accountquanto para as de nível workspace, o senhor deve usar o Databricks CLI para executar o seguinte comando antes de executar o código Python. Esse comando instrui o Databricks CLI a gerar e armazenar em cache os tokens OAuth necessários no caminho .databricks/token-cache.json
dentro da pasta home do usuário em seu computador:
Configuração para Databricks account-level operações
databricks auth login --host <account-console-url> --account-id <account-id>
Substitua os seguintes espaços reservados:
- Substitua
<account-console-url>
pelo valorhttps://accounts.gcp.databricks.com
. ( Não defina esse valor para o URL do workspace do Databricks.) - Substitua
<account-id>
pelo valor de seu Databricks account. Consulte Localizar sua account ID.
Se o senhor tiver um perfil de configuração do Databricks existente 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 auth login
comando, o senhor será solicitado a salvar o account URL de login e o account ID como um Databricks perfil de configuração. 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
é sobrescrito.
Se solicitado, conclua as instruções na tela do seu navegador para concluir o login. Em seguida, use o código Python semelhante a um dos seguintes trechos:
Para obter a autorizaçãodefault usando a autenticação de cliente unificada Databricks:
from databricks.sdk import AccountClient
a = AccountClient()
# ...
Para configuração direta (substitua os espaços reservados retrieve
por sua própria implementação para recuperar os valores do console ou de algum outro armazenamento de configuração, como o Google Cloud Secret Manager). Nesse caso, o URL do console Databricks account é https://accounts.gcp.databricks.com
:
from databricks.sdk import AccountClient
a = AccountClient(
host = retrieveAccountConsoleUrl(),
account_id = retrieveAccountId()
)
# ...
Configuração para Databricks workspace-level operações
databricks auth login --host <worskpace-url>
Substitua o <workspace-url>
espaço reservado pelo Databricks workspace URL de destino, por exemplo,.https://1234567890123456.7.gcp.databricks.com
Se o senhor tiver um perfil de configuração do Databricks existente com o campo host
já definido, poderá substituir --host <workspace-url>
por --profile <profile-name>
.
Depois de executar o auth login
comando, o senhor será solicitado a salvar o workspace URL como um Databricks perfil de configuração. 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
é sobrescrito.
Se solicitado, conclua as instruções na tela do seu navegador para concluir o login. Em seguida, use o código Python semelhante a um dos seguintes trechos:
Para obter a autorizaçãodefault usando a autenticação de cliente unificada Databricks:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
# ...
Para configuração direta (substitua os espaços reservados retrieve
por sua própria implementação para recuperar os valores do console ou de algum outro armazenamento de configuração, como o Google Cloud Secret Manager). Nesse caso, o host é o Databricks workspace URL, por https://1234567890123456.7.gcp.databricks.com
exemplo,:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient(host = retrieveWorkspaceUrl())
# ...
Para obter mais informações sobre a autenticação com ferramentas Databricks e SDKs que usam Python e que implementam a autenticação unificada de clienteDatabricks, consulte:
Tanto para as operações de nível accountquanto para as de nível workspace, o senhor deve usar o Databricks CLI para executar o seguinte comando antes de executar o código Java. Esse comando instrui o Databricks CLI a gerar e armazenar em cache os tokens OAuth necessários no caminho .databricks/token-cache.json
na pasta home do usuário em seu computador:
Configuração para Databricks account-level operações
databricks auth login --host <account-console-url> --account-id <account-id>
Substitua os seguintes espaços reservados:
- Substitua
<account-console-url>
pelo valorhttps://accounts.gcp.databricks.com
. ( Não defina esse valor para o URL do workspace do Databricks.) - Substitua
<account-id>
pelo valor de seu Databricks account. Consulte Localizar sua account ID.
Se o senhor tiver um perfil de configuração do Databricks existente 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 auth login
comando, o senhor será solicitado a salvar o account URL de login e o account ID como um Databricks perfil de configuração. 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
é sobrescrito.
Se solicitado, conclua as instruções na tela do seu navegador para concluir o login. Em seguida, use o código Java semelhante a um dos seguintes trechos:
Para obter a autorizaçãodefault usando a autenticação de cliente unificada Databricks:
import com.databricks.sdk.AccountClient;
// ...
AccountClient a = new AccountClient();
// ...
Para configuração direta (substitua os espaços reservados retrieve
por sua própria implementação para recuperar os valores do console ou de algum outro armazenamento de configuração, como o Google Cloud Secret Manager). Nesse caso, o URL do console Databricks account é https://accounts.gcp.databricks.com
:
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 Databricks workspace-level operações
Para workspaceoperações de nível, o senhor deve primeiro usar o Databricks CLI para executar o seguinte comando antes de executar o Java código. Esse comando instrui o Databricks CLI a gerar e armazenar em cache os tokens OAuth necessários no caminho .databricks/token-cache.json
dentro da pasta home do usuário em seu computador:
databricks auth login --host <worskpace-url>
Substitua o <workspace-url>
espaço reservado pelo Databricks workspace URL de destino, por exemplo,.https://1234567890123456.7.gcp.databricks.com
Se o senhor tiver um perfil de configuração do Databricks existente com o campo host
já definido, poderá substituir --host <workspace-url>
por --profile <profile-name>
.
Depois de executar o auth login
comando, o senhor será solicitado a salvar o workspace URL como um Databricks perfil de configuração. 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
é sobrescrito.
Se solicitado, conclua as instruções na tela do seu navegador para concluir o login. Em seguida, use o código Java semelhante a um dos seguintes trechos:
Para obter a autorizaçãodefault usando a autenticação de cliente unificada Databricks:
import com.databricks.sdk.WorkspaceClient;
// ...
WorkspaceClient w = new WorkspaceClient();
// ...
Para configuração direta (substitua os espaços reservados retrieve
por sua própria implementação para recuperar os valores do console ou de algum outro armazenamento de configuração, como o Google Cloud Secret Manager). Nesse caso, o host é o Databricks workspace URL, por https://1234567890123456.7.gcp.databricks.com
exemplo,:
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 autorização e autenticação com ferramentas Databricks e SDKs que usam Java e que implementam a autenticação unificada de clienteDatabricks, consulte:
- Configure o cliente Databricks Connect para Scala (o cliente Databricks Connect para Scala usa o Databricks SDK para Java incluído para autenticação)
- Autentique o SDK do Databricks para Java com sua account ou workspace do Databricks
Tanto para as operações de nível accountquanto para as de nível workspace, o senhor deve usar o comando Databricks CLI para executar o seguinte comando antes de executar o código Go. Esse comando instrui o Databricks CLI a gerar e armazenar em cache os tokens OAuth necessários no caminho .databricks/token-cache.json
dentro da pasta home do usuário em seu computador:
Configuração para Databricks account-level operações
databricks auth login --host <account-login-url> --account-id <account-id>
Substitua os seguintes espaços reservados:
- Substitua
<account-console-url>
pelo valorhttps://accounts.gcp.databricks.com
. ( Não defina esse valor para o URL do workspace do Databricks.) - Substitua
<account-id>
pelo valor de seu Databricks account. Consulte Localizar sua account ID.
Se o senhor tiver um perfil de configuração do Databricks existente 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 auth login
comando, o senhor será solicitado a salvar o account URL de login e o account ID como um Databricks perfil de configuração. 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
é sobrescrito.
Se solicitado, conclua as instruções na tela do seu navegador para concluir o login. Em seguida, use o código Go semelhante a um dos seguintes trechos:
Para obter a autorizaçãodefault usando a autenticação de cliente unificada Databricks:
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient())
// ...
Para configuração direta (substitua os espaços reservados retrieve
por sua própria implementação para recuperar os valores do console ou de algum outro armazenamento de configuração, como o Google Cloud Secret Manager). Nesse caso, o URL do console Databricks account é https://accounts.gcp.databricks.com
:
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
Host: retrieveAccountConsoleUrl(),
AccountId: retrieveAccountId(),
}))
// ...
Configuração para Databricks workspace-level operações
Para workspaceoperações de nível, o senhor deve primeiro usar o Databricks CLI para executar o seguinte comando, antes de executar o código Go. Esse comando instrui o Databricks CLI a gerar e armazenar em cache os tokens OAuth necessários no caminho .databricks/token-cache.json
dentro da pasta home do usuário em seu computador:
databricks auth login --host <worskpace-url>
Substitua o <workspace-url>
espaço reservado pelo Databricks workspace URL de destino, por exemplo,.https://1234567890123456.7.gcp.databricks.com
Se o senhor tiver um perfil de configuração do Databricks existente com o campo host
já definido, poderá substituir --host <workspace-url>
por --profile <profile-name>
.
Depois de executar o auth login
comando, o senhor será solicitado a salvar o workspace URL como um Databricks perfil de configuração. 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
é sobrescrito.
Se solicitado, conclua as instruções na tela do seu navegador para concluir o login. Em seguida, use o código Go semelhante a um dos seguintes trechos:
Para autenticaçãodefault:
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient())
// ...
Para configuração direta (substitua os espaços reservados retrieve
por sua própria implementação para recuperar os valores do console ou de algum outro armazenamento de configuração, como o Google Cloud Secret Manager). Nesse caso, o host é o Databricks workspace URL, por https://1234567890123456.7.gcp.databricks.com
exemplo,:
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
Host: retrieveWorkspaceUrl(),
}))
// ...
Para obter mais informações sobre a autenticação com Databricks ferramentas e SDKs que usam Go e que implementam a autenticação unificada de clienteDatabricks, consulte Autenticar o Databricks SDK para Go com seu Databricks account ou workspace.
Gerar e usar manualmente tokens de acesso para autenticação OAuth de usuário para máquina (U2M)
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 clienteDatabricks.
Se, por algum motivo, for necessário gerar manualmente, refresh, ou usar Databricks OAuth acessar tokens para OAuth autenticação U2M, siga as instruções desta seção.
Etapa 1: Gerar um verificador de código OAuth e um par de desafio de código
Para gerar e usar manualmente tokens de acesso para autenticação OAuth U2M, o senhor deve primeiro ter um verificador de código OAuth e um desafio de código OAuth derivado do verificador de código. O senhor usa o desafio de código na Etapa 2 para gerar um código de autorização OAuth. O senhor usa o verificador de código e o código de autorização na Etapa 3 para gerar os tokens de acesso OAuth.
Embora seja tecnicamente possível usar texto simples não codificado strings para o verificador de código e o desafio de código, o site Databricks recomenda enfaticamente que o senhor siga 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 codificada em Base64-URL do hash SHA256 do verificador de código. Para obter mais informações, consulte Solicitação de autorização.
O senhor pode executar o seguinte script Python para gerar rapidamente um verificador de código exclusivo e um par de desafios de código. Embora o senhor possa reutilizar esse verificador de código gerado e o par de desafio de código várias vezes, a Databricks recomenda que o senhor gere um novo verificador de código e um par de desafio de código toda vez que gerar manualmente tokens de acesso para autenticação OAuth U2M.
import uuid, hashlib, base64
# Generate a UUID.
uuid1 = uuid.uuid4()
# Convert the UUID to a string.
uuid_str1 = str(uuid1).upper()
# Create the code verifier.
code_verifier = uuid_str1 + "-" + uuid_str1
# Create the code challenge based on the code verifier.
code_challenge = base64.urlsafe_b64encode(hashlib.sha256(code_verifier.encode()).digest()).decode('utf-8')
# Remove all padding from the code challenge.
code_challenge = code_challenge.replace('=', '')
# Print the code verifier and the code challenge.
# Use these in your calls to manually generate
# access tokens for OAuth U2M authentication.
print(f"code_verifier: {code_verifier}")
print(f"code_challenge: {code_challenge}")
Etapa 2: gerar um código de autorização
O senhor usa um código de autorização OAuth para gerar um token de acesso Databricks OAuth . O código de autorização expira imediatamente após o senhor usá-lo para gerar um token de acesso Databricks OAuth . O escopo do código de autorização depende do nível a partir do qual você o gera. O senhor pode gerar um código de autorização no nível Databricks account ou no nível workspace, como segue:
- Para chamar account-level e workspace-level REST APIs dentro da conta e do espaço de trabalho aos quais o usuário Databricks account tem acesso, gere um código de autorização no nível account.
- Para chamar REST APIs em apenas um workspace ao qual o usuário account tem acesso, o senhor pode gerar um código de autorização no nível workspace apenas para esse workspace.
Gerar um código de autorização de nível account
-
Como administrador da conta, faça login no console da conta.
-
Clique na seta para baixo ao lado de seu nome de usuário no canto superior direito.
-
Copie a ID de sua conta .
-
Na barra de endereço do seu navegador, navegue até o seguinte URL. Quebras de linha foram adicionadas para facilitar a leitura. Seu URL não deve conter essas quebras de linha.
No URL a seguir, substitua o seguinte:
- Substitua
<account-id>
pela ID da conta que o senhor copiou. - Substitua
<redirect-url>
por um URL de redirecionamento para sua máquina local, por exemplohttp://localhost:8020
. - Substitua
<state>
por algumas cadeias de texto simples que o senhor pode usar para verificar a integridade do código de autorização. - Substitua
<code-challenge>
pelo desafio de código que você gerou na Etapa 1.
https://accounts.gcp.databricks.com/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 acessar o site log in e o seu Databricks account.
-
Na barra de endereço do seu navegador, copie o código de autorização. O código de autorização é a sequência completa de caracteres entre
code=
e o caractere&
no URL. Por exemplo, o código de autorização no URL a seguir édcod...7fe6
:http://localhost:8020/?code=dcod...7fe6&state=<state>
Você deve verificar a integridade desse código de autorização confirmando visualmente que o valor
<state>
nesse URL de resposta corresponde ao valorstate
que você forneceu no URL de solicitação. Se os valores forem diferentes, você não deve usar esse código de autorização, pois ele pode estar comprometido. -
Avance para Gerar um account-level access tokens.
Gerar um código de autorização de nível workspace
-
Na barra de endereço do seu navegador, navegue até o seguinte URL. Quebras de linha foram adicionadas para facilitar a leitura. Seu URL não deve conter essas quebras de linha.
No URL a seguir, substitua o seguinte:
- Substitua
<databricks-instance>
pelo Databricks workspace nome da instância, por1234567890123456.7.gcp.databricks.com
exemplo,. - Substitua
<redirect-url>
por um URL de redirecionamento para sua máquina local, por exemplohttp://localhost:8020
. - Substitua
<state>
por algumas cadeias de texto simples que o senhor pode usar para verificar a integridade do código de autorização. - Substitua
<code-challenge>
pelo desafio de código que você gerou na Etapa 1.
https://<databricks-instance>/oidc/v1/authorize
?client_id=databricks-cli
&redirect_uri=<redirect-url>
&response_type=code
&state=<state>
&code_challenge=<code-challenge>
&code_challenge_method=S256
&scope=all-apis+offline_access - Substitua
-
Quando solicitado, siga as instruções na tela para acessar o site log in e o seu Databricks workspace.
-
Na barra de endereço do seu navegador, copie o código de autorização. O código de autorização é a sequência completa de caracteres entre
code=
e o caractere&
no URL. Por exemplo, o código de autorização no URL a seguir édcod...7fe6
:http://localhost:8020/?code=dcod...7fe6&state=<state>
Você deve verificar a integridade desse código de autorização confirmando visualmente que o valor
<state>
nesse URL de resposta corresponde ao valorstate
que você forneceu no URL de solicitação. Se os valores forem diferentes, você não deve usar esse código de autorização, pois ele pode estar comprometido.
Etapa 3: Use o código de autorização para gerar tokens de acesso OAuth
O senhor usa o código de autorização OAuth da etapa anterior para gerar um token de acesso Databricks OAuth , como segue:
- Para chamar account-level e workspace-level REST APIs dentro da conta e do espaço de trabalho aos quais o usuário Databricks account tem acesso, use o código de autorização account-level para gerar tokens de acesso no nível account.
- Para chamar REST APIs em apenas um workspace ao qual o usuário account tem acesso, o senhor pode usar o código de autorização de nível workspacepara gerar tokens de acesso no nível workspace apenas para esse workspace.
Gerar um account-level access tokens
-
Use um cliente como
curl
junto com o código de autorização de nível accountpara gerar os tokens de acesso de nível account OAuth . Na seguinte chamadacurl
, substitua os seguintes espaços reservados:- Substitua
<account-id>
pela ID da conta da Etapa 2. - Substitua
<redirect-url>
pelo URL de redirecionamento da Etapa 2. - Substitua
<code-verifier>
pelo verificador de código que você gerou na Etapa 1. - Substitua
<authorization-code>
pelo código de autorização de nível accountque o senhor gerou na Etapa 2.
curl --request POST \
https://accounts.gcp.databricks.com/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 os tokens de acesso account-level OAuth. Os tokens de acesso são as sequências completas de caracteres no objeto
access_token
. Por exemplo, os tokens de acesso na resposta a seguir sãoeyJr...Dkag
:JSON{
"access_token": "eyJr...Dkag",
"refresh_token": "doau...f26e",
"scope": "all-apis offline_access",
"token_type": "Bearer",
"expires_in": 3600
}Esses tokens de acesso expiram em uma hora. Para gerar novos tokens de acesso, repita o procedimento a partir da Etapa 1.
-
Pule para a Etapa 4: Chamar uma API REST da Databricks.
Gerar um workspace-level access tokens
-
Use um cliente como
curl
juntamente com o código de autorização de nível workspacepara gerar os tokens de acesso de nível workspace OAuth . Na seguinte chamadacurl
, substitua os seguintes espaços reservados:- Substitua
<databricks-instance>
pelo Databricks workspace nome da instância, por1234567890123456.7.gcp.databricks.com
exemplo,. - Substitua
<redirect-url>
pelo URL de redirecionamento da Etapa 2. - Substitua
<code-verifier>
pelo verificador de código que você gerou na Etapa 1. - Substitua
<authorization-code>
pelo código de autorização de nível workspaceque o senhor gerou na Etapa 2.
Bashcurl --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 os tokens de acesso workspace-level OAuth. Os tokens de acesso são as sequências completas de caracteres no objeto
access_token
. Por exemplo, os tokens de acesso na resposta a seguir sãoeyJr...Dkag
:JSON{
"access_token": "eyJr...Dkag",
"refresh_token": "doau...f26e",
"scope": "all-apis offline_access",
"token_type": "Bearer",
"expires_in": 3600
}Esses tokens de acesso expiram em uma hora. Para gerar novos tokens de acesso, repita o procedimento a partir da Etapa 1.
Etapa 4: chamar uma API REST da Databricks
O senhor usa os tokens de acesso account-level ou workspace-level OAuth para se autenticar em Databricks account-level REST APIs e workspace-level REST APIs, dependendo do escopo dos tokens de acesso. O usuário Databricks account deve ser um administrador account para chamar account-level REST APIs.
Exemplo account-level REST API request
Este exemplo usa a autenticação curl
junto com Bearer
para obter uma lista de todos os espaços de trabalho associados a um account.
- Substitua
<oauth-access-token>
pelos tokens de acesso account-level OAuth. - Substitua
<account-id>
pela ID de sua conta.
export OAUTH_TOKEN=<oauth-access-token>
curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
"https://accounts.gcp.databricks.com/api/2.0/accounts/<account-id>/workspaces"
Exemplo workspace-level REST API request
Este exemplo usa curl
junto com a autenticação Bearer
para listar todos os clusters disponíveis no site especificado workspace.
- Substitua
<oauth-access-token>
pelos tokens de acesso account-level ou workspace-level OAuth. - Substitua
<databricks-instance>
pelo Databricks workspace nome da instância, por1234567890123456.7.gcp.databricks.com
exemplo,.
export OAUTH_TOKEN=<oauth-access-token>
curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
"https://<databricks-instance>/api/2.0/clusters/list"