Share via


Autenticação máquina a máquina (M2M) OAuth

A autenticação OAuth máquina-a-máquina (M2M) usa as credenciais de uma entidade automatizada (neste caso, uma entidade de serviço gerenciado do Azure Databricks ou uma entidade de serviço gerenciado do Microsoft Entra ID (anteriormente Azure Ative Directory)) para autenticar a entidade de destino.

Depois que o Azure Databricks autentica com êxito a entidade de serviço de destino por meio da solicitação de autenticação OAuth M2M, um token OAuth do Azure Databricks é fornecido à ferramenta participante ou SDK para executar a autenticação baseada em token a partir desse momento em nome da entidade de serviço. O token OAuth do Azure Databricks tem uma vida útil de uma hora, após a qual a ferramenta ou SDK envolvido fará uma tentativa automática em segundo plano para obter um novo token que também é válido por uma hora.

Para começar a configurar a autenticação OAuth M2M, faça o seguinte:

Nota

Você deve ser um administrador de conta do Azure Databricks para gerenciar credenciais OAuth do Azure Databricks para entidades de serviço.

Etapa 1: Criar uma entidade de serviço do Microsoft Entra ID em sua conta do Azure

Conclua esta etapa se quiser vincular uma entidade de serviço do Microsoft Entra ID à sua conta do Azure Databricks, espaço de trabalho ou ambos. Caso contrário, avance para o Passo 2.

  1. Inicie sessão no portal do Azure.

    Nota

    O portal a ser usado é diferente dependendo se seu aplicativo Microsoft Entra ID (anteriormente Azure Ative Directory) é executado na nuvem pública do Azure ou em uma nuvem nacional ou soberana. Para obter mais informações, consulte Nuvens nacionais.

  2. Se você tiver acesso a vários locatários, assinaturas ou diretórios, clique no ícone Diretórios + assinaturas (diretório com filtro) no menu superior para alternar para o diretório no qual deseja provisionar a entidade de serviço.

  3. Em Pesquisar recursos, serviços e documentos, procure e selecione Microsoft Entra ID.

  4. Clique em + Adicionar e selecione Registro do aplicativo.

  5. Em Nome, insira um nome para o aplicativo.

  6. Na seção Tipos de conta suportados, selecione Contas somente neste diretório organizacional (Locatário único).

  7. Clique em Registar.

  8. Na página Visão geral da página do aplicativo, na seção Essenciais, copie os seguintes valores:

    • ID do aplicativo (cliente)
    • ID do diretório (locatário)

    Visão geral do aplicativo registrado do Azure

  9. Para gerar um segredo do cliente, em Gerenciar, clique em Certificados & segredos.

    Nota

    Você usa esse segredo de cliente para gerar tokens de ID do Microsoft Entra para autenticar entidades de serviço do Microsoft Entra ID com o Azure Databricks. Para determinar se uma ferramenta ou SDK do Azure Databricks pode usar tokens de ID do Microsoft Entra, consulte a documentação da ferramenta ou do SDK.

  10. Na guia Segredos do cliente, clique em Novo segredo do cliente.

    Novo segredo do cliente

  11. No painel Adicionar um segredo do cliente, para Descrição, insira uma descrição para o segredo do cliente.

  12. Em Expira, selecione um período de expiração para o segredo do cliente e clique em Adicionar.

  13. Copie e armazene o valor do segredo do cliente em um local seguro, pois esse segredo do cliente é a senha do seu aplicativo.

Etapa 2: Adicionar uma entidade de serviço à sua conta do Azure Databricks

