Partilhar via


Autenticar com os princípios do serviço Microsoft Entra

A autenticação do principal de serviço Microsoft Entra utiliza as credenciais de um principal de serviço Microsoft Entra para autenticar. Para criar e gerenciar entidades de serviço para o Azure Databricks, consulte:

Nota

O Databricks recomenda o uso da autenticação OAuth máquina-a-máquina (M2M) na maioria dos cenários. O OAuth M2M usa tokens de acesso OAuth que são mais robustos ao autenticar apenas com o Azure Databricks. Use a autenticação de principal de serviço Microsoft Entra apenas quando tiver de autenticar no Azure Databricks e em outros recursos do Azure ao mesmo tempo.

Para obter mais informações, consulte Usar identidades gerenciadas do Azure com o Azure Databricks e Autenticar com o Azure DevOps no Azure Databricks.

Para configurar a autenticação do serviço principal do Microsoft Entra com o Azure Databricks, deve definir as seguintes variáveis de ambiente associadas, campos .databrickscfg, campos Terraform ou campos Config:

  • O host do Azure Databricks.

    • Para operações de conta, especifique https://accounts.azuredatabricks.net.
    • Para operações de espaço de trabalho, o Databricks recomenda especificar a URL por cada espaço de trabalho, por exemplo https://adb-1234567890123456.7.azuredatabricks.net , e atribuir explicitamente o principal de serviço Microsoft Entra ao espaço de trabalho. Em alternativa, especifique o ID de recurso Azure. Esta abordagem requer permissões de Contribuidor ou Proprietário sobre o recurso Azure, ou um papel personalizado com permissões específicas do Azure Databricks.
  • Para operações na conta, o ID da conta do Azure Databricks.

  • A ID de recurso do Azure.

  • O ID do tenant do principal de serviço do Microsoft Entra.

  • ID de cliente do principal de serviço do Microsoft Entra.

  • O segredo do cliente do principal de serviço Microsoft Entra.

Para realizar a autenticação do principal de serviço Microsoft Entra com Azure Databricks, integre o seguinte no seu código, com base na ferramenta ou SDK participante:

Variáveis de ambiente

Para usar variáveis de ambiente para um tipo de autenticação específico do Azure Databricks com uma ferramenta ou SDK, consulte Autorizar o acesso aos recursos do Azure Databricks ou a documentação da ferramenta ou do SDK. Consulte também Variáveis e campos de ambiente para autenticação unificada e a prioridade do método de autenticação.

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

  • DATABRICKS_HOST, defina o valor da URL do console da conta do Azure Databricks, https://accounts.azuredatabricks.net.
  • DATABRICKS_ACCOUNT_ID
  • ARM_TENANT_ID
  • ARM_CLIENT_ID
  • ARM_CLIENT_SECRET

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

  • DATABRICKS_HOST, defina o valor do seu Azure Databricks URL por espaço de trabalho, por exemplo, https://adb-1234567890123456.7.azuredatabricks.net.
  • ARM_TENANT_ID
  • ARM_CLIENT_ID
  • ARM_CLIENT_SECRET

A Databricks recomenda usar DATABRICKS_HOST e atribuir explicitamente o principal de serviço Microsoft Entra ao espaço de trabalho. Em alternativa, use DATABRICKS_AZURE_RESOURCE_ID com o ID de recurso Azure. Esta abordagem requer permissões de Contribuidor ou Proprietário sobre o recurso Azure, ou um papel personalizado com permissões específicas do Azure Databricks.

Perfis de configuração

Crie ou identifique um perfil de configuração do Azure Databricks com os seguintes campos em seu .databrickscfg arquivo. Se criar o perfil, substitua os espaços reservados pelos valores apropriados. Para usar o perfil com uma ferramenta ou SDK, consulte Autorizar o acesso aos recursos do Azure Databricks ou a documentação da ferramenta ou do SDK. Consulte também Variáveis e campos de ambiente para autenticação unificada e a prioridade do método de autenticação.

Para as operações de nível de conta , defina os seguintes valores no seu arquivo .databrickscfg. Nesse caso, a URL do console da conta do Azure Databricks é https://accounts.azuredatabricks.net:

