Autenticar o acesso ao Databricks com uma conta de usuário usando OAuth (OAuth U2M)
Databricks usa a autenticação OAuth user-to-machine (U2M) para permitir o acesso de CLI e API a Databricks account e workspace recurso em nome de um usuário. 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 do OAuth têm uma vida útil de uma hora, após a qual a ferramenta ou o SDK envolvido fará uma tentativa automática em segundo plano para obter novos tokens que também são válidos por uma hora.
Databricks Há duas maneiras de autenticar 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 access tokens para autenticação OAuth de usuário para máquina (U2M).
Autenticação U2M com autenticação de cliente unificada da Databricks
Observação
Antes de começar a configurar a autenticação, revise as permissões ACL para uma categoria específica de operações em objetos 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 autenticação OAuth U2M com SDKs e ferramentas da Databricks que oferecem suporte à autenticação unificada de cliente, integre o seguinte em seu código:
Para usar a variável de ambiente para um tipo específico de autenticação Databricks com uma ferramenta ou SDK, consulte Autenticar o 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 account-level operações, defina a seguinte variável de ambiente:
DATABRICKS_HOST
, defina para o valor da URL do console da sua conta Databricks,https://accounts.cloud.databricks.com
.DATABRICKS_ACCOUNT_ID
Para workspace-level operações, defina a seguinte variável de ambiente:
DATABRICKS_HOST
, defina como o valor da URL do espaço de trabalho do Databricks, por exemplohttps://dbc-a1b2345c-d6e7.cloud.databricks.com
.
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 Autenticar o 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 no nível da conta, defina os seguintes valores em seu arquivo .databrickscfg
. Nesse caso, o URL do console Databricks account é https://accounts.cloud.databricks.com
:
[<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 em seu arquivo .databrickscfg
. Nesse caso, o host é o URL do espaço de trabalho do Databricks, por exemplo, https://dbc-a1b2345c-d6e7.cloud.databricks.com
:
[<some-unique-configuration-profile-name>]
host = <workspace-url>
Para a CLI do Databricks, execute o comando databricks auth login
com as seguintes opções:
Para operações no nível da conta do Databricks,
--host <account-console-url> --account-id <account-id>
.Para operações no nível do espaço de trabalho do Databricks,
--host <workspace-url>
.
Depois de executar este comando, siga as instruções em seu navegador da Web para log in em sua account ou workspace do Databricks.
Para obter mais detalhes, consulte Autenticação OAuth U2M com a CLI da Databricks.
Observação
A autenticação OAuth U2M é compatível com as seguintes versões do Databricks Connect:
Para Python, Databricks Connect for Databricks Runtime 13.1 e acima.
Para Scala, Databricks Connect for Databricks Runtime 13.3 LTS e acima.
Para o Databricks Connect, você pode fazer o seguinte:
Defina os valores em seu arquivo
.databrickscfg
para Databricks workspace -level operações conforme especificado na seção "Profile" deste artigo. Defina também a variável de ambientecluster_id
em seu perfil como o URL da instância do espaço de trabalho, por exemplo,https://dbc-a1b2345c-d6e7.cloud.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 a variável de ambiente
DATABRICKS_CLUSTER_ID
como o URL da instância do workspace, por exemplo,https://dbc-a1b2345c-d6e7.cloud.databricks.com
.
Os valores no seu arquivo .databrickscfg
sempre têm precedência sobre a variável de ambiente.
Para inicializar o cliente Databricks Connect com essas variáveis de ambiente ou valores em seu arquivo .databrickscfg
, consulte um dos seguintes:
Para Python, consulte Configurar propriedades de conexão para Python.
Para Scala, consulte Configurar propriedades de conexão para Scala.
Para a extensão Databricks para Visual Studio Code, faça o seguinte:
No painel Configuração , clique em Configurar Databricks.
No comando Palette, para Databricks Host, insira a URL do seu espaço de trabalho, por exemplo
https://dbc-a1b2345c-d6e7.cloud.databricks.com
e pressioneEnter
.Selecione OAuth (usuário para máquina).
Conclua as instruções na tela do seu navegador da Web para concluir a autenticação com sua account do Databricks e permitir o acesso a todas as APIs .
Para obter mais detalhes, consulte Autenticaçã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 operações em nível de 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.cloud.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 o ID de sua conta.
Observação
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ção default:
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 operações no nível do espaço de trabalho do Databricks
databricks auth login --host <workspace-url>
Substitua o espaço reservado <workspace-url>
pela URL do espaço de trabalho do Databricks de destino, por exemplo https://dbc-a1b2345c-d6e7.cloud.databricks.com
.
Observação
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ção default:
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 HashiCorp Vault. Consulte também Provedor do Vault). Nesse caso, o host é a URL do espaço de trabalho do Databricks, por exemplo https://dbc-a1b2345c-d6e7.cloud.databricks.com
:
provider "databricks" {
alias = "workspace"
host = <retrieve-workspace-url>
}
Para obter mais informações sobre a autenticação com o fornecedor 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 operações em nível de 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.cloud.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 o ID de sua conta.
Observação
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 autenticação default:
from databricks.sdk import AccountClient
a = AccountClient()
# ...
Para configuração direta (substitua os placeholders do retrieve
por sua própria implementação para recuperar os valores do console ou algum outro armazenamento de configuração, como AWS Systems Manager Parameter Store). Nesse caso, a URL do console da conta Databricks é https://accounts.cloud.databricks.com
:
from databricks.sdk import AccountClient
a = AccountClient(
host = retrieveAccountConsoleUrl(),
account_id = retrieveAccountId()
)
# ...
Configuração para operações no nível do espaço de trabalho do Databricks
databricks auth login --host <worskpace-url>
Substitua o espaço reservado <workspace-url>
pela URL do espaço de trabalho do Databricks de destino, por exemplo https://dbc-a1b2345c-d6e7.cloud.databricks.com
.
Observação
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 autenticação default:
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 AWS Systems Manager Parameter Store). Nesse caso, o host é a URL do espaço de trabalho do Databricks, por exemplo https://dbc-a1b2345c-d6e7.cloud.databricks.com
:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient(host = retrieveWorkspaceUrl())
# ...
Para obter mais informações sobre autenticação com ferramentas e SDKs do Databricks que usam Python e que implementam autenticação unificada do cliente Databricks, 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 operações em nível de 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.cloud.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 o ID de sua conta.
Observação
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 autenticação default:
import com.databricks.sdk.AccountClient;
// ...
AccountClient a = new AccountClient();
// ...
Para configuração direta (substitua os placeholders do retrieve
por sua própria implementação para recuperar os valores do console ou algum outro armazenamento de configuração, como AWS Systems Manager Parameter Store). Nesse caso, a URL do console da conta Databricks é https://accounts.cloud.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 operações no nível do espaço de trabalho do Databricks
Para operações de nívelworkspace, o senhor deve primeiro 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
dentro da pasta home do usuário em seu computador:
databricks auth login --host <worskpace-url>
Substitua o espaço reservado <workspace-url>
pela URL do espaço de trabalho do Databricks de destino, por exemplo https://dbc-a1b2345c-d6e7.cloud.databricks.com
.
Observação
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 autenticação default:
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 AWS Systems Manager Parameter Store). Nesse caso, o host é a URL do espaço de trabalho do Databricks, por exemplo https://dbc-a1b2345c-d6e7.cloud.databricks.com
:
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 autenticação com ferramentas e SDKs do Databricks que usam Java e que implementam autenticação unificada do cliente Databricks, consulte:
Configurar o cliente Databricks Connect para Scala (o cliente Databricks Connect para Scala usa o SDK do Databricks para Java incluído para autenticação)
Autentique o SDK do Databricks para Java com sua account ou workspacedo 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 operações em nível de 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.cloud.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 o ID de sua conta.
Observação
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 autenticação default:
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient())
// ...
Para configuração direta (substitua os placeholders do retrieve
por sua própria implementação para recuperar os valores do console ou algum outro armazenamento de configuração, como AWS Systems Manager Parameter Store). Nesse caso, a URL do console da conta Databricks é https://accounts.cloud.databricks.com
:
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 espaço de trabalho do Databricks
Para operações de nívelworkspace, 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 espaço reservado <workspace-url>
pela URL do espaço de trabalho do Databricks de destino, por exemplo https://dbc-a1b2345c-d6e7.cloud.databricks.com
.
Observação
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ção default:
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 AWS Systems Manager Parameter Store). Nesse caso, o host é a URL do espaço de trabalho do Databricks, por exemplo https://dbc-a1b2345c-d6e7.cloud.databricks.com
:
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
Host: retrieveWorkspaceUrl(),
}))
// ...
Para mais informações sobre autenticação com ferramentas e SDKs do Databricks que usam Go e implementam autenticação unificada do cliente Databricks, veja Autentique o SDK do Databricks para Go com sua account ou workspace do Databricks.
Gerar e usar manualmente o token de acesso para autenticação OAuth de usuário para máquina (U2M)
Databricks As ferramentas e os SDKs que implementam o padrão de autenticação unificada do clienteDatabricks gerarão, refresh e usarão automaticamente Databricks OAuth access tokens em seu nome, conforme necessário, para a autenticação U2M OAuth.
Se, por algum motivo, for necessário gerar manualmente, refresh, ou usar o token de acesso OAuth da Databricks para autenticação OAuth U2M, siga as instruções desta seção.
o passo 1: gerar um verificador de código OAuth e um par de desafio de código
Para gerar e usar manualmente access tokens para OAuth autenticação U2M, o senhor deve primeiro ter um OAuth verificador de código e um OAuth desafio de código derivado do verificador de código. O senhor usa o desafio de código no passo 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 no passo 3 para gerar o OAuth access token.
Observação
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), com comprimento 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 desafio 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 o token de acesso para a 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}")
o passo 2: Gerar um código de autorização
O senhor usa um código de autorização OAuth para gerar um Databricks OAuth access token. O código de autorização expira imediatamente após o senhor usá-lo para gerar um Databricks OAuth access token. O escopo do código de autorização depende do nível a partir do qual o senhor o gera. O senhor pode gerar um código de autorização no nível do Databricks account ou no nível do 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 APIs REST 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 em nível de conta
Como administrador da conta, faça login no console da conta.
Clique na seta para baixo ao lado do seu nome de usuário no canto superior direito.
Copie sua IDaccount .
Na barra de endereços do navegador da Web, navegue até o seguinte URL. Foram adicionadas quebras de linha 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 IDaccount que o senhor copiou.Substitua
<redirect-url>
por um URL de redirecionamento para sua máquina local, por exemplo,http://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 o senhor gerou no passo 1.
https://accounts.cloud.databricks.com/oidc/accounts/<account-id>/v1/authorize ?client_id=databricks-cli &redirect_url=<redirect-url> &response_type=code &state=<state> &code_challenge=<code-challenge> &code_challenge_method=S256 &scope=all-apis+offline_access
Quando solicitado, siga as instruções na tela para log in para o seu Databricks account.
Na barra de endereços do navegador da Web, 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>
O senhor deve verificar a integridade desse código de autorização confirmando visualmente que o valor
<state>
nesse URL de resposta corresponde ao valorstate
que o senhor forneceu no URL de solicitação. Se os valores forem diferentes, o senhor não deve usar esse código de autorização, pois ele pode estar comprometido.Avance para Gerar um nível de conta access token.
Gerar um código de autorização em nível de espaço de trabalho
Na barra de endereços do navegador da Web, navegue até o seguinte URL. Foram adicionadas quebras de linha 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 nome da instância do espaço de trabalho do Databricks, por exemplo,dbc-a1b2345c-d6e7.cloud.databricks.com
.Substitua
<redirect-url>
por um URL de redirecionamento para sua máquina local, por exemplo,http://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 o senhor gerou no passo 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
Quando solicitado, siga as instruções na tela para log in para o seu Databricks workspace.
Na barra de endereços do navegador da Web, 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>
O senhor deve verificar a integridade desse código de autorização confirmando visualmente que o valor
<state>
nesse URL de resposta corresponde ao valorstate
que o senhor forneceu no URL de solicitação. Se os valores forem diferentes, o senhor não deve usar esse código de autorização, pois ele pode estar comprometido.
o passo 3: Use o código de autorização para gerar um OAuth access token
O senhor usa o código de autorização OAuth do passo anterior para gerar um Databricks OAuth access token, da seguinte forma:
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 um access token no nível account .
Para chamar APIs REST em apenas um workspace ao qual seu usuário account tem acesso, o senhor pode usar o código de autorização de nível workspacepara gerar um access token no nível workspace apenas para esse workspace.
Gerar um nível de conta access token
Use um cliente como
curl
junto com o código de autorização de nível accountpara gerar o OAuth de nível account access token. Na chamadacurl
a seguir, substitua os seguintes espaços reservados:Substitua
<account-id>
pela IDaccount do passo 2.Substitua
<redirect-url>
pelo URL de redirecionamento do passo 2.Substitua
<code-verifier>
pelo verificador de código que o senhor gerou no passo 1.Substitua
<authorization-code>
pelo código de autorização de nível accountque o senhor gerou no passo 2.
curl --request POST \ https://accounts.cloud.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>"
Na resposta, copie o account-level OAuth access token. O endereço access token é a sequência completa de caracteres no objeto
access_token
. Por exemplo, o endereço access token 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 access token expira em uma hora. Para gerar um novo access token, repita o procedimento a partir do passo 1.
Avance para o passo 4: Chamar uma API REST da Databricks.
Gerar um nível de espaço de trabalho access token
Use um cliente como
curl
junto com o código de autorização de nível workspacepara gerar o OAuth de nível workspace access token. Na chamadacurl
a seguir, substitua os seguintes espaços reservados:Substitua
<databricks-instance>
pelo nome da instância do espaço de trabalho do Databricks, por exemplo,dbc-a1b2345c-d6e7.cloud.databricks.com
.Substitua
<redirect-url>
pelo URL de redirecionamento do passo 2.Substitua
<code-verifier>
pelo verificador de código que o senhor gerou no passo 1.Substitua
<authorization-code>
pelo código de autorização de nível workspaceque o senhor gerou no passo 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>"
Na resposta, copie o workspace-level OAuth access token. O endereço access token é a sequência completa de caracteres no objeto
access_token
. Por exemplo, o endereço access token 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 access token expira em uma hora. Para gerar um novo access token, repita o procedimento a partir do passo 1.
o passo 4: Chamar uma API REST da Databricks
O senhor usa o account-level ou workspace-level OAuth access token para se autenticar nas APIs REST da Databricks account-level e workspace-level REST APIs, dependendo do escopo do access token. O usuário do Databricks account deve ser um administrador account para chamar APIs REST de nível account.
Exemplo de solicitação de API REST no nível da conta
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>
pelo account-level OAuth access token.Substitua
<account-id>
por sua ID account.
export OAUTH_TOKEN=<oauth-access-token>
curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
"https://accounts.cloud.databricks.com/api/2.0/accounts/<account-id>/workspaces"
Exemplo de solicitação de API REST no nível do espaço de trabalho
Este exemplo usa curl
junto com a autenticação Bearer
para listar todos os clusters disponíveis no site workspace.
Substitua
<oauth-access-token>
pelo account-level ou workspace-level OAuth access token.Substitua
<databricks-instance>
pelo nome da instância do espaço de trabalho do Databricks, por exemplo,dbc-a1b2345c-d6e7.cloud.databricks.com
.
export OAUTH_TOKEN=<oauth-access-token>
curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
"https://<databricks-instance>/api/2.0/clusters/list"