Esta etapa só funciona se o espaço de trabalho do Azure Databricks de destino estiver habilitado para federação de identidades. Se o espaço de trabalho não estiver habilitado para federação de identidades, pule para a Etapa 3.

  1. No seu espaço de trabalho do Azure Databricks, clique no seu nome de utilizador na barra superior e clique em Gerir conta.

    Como alternativa, vá diretamente para o console da conta do Azure Databricks, em https://accounts.azuredatabricks.net.

  2. Entre na sua conta do Azure Databricks, se solicitado.

  3. Na barra lateral, clique em Gerenciamento de usuários.

  4. Clique na guia Entidades de serviço.

  5. Clique em Adicionar entidade de serviço.

  6. Em Gerenciamento, escolha Databricks gerenciado ou Microsoft Entra ID gerenciado.

  7. Se você escolheu Microsoft Entra ID gerenciado, em Microsoft Entra application ID, cole o valor do ID do aplicativo (cliente) da Etapa 1.

  8. Insira um Nome para a entidade de serviço.

  9. Clique em Adicionar.

  10. (Opcional) Atribua permissões no nível da conta à entidade de serviço:

    1. Na guia Entidades de serviço, clique no nome da entidade de serviço.
    2. Na guia Funções, alterne para habilitar ou desabilitar cada função de destino que você deseja que essa entidade de serviço tenha.
    3. Na guia Permissões, conceda acesso a qualquer usuário do Azure Databricks, entidades de serviço e funções de grupo de contas que você deseja gerenciar e usar essa entidade de serviço. Consulte Gerenciar funções em uma entidade de serviço.

Etapa 3: Adicionar a entidade de serviço ao seu espaço de trabalho do Azure Databricks

Se o espaço de trabalho estiver habilitado para federação de identidades:

  1. No seu espaço de trabalho do Azure Databricks, clique no seu nome de utilizador na barra superior e clique em Definições.
  2. Clique na guia Identidade e acesso .
  3. Ao lado de Entidades de serviço, clique em Gerenciar.
  4. Clique em Adicionar entidade de serviço.
  5. Selecione a entidade de serviço na Etapa 2 e clique em Adicionar.

Pule para a Etapa 4.

Se o espaço de trabalho não estiver habilitado para federação de identidades:

  1. No seu espaço de trabalho do Azure Databricks, clique no seu nome de utilizador na barra superior e clique em Definições.
  2. Clique na guia Identidade e acesso .
  3. Ao lado de Entidades de serviço, clique em Gerenciar.
  4. Clique em Adicionar entidade de serviço.
  5. Clique em Adicionar novo.
  6. Em Gerenciamento, escolha Databricks gerenciado ou Microsoft Entra ID gerenciado.
  7. Se você escolheu Microsoft Entra ID gerenciado, em Microsoft Entra application ID, cole o valor do ID do aplicativo (cliente) da Etapa 1.
  8. Insira algum Nome para Exibição para a nova entidade de serviço e clique em Adicionar.

Etapa 4: Atribuir permissões no nível do espaço de trabalho à entidade de serviço

  1. Se a consola de administração da sua área de trabalho ainda não estiver aberta, clique no seu nome de utilizador na barra superior e clique em Definições.
  2. Clique na guia Identidade e acesso .
  3. Ao lado de Entidades de serviço, clique em Gerenciar.
  4. Clique no nome da entidade de serviço para abrir a página de configurações.
  5. Na guia Configurações, marque a caixa ao lado de cada direito que você deseja que sua entidade de serviço tenha para esse espaço de trabalho e clique em Atualizar.
  6. Na guia Permissões, conceda acesso a todos os usuários, entidades de serviço e grupos do Azure Databricks que você deseja gerenciar e usar essa entidade de serviço. Consulte Gerenciar funções em uma entidade de serviço.

Etapa 5: Criar um segredo OAuth do Azure Databricks para a entidade de serviço

Antes de poder usar o OAuth para autenticar no Azure Databricks, você deve primeiro criar um segredo OAuth, que pode ser usado para gerar tokens de acesso OAuth. Uma entidade de serviço pode ter até cinco segredos OAuth. Para criar um segredo OAuth para uma entidade de serviço usando o console da conta:

  1. Entre no console de conta do Azure Databricks, em https://accounts.azuredatabricks.net.
  2. Entre na sua conta do Azure Databricks, se solicitado.
  3. Na barra lateral, clique em Gerenciamento de usuários.
  4. Clique na guia Entidades de serviço.
  5. Clique no nome da entidade de serviço.
  6. Na seção Segredos OAuth da guia Informações principais, clique em Gerar segredo.
  7. Na caixa de diálogo Gerar segredo, copie e armazene o valor Segredo em um local seguro, pois esse segredo OAuth é a senha da entidade de serviço.
  8. Clique em Concluído.