[<some-unique-configuration-profile-name>]
host                = <account-console-url>
account_id          = <account-id>
azure_tenant_id     = <azure-service-principal-tenant-id>
azure_client_id     = <azure-service-principal-application-id>
azure_client_secret = <azure-service-principal-client-secret>

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

[<some-unique-configuration-profile-name>]
host                = <workspace-url>
azure_tenant_id     = <azure-service-principal-tenant-id>
azure_client_id     = <azure-service-principal-application-id>
azure_client_secret = <azure-service-principal-client-secret>

A Databricks recomenda usar host e atribuir explicitamente o principal de serviço Microsoft Entra ao espaço de trabalho. Em alternativa, use azure_workspace_resource_id com o ID de recurso Azure. Esta abordagem requer permissões de Contribuidor ou Proprietário sobre o recurso Azure, ou um papel personalizado com permissões específicas do Azure Databricks.

CLI do Databricks

Para a CLI do Databricks, siga um destes procedimentos:

  • Defina as variáveis de ambiente conforme especificado na guia Ambiente .
  • Defina os valores em seu .databrickscfg arquivo conforme especificado na guia Perfil .

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

Consulte também autenticação do principal de serviço do Microsoft Entra ID.

Databricks Connect

Nota

A autenticação do service principal do Microsoft Entra é suportada nas seguintes versões do Databricks Connect:

  • Para Python, Databricks Connect for Databricks Runtime 13.1 e superior.
  • Para Scala, utilize o Databricks Connect para o Databricks Runtime 13.3 LTS e versões superiores.

Para o Databricks Connect, você pode:

  • Use um perfil de configuração: No seu arquivo .databrickscfg, defina valores ao nível do espaço de trabalho conforme descrito na guia Perfil. Também deve definir o URL da instância do seu cluster_id espaço de trabalho.
  • Use variáveis de ambiente: Estabeleça os mesmos valores mostrados na guia Ambiente. Defina também a URL da instância do para o seu espaço de trabalho.

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

Para inicializar o Databricks Connect com essas configurações, consulte Configuração de computação para o Databricks Connect.

Extensão Visual Studio Code

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 guia Perfil .
  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 associada ao seu URL.

Para obter mais detalhes, consulte Configurar autorização para a extensão Databricks para o Visual Studio Code.

Terraform

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

provider "databricks" {
  alias = "accounts"
}

Para configuração direta, substitua os marcadores de posição por valores da consola ou de outro repositório de configuração, como o HashiCorp Vault. Consulte também Provedor do Vault. Nesse caso, a URL do console da conta do Azure Databricks é https://accounts.azuredatabricks.net:

provider "databricks" {
  alias               = "accounts"
  host                = <your-account-console-url>
  account_id          = <your-account-id>
  azure_tenant_id     = <your-azure-tenant-id>
  azure_client_id     = <your-azure-client-id>
  azure_client_secret = <your-azure-client-secret>
}

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

provider "databricks" {
  alias = "workspace"
}

Para configuração direta, substitua os marcadores de posição por valores da consola ou de outro repositório de configuração, como o HashiCorp Vault. Consulte também Provedor do Vault. Nesse caso, o host é a URL por espaço de trabalho do Azure Databricks, por exemplohttps://adb-1234567890123456.7.azuredatabricks.net:

provider "databricks" {
  alias               = "workspace"
  host                = <your-workspace-url>
  azure_tenant_id     = <your-azure-tenant-id>
  azure_client_id     = <your-azure-client-id>
  azure_client_secret = <your-azure-client-secret>
}

A Databricks recomenda usar host e atribuir explicitamente o principal de serviço Microsoft Entra ao espaço de trabalho. Em alternativa, use azure_workspace_resource_id com o ID de recurso Azure. Esta abordagem requer permissões de Contribuidor ou Proprietário sobre o recurso Azure, ou um papel personalizado com permissões específicas do Azure Databricks.

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

Databricks SDK para Python

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

from databricks.sdk import AccountClient

a = AccountClient()
# ...