Nota

Para permitir que a entidade de serviço use clusters ou SQL warehouses, você deve conceder à entidade de serviço acesso a eles. Consulte Permissões de computação ou Gerenciar um armazém SQL.

Concluir a configuração da autenticação OAuth M2M

Para concluir a configuração da autenticação OAuth M2M, você deve definir as seguintes variáveis de ambiente associadas, .databrickscfg campos, campos Terraform ou Config campos:

  • O host do Azure Databricks, especificado como https://accounts.azuredatabricks.net para operações de conta ou a URL de destino por espaço de trabalho, por exemplohttps://adb-1234567890123456.7.azuredatabricks.net, para operações de espaço de trabalho.
  • A ID da conta do Azure Databricks, para operações de conta do Azure Databricks.
  • O ID do cliente da entidade de serviço.
  • O segredo principal do serviço.

Para executar a autenticação OAuth M2M, integre o seguinte em seu código, com base na ferramenta participante ou SDK:

Environment

Para usar variáveis de ambiente para um tipo de autenticação específico do Azure Databricks com uma ferramenta ou SDK, consulte Tipos de autenticação suportados pela ferramenta ou SDK do Azure Databricks ou a documentação da ferramenta ou SDK. Consulte também Variáveis e campos de ambiente para autenticação unificada do cliente e a ordem padrão de avaliação para métodos e credenciais de autenticação unificada do cliente.

Para operações no nível da conta, defina as seguintes variáveis de ambiente:

  • DATABRICKS_HOST, definido como a URL do console da conta do Azure Databricks, https://accounts.azuredatabricks.net.
  • DATABRICKS_ACCOUNT_ID
  • DATABRICKS_CLIENT_ID
  • DATABRICKS_CLIENT_SECRET

Para operações no nível do espaço de trabalho, defina as seguintes variáveis de ambiente:

  • DATABRICKS_HOST, definido como a URL do Azure Databricks por espaço de trabalho, por exemplohttps://adb-1234567890123456.7.azuredatabricks.net.
  • DATABRICKS_CLIENT_ID
  • DATABRICKS_CLIENT_SECRET

Perfil

Crie ou identifique um perfil de configuração do Azure Databricks com os seguintes campos em seu .databrickscfg arquivo. Se você criar o perfil, substitua os espaços reservados pelos valores apropriados. Para usar o perfil com uma ferramenta ou SDK, consulte Tipos de autenticação suportados pela ferramenta ou SDK do Azure Databricks ou a documentação da ferramenta ou SDK. Consulte também Variáveis e campos de ambiente para autenticação unificada do cliente e a ordem padrão de avaliação para métodos e credenciais de autenticação unificada do cliente.

Para operações no nível da conta, defina os seguintes valores em seu .databrickscfg arquivo. 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>
client_id     = <service-principal-client-id>
client_secret = <service-principal-secret>

Para operações no nível do espaço de trabalho, defina os seguintes valores no arquivo .databrickscfg . Nesse caso, o host é a URL do Azure Databricks por espaço de trabalho, por exemplohttps://adb-1234567890123456.7.azuredatabricks.net:

[<some-unique-configuration-profile-name>]
host          = <workspace-url>
client_id     = <service-principal-client-id>
client_secret = <service-principal-secret>

Cli

Para a CLI do Databricks, siga um destes procedimentos:

  • Defina as variáveis de ambiente conforme especificado na seção "Ambiente" deste artigo.
  • Defina os valores em seu .databrickscfg arquivo conforme especificado na seção "Perfil" deste artigo.

As variáveis de ambiente sempre têm precedência sobre os valores em seu .databrickscfg arquivo.

Consulte também a autenticação OAuth máquina-a-máquina (M2M).

Ligar

Nota

A autenticação OAuth M2M é suportada nas seguintes versões do Databricks Connect:

  • Para Python, Databricks Connect for Databricks Runtime 14.0 e superior.
  • Para Scala, Databricks Connect for Databricks Runtime 13.3 LTS e superior. O SDK do Databricks para Java incluído no Databricks Connect for Databricks Runtime 13.3 LTS e superior deve ser atualizado para o SDK do Databricks para Java 0.17.0 ou superior.

Para o Databricks Connect, você pode seguir um destes procedimentos:

  • Defina os valores em seu .databrickscfg arquivo para operações no nível do espaço de trabalho do Azure Databricks, conforme especificado na seção "Perfil" deste artigo. Defina também a cluster_id variável de ambiente no seu perfil para o URL por espaço de trabalho, por exemplo https://adb-1234567890123456.7.azuredatabricks.net.
  • Defina as variáveis de ambiente para operações no nível do espaço de trabalho do Azure Databricks, conforme especificado na seção "Ambiente" deste artigo. Defina também a DATABRICKS_CLUSTER_ID variável de ambiente como URL por espaço de trabalho, por exemplo https://adb-1234567890123456.7.azuredatabricks.net.

Os valores em seu arquivo sempre têm precedência sobre as .databrickscfg variáveis de ambiente.

Para inicializar o cliente Databricks Connect com essas variáveis ou valores de ambiente em seu .databrickscfg arquivo, consulte uma das seguintes opções:

Código Vs

Para a extensão Databricks para Visual Studio Code, faça o seguinte:

  1. Defina os valores em seu .databrickscfg arquivo para operações no nível do espaço de trabalho do Azure Databricks, conforme especificado na seção "Perfil" deste artigo.
  2. No painel Configuração da extensão Databricks para Visual Studio Code, clique em Configurar Databricks.
  3. Na Paleta de comandos, para Databricks Host, insira sua URL por espaço de trabalho, por exemplo https://adb-1234567890123456.7.azuredatabricks.net, e pressione Enter.
  4. Na Paleta de comandos, selecione o nome do seu perfil de destino na lista do seu URL.

Para obter mais detalhes, consulte Configuração de autenticação para a extensão Databricks para VS Code.

Terraform

Para operações no nível da conta, para autenticação padrão:

provider "databricks" {
  alias = "accounts"
}

Para configuração direta (substitua os retrieve espaços reservados por sua própria implementação para recuperar os valores do console ou de algum outro repositório de configuração, como o HashiCorp Vault. Consulte também Vault Provider). Nesse caso, a URL do console da conta do Azure Databricks é https://accounts.azuredatabricks.net:

provider "databricks" {
  alias         = "accounts"
  host          = <retrieve-account-console-url>
  account_id    = <retrieve-account-id>
  client_id     = <retrieve-client-id>
  client_secret = <retrieve-client-secret>
}

Para operações no nível do espaço de trabalho, para autenticação padrão:

provider "databricks" {
  alias = "workspace"
}

Para configuração direta (substitua os retrieve espaços reservados por sua própria implementação para recuperar os valores do console ou de algum outro repositório de configuração, como o HashiCorp Vault. Consulte também Vault Provider). Nesse caso, o host é a URL do Azure Databricks por espaço de trabalho, por exemplohttps://adb-1234567890123456.7.azuredatabricks.net:

provider "databricks" {
  alias         = "workspace"
  host          = <retrieve-workspace-url>
  client_id     = <retrieve-client-id>
  client_secret = <retrieve-client-secret>
}

Para obter mais informações sobre como autenticar com o provedor Databricks Terraform, consulte Autenticação.

Python

Para operações no nível da conta, use o seguinte para autenticação padrão:

from databricks.sdk import AccountClient

a = AccountClient()
# ...

Para configuração direta, use o seguinte, substituindo os retrieve espaços reservados por sua própria implementação para recuperar os valores do console ou de algum outro repositório de configuração, como o Azure KeyVault. Nesse caso, a URL do console da conta do Azure Databricks é https://accounts.azuredatabricks.net:

from databricks.sdk import AccountClient

a = AccountClient(
  host          = retrieve_account_console_url(),
  account_id    = retrieve_account_id(),
  client_id     = retrieve_client_id(),
  client_secret = retrieve_client_secret()
)
# ...

Para operações no nível do espaço de trabalho, especificamente a autenticação padrão:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