Para uma configuração direta, substitua as chamadas de função por código que obtenha valores da consola ou de outro armazenamento 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                = get_account_console_url(),
  account_id          = get_account_id(),
  azure_tenant_id     = get_azure_tenant_id(),
  azure_client_id     = get_azure_client_id(),
  azure_client_secret = get_azure_client_secret()
)
# ...

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

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

Para uma configuração direta, substitua as chamadas de função por código que obtenha valores da consola ou de outro armazenamento de configuração, como o Azure KeyVault. Nesse caso, o host é a URL por espaço de trabalho do Azure Databricks, por exemplohttps://adb-1234567890123456.7.azuredatabricks.net:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient(
  host                = get_workspace_url(),
  azure_tenant_id     = get_azure_tenant_id(),
  azure_client_id     = get_azure_client_id(),
  azure_client_secret = get_azure_client_secret()
)
# ...

A Databricks recomenda usar host e atribuir explicitamente o principal de serviço Microsoft Entra ao espaço de trabalho. Em alternativa, use azure_workspace_resource_id com o ID de recurso Azure. Esta abordagem requer permissões de Contribuidor ou Proprietário sobre o recurso Azure, ou um papel personalizado com permissões específicas do Azure Databricks.

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

Databricks SDK para Java

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

import com.databricks.sdk.AccountClient;
// ...
AccountClient a = new AccountClient();
// ...

Para uma configuração direta, substitua as chamadas de função por código que obtenha valores da consola ou de outro armazenamento de configuração, como o Azure KeyVault. Nesse caso, a URL do console da conta do Azure Databricks é https://accounts.azuredatabricks.net:

import com.databricks.sdk.AccountClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
  .setHost(getAccountConsoleUrl())
  .setAccountId(getAccountId())
  .setAzureTenantId(getAzureTenantId())
  .setAzureClientId(getAzureClientId())
  .setAzureClientSecret(getAzureClientSecret())
AccountClient a = new AccountClient(cfg);
// ...

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

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

Para uma configuração direta, substitua as chamadas de função por código que obtenha valores da consola ou de outro armazenamento de configuração, como o Azure KeyVault. Nesse caso, o host é a URL por espaço de trabalho do Azure Databricks, por exemplohttps://adb-1234567890123456.7.azuredatabricks.net:

import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
  .setHost(getWorkspaceUrl())
  .setAzureTenantId(getAzureTenantId())
  .setAzureClientId(getAzureClientId())
  .setAzureClientSecret(getAzureClientSecret())
WorkspaceClient w = new WorkspaceClient(cfg);
// ...

A Databricks recomenda usar setHost e atribuir explicitamente o principal de serviço Microsoft Entra ao espaço de trabalho. Em alternativa, use setAzureWorkspaceResourceId com o ID de recurso Azure. Esta abordagem requer permissões de Contribuidor ou Proprietário sobre o recurso Azure, ou um papel personalizado com permissões específicas do Azure Databricks.

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

Databricks SDK para Go

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

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

Para uma configuração direta, substitua as chamadas de função por código que obtenha valores da consola ou de outro armazenamento 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"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
  Host:              getAccountConsoleUrl(),
  AccountId:         getAccountId(),
  AzureTenantId:     getAzureTenantId(),
  AzureClientId:     getAzureClientId(),
  AzureClientSecret: getAzureClientSecret(),
}))
// ...

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

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

Para uma configuração direta, substitua as chamadas de função por código que obtenha valores da consola ou de outro armazenamento de configuração, como o Azure KeyVault. Nesse caso, o host é a URL por espaço de trabalho do Azure Databricks, por exemplohttps://adb-1234567890123456.7.azuredatabricks.net:

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
  Host:              getWorkspaceUrl(),
  AzureTenantId:     getAzureTenantId(),
  AzureClientId:     getAzureClientId(),
  AzureClientSecret: getAzureClientSecret(),
}))
// ...

A Databricks recomenda usar Host e atribuir explicitamente o principal de serviço Microsoft Entra ao espaço de trabalho. Em alternativa, use AzureWorkspaceResourceId com o ID de recurso Azure. Esta abordagem requer permissões de Contribuidor ou Proprietário sobre o recurso Azure, ou um papel personalizado com permissões específicas do Azure Databricks.

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.

Recursos adicionais