Para configuração direta, substitua os retrieve espaços reservados por sua própria implementação para recuperar os valores do console ou de algum outro repositório de configuração, como o Azure KeyVault. Nesse caso, o host é a URL do Azure Databricks por espaço de trabalho, por exemplohttps://adb-1234567890123456.7.azuredatabricks.net:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient(
  host          = retrieve_workspace_url(),
  client_id     = retrieve_client_id(),
  client_secret = retrieve_client_secret()
)
# ...

Para obter mais informações sobre como autenticar com ferramentas Databricks e SDKs que usam Python e implementam a autenticação unificada do cliente Databricks, consulte:

Nota

A extensão Databricks para Visual Studio Code usa Python, mas ainda não implementou a autenticação OAuth M2M.

Java

Para operações no nível do espaço de trabalho, para autenticação padrão:

import com.databricks.sdk.WorkspaceClient;
// ...
WorkspaceClient w = new WorkspaceClient();
// ...

Para configuração direta (substitua os retrieve espaços reservados por sua própria implementação para recuperar os valores do console ou de algum outro repositório de configuração, como o Azure KeyVault). Nesse caso, o host é a URL do Azure Databricks por espaço de trabalho, por exemplohttps://adb-1234567890123456.7.azuredatabricks.net:

import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
  .setHost(retrieveWorkspaceUrl())
  .setClientId(retrieveClientId())
  .setClientSecret(retrieveClientSecret());
WorkspaceClient w = new WorkspaceClient(cfg);
// ...

Para obter mais informações sobre a autenticação com ferramentas Databricks e SDKs que usam Java e implementam a autenticação unificada do cliente Databricks, consulte:

Go

Para operações no nível da conta, para autenticação padrão:

import (
"github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient())
// ...

Para configuração direta (substitua os retrieve espaços reservados por sua própria implementação para recuperar os valores do console ou de algum outro repositório de configuração, como o Azure KeyVault). Nesse caso, a URL do console da conta do Azure Databricks é https://accounts.azuredatabricks.net:

import (
"github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
  Host:         retrieveAccountConsoleUrl(),
  AccountId:    retrieveAccountId(),
  ClientId:     retrieveClientId(),
  ClientSecret: retrieveClientSecret(),
}))
// ...

Para operações no nível do espaço de trabalho, para autenticação padrão:

import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient())
// ...

Para configuração direta (substitua os retrieve espaços reservados por sua própria implementação para recuperar os valores do console ou de algum outro repositório de configuração, como o Azure KeyVault). Nesse caso, o host é a URL do Azure Databricks por espaço de trabalho, por exemplohttps://adb-1234567890123456.7.azuredatabricks.net:

import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
  Host:         retrieveWorkspaceUrl(),
  ClientId:     retrieveClientId(),
  ClientSecret: retrieveClientSecret(),
}))
// ...

Para obter mais informações sobre a autenticação com ferramentas e SDKs do Databricks que usam o Go e que implementam a autenticação unificada do cliente Databricks, consulte Autenticar o SDK do Databricks para Go com sua conta ou espaço de trabalho do Azure Databricks.

Gere e use manualmente tokens de acesso para autenticação OAuth máquina-a-máquina (M2M)

As ferramentas e SDKs do Azure Databricks que implementam o padrão de autenticação unificada do cliente Databricks gerarão, atualizarão e usarão automaticamente os tokens de acesso OAuth do Azure Databricks em seu nome, conforme necessário para a autenticação OAuth M2M.

Se, por algum motivo, você precisar gerar, atualizar ou usar manualmente tokens de acesso OAuth do Azure Databricks para autenticação OAuth M2M, siga as instruções nesta seção.

Etapa 1: Criar uma entidade de serviço e um segredo OAuth

Se você ainda não tiver uma entidade de serviço gerenciado do Azure Databricks ou uma entidade de serviço gerenciado do Microsoft Entra ID e seu segredo OAuth do Azure Databricks correspondente, crie-os concluindo as Etapas 1 a 5 no início deste artigo.

Etapa 2: gerar manualmente um token de acesso

Você pode usar a ID do cliente da entidade de serviço gerenciado do Azure Databricks ou da entidade de serviço gerenciado do Microsoft Entra ID e o segredo OAuth do Azure Databricks para solicitar um token de acesso OAuth do Azure Databricks para autenticar APIs REST no nível da conta e APIs REST no nível do espaço de trabalho. O token expirará em uma hora. Você deve solicitar um novo token de acesso OAuth do Azure Databricks após a expiração. O escopo do token de acesso OAuth depende do nível a partir do qual você cria o token. Você pode criar um token no nível da conta ou no nível do espaço de trabalho, da seguinte maneira:

  • Para chamar APIs REST no nível da conta e no nível do espaço de trabalho em contas e espaços de trabalho aos quais a entidade de serviço gerenciado do Azure Databricks ou a entidade de serviço gerenciado do Microsoft Entra ID tem acesso, gere manualmente um token de acesso no nível da conta.
    • Para chamar APIs REST em apenas um espaço de trabalho ao qual a entidade de serviço gerenciado do Azure Databricks ou a entidade de serviço gerenciado do Microsoft Entra ID tem acesso, você pode gerar manualmente um token de acesso no nível do espaço de trabalho somente para esse espaço de trabalho.

Gerar manualmente um token de acesso no nível da conta

Um token de acesso OAuth do Azure Databricks criado a partir do nível da conta pode ser usado em APIs REST do Databricks na conta e em qualquer espaço de trabalho ao qual a entidade de serviço gerenciado do Azure Databricks ou a entidade de serviço gerenciado do Microsoft Entra ID tenha sido atribuída.

  1. Como administrador da conta, inicie sessão na consola da conta.

  2. Clique na seta para baixo ao lado do seu nome de usuário no canto superior direito.

  3. Copie o ID da sua conta.

  4. Construa a URL do ponto de extremidade do token substituindo <my-account-id> a URL a seguir pela ID da conta que você copiou.

    https://accounts.azuredatabricks.net/oidc/accounts/<my-account-id>/v1/token
    
  5. Use um cliente como curl solicitar um token de acesso OAuth do Azure Databricks com a URL do ponto de extremidade do token, a ID do cliente (que também é conhecida como a ID do aplicativo) da entidade de serviço gerenciado do Azure Databricks ou da entidade de serviço gerenciado do Microsoft Entra ID e o segredo OAuth do Azure Databricks que você criou para a entidade de serviço gerenciado do Azure Databricks ou a entidade de serviço gerenciado do Microsoft Entra ID. O all-apis escopo solicita um token de acesso OAuth do Azure Databricks que pode ser usado para acessar todas as APIs REST do Databricks às quais a entidade de serviço gerenciado do Azure Databricks ou a entidade de serviço gerenciado Microsoft Entra ID recebeu acesso.

    • Substitua <token-endpoint-URL> pelo URL do ponto de extremidade do token acima.
    • Substitua <client-id> pela ID do cliente da entidade de serviço gerenciado do Azure Databricks ou da entidade de serviço gerenciado do Microsoft Entra ID, que também é conhecida como uma ID de aplicativo.
    • Substitua <client-secret> pelo segredo OAuth do Azure Databricks que você criou para a entidade de serviço gerenciado do Azure Databricks ou a entidade de serviço gerenciado do Microsoft Entra ID.
    export CLIENT_ID=<client-id>
    export CLIENT_SECRET=<client-secret>
    
    curl --request POST \
    --url <token-endpoint-URL> \
    --user "$CLIENT_ID:$CLIENT_SECRET" \
    --data 'grant_type=client_credentials&scope=all-apis'
    

    Isso gera uma resposta semelhante a:

    {
      "access_token": "eyJraWQiOiJkYTA4ZTVjZ…",
      "scope": "all-apis",
      "token_type": "Bearer",
      "expires_in": 3600
    }
    

    Copie o access_token da resposta.

    O token de acesso OAuth do Azure Databricks expirará em uma hora. Você deve gerar manualmente um novo token de acesso OAuth do Azure Databricks após a expiração.

  6. Vá para a Etapa 3: chamar uma API REST do Databricks.

Gerar manualmente um token de acesso no nível do espaço de trabalho

Um token de acesso OAuth do Azure Databricks criado a partir do nível do espaço de trabalho só pode acessar APIs REST nesse espaço de trabalho, mesmo que a entidade de serviço gerenciado do Azure Databricks ou a entidade de serviço gerenciado do Microsoft Entra ID seja um administrador de conta ou seja membro de outros espaços de trabalho.

  1. Construa a URL do ponto de extremidade do token substituindo https://<databricks-instance> pela URL do espaço de trabalho da sua implantação do Azure Databricks:

    https://<databricks-instance>/oidc/v1/token
    
  2. Use um cliente como curl solicitar um token de acesso OAuth do Azure Databricks com a URL do ponto de extremidade do token, a ID do cliente (que também é conhecida como a ID do aplicativo) da entidade de serviço gerenciado do Azure Databricks ou da entidade de serviço gerenciado do Microsoft Entra ID e o segredo OAuth do Azure Databricks que você criou para a entidade de serviço gerenciado do Azure Databricks ou a entidade de serviço gerenciado do Microsoft Entra ID. O all-apis escopo solicita um token de acesso OAuth do Azure Databricks que pode ser usado para acessar todas as APIs REST do Databricks às quais a entidade de serviço gerenciado do Azure Databricks ou a entidade de serviço gerenciado Microsoft Entra ID recebeu acesso dentro do espaço de trabalho do qual você está solicitando o token.

    • Substitua <token-endpoint-URL> pelo URL do ponto de extremidade do token acima.

    • Substitua <client-id> pela ID do cliente da entidade de serviço gerenciado do Azure Databricks ou da entidade de serviço gerenciado do Microsoft Entra ID, que também é conhecida como uma ID de aplicativo.

    • Substitua <client-secret> pelo segredo OAuth do Azure Databricks que você criou para a entidade de serviço gerenciado do Azure Databricks ou a entidade de serviço gerenciado do Microsoft Entra ID.

      export CLIENT_ID=<client-id>
      export CLIENT_SECRET=<client-secret>
      
      curl --request POST \
      --url <token-endpoint-URL> \
      --user "$CLIENT_ID:$CLIENT_SECRET" \
      --data 'grant_type=client_credentials&scope=all-apis'
      

      Isso gera uma resposta semelhante a:

      {
        "access_token": "eyJraWQiOiJkYTA4ZTVjZ…",
        "scope": "all-apis",
        "token_type": "Bearer",
        "expires_in": 3600
      }
      

      Copie o access_token da resposta.

      O token de acesso OAuth do Azure Databricks expirará em uma hora. Você deve gerar manualmente um novo token de acesso OAuth do Azure Databricks após a expiração.

Etapa 3: Chamar uma API REST do Databricks

Agora você pode usar um token de acesso OAuth do Azure Databricks para autenticar APIs REST no nível da conta do Azure Databricks e APIs REST no nível do espaço de trabalho. A entidade de serviço gerenciado do Azure Databricks ou a entidade de serviço gerenciado do Microsoft Entra ID deve ser um administrador de conta para chamar APIs REST no nível da conta.

Você pode incluir o token no cabeçalho usando Bearer autenticação. Você pode usar essa abordagem com curl ou qualquer cliente que você criar.

Exemplo de solicitação de API REST no nível da conta

Este exemplo usa Bearer a autenticação para obter uma lista de todos os espaços de trabalho associados a uma conta.

  • Substitua <oauth-access-token> pelo token de acesso OAuth do Azure Databricks para a entidade de serviço gerenciado do Azure Databricks ou a entidade de serviço gerenciado do Microsoft Entra ID.
  • Substitua <account-id> pelo 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 de API REST no nível do espaço de trabalho

Este exemplo usa Bearer a autenticação para listar todos os clusters disponíveis no espaço de trabalho especificado.

  • Substitua <oauth-access-token> pelo token de acesso OAuth do Azure Databricks para a entidade de serviço gerenciado do Azure Databricks ou a entidade de serviço gerenciado do Microsoft Entra ID.

  • Substitua <workspace-URL> pelo URL do espaço de trabalho base, que tem o formato semelhante ao adb-1111111111111111.1.azuredatabricks.net.

    export OAUTH_TOKEN=<oauth-access-token>
    
    curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
    'https://<workspace-URL>/api/2.0/clusters/list'