Compartilhar via


Autenticar com entidades de serviço do Microsoft Entra

A autenticação da entidade de serviço do Microsoft Entra usa as credenciais de uma entidade de serviço do Microsoft Entra para realizar a autenticação. Para criar e gerenciar entidades de serviço para o Azure Databricks, confira:

Observação

O Databricks recomenda usar a autenticação M2M (máquina a máquina) OAuth na maioria dos cenários. O OAuth M2M usa tokens de acesso OAuth mais robustos ao autenticar somente com o Azure Databricks. Use apenas a autenticação do principal de serviço do Microsoft Entra quando necessitar autenticar-se com o Azure Databricks e 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 principal de serviço do Microsoft Entra com o Azure Databricks, você deve configurar as seguintes variáveis de ambiente, .databrickscfg campos associados, campos do Terraform, ou Config campos associados:

  • O host do Azure Databricks.

    • Para operações de conta, especifique https://accounts.azuredatabricks.net.
    • Para operações de workspace, o Databricks recomenda especificar a URL por workspace, por exemplo https://adb-1234567890123456.7.azuredatabricks.net, e atribuir explicitamente o principal de serviço do Microsoft Entra ao workspace. Como alternativa, especifique a ID do recurso do Azure. Essa abordagem requer permissões de Colaborador ou Proprietário no recurso do Azure ou uma função personalizada com permissões específicas do Azure Databricks.
  • Para operações de conta, a ID da conta do Azure Databricks.

  • A ID do recurso do Azure.

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

  • O ID do cliente da entidade de serviço do Microsoft Entra.

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

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

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 à documentação da ferramenta ou do SDK. Consulte também variáveis de ambiente e campos para autenticação unificada e a prioridade do método de autenticação.

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

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

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

  • DATABRICKS_HOST, defina o valor da sua URL por workspace do Azure Databricks, por exemplo, https://adb-1234567890123456.7.azuredatabricks.net.
  • ARM_TENANT_ID
  • ARM_CLIENT_ID
  • ARM_CLIENT_SECRET

O Databricks recomenda usar DATABRICKS_HOST e atribuir explicitamente a entidade de serviço do Microsoft Entra ao workspace. Como alternativa, use DATABRICKS_AZURE_RESOURCE_ID com a ID do recurso do Azure. Essa abordagem requer permissões de Colaborador ou Proprietário no recurso do Azure ou uma função personalizada 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 arquivo do .databrickscfg. Se você criar o perfil, substitua os espaços reservados pelos valores apropriados. Para usar o perfil com uma ferramenta ou SDK, consulte Autorizar o acesso aos recursos do Azure Databricks ou à documentação da ferramenta ou do SDK. Consulte também variáveis de ambiente e campos para autenticação unificada e a prioridade do método de autenticação.

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

[<some-unique-configuration-profile-name>]
host                = <account-console-url>
account_id          = <account-id>
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 no nível do espaço de trabalho, defina os seguintes valores no seu arquivo .databrickscfg. Nesse caso, o host é a URL por workspace do Azure Databricks, por exemplo https://adb-1234567890123456.7.azuredatabricks.net:

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

O Databricks recomenda usar host e atribuir explicitamente a entidade de serviço do Microsoft Entra ao workspace. Como alternativa, use azure_workspace_resource_id com a ID do recurso do Azure. Essa abordagem requer permissões de Colaborador ou Proprietário no recurso do Azure ou uma função personalizada 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 do arquivo .databrickscfg.

Confira também Autenticação de entidades de serviço do Microsoft Entra ID.

Conexão de Databricks

Observação

O suporte para autenticação da entidade de serviço do Microsoft Entra está disponível nas seguintes versões do Databricks Connect:

  • Para Python, Databricks Connect para o Databricks Runtime 13.1 e superior.
  • No caso do Scala, o Databricks Connect para Databricks Runtime 13.3 LTS e superior.

Você pode fazer o seguinte para o Databricks Connect:

  • Use um perfil de configuração: Defina valores no nível do workspace no arquivo .databrickscfg, conforme descrito na guia Perfil. Defina também a URL da instância do workspace cluster_id.
  • Use variáveis de ambiente: Defina os mesmos valores mostrados na guia Ambiente. Também defina a URL da instância do workspace DATABRICKS_CLUSTER_ID.

Valores em .databrickscfg têm precedência sobre variáveis de ambiente.

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

Extensão do Visual Studio Code

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

  1. Defina os valores em seu .databrickscfg arquivo para operações no nível do workspace do Azure Databricks, conforme especificado na guia Perfil .
  2. No painel Configuração da extensão do Databricks para Visual Studio Code, clique em Configurar o Databricks.
  3. Na Paleta de Comandos, em Host do Databricks, insira a URL por workspace, 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 para seu URL.

Para obter mais detalhes, consulte Configurar a autorização para a extensão do Databricks para o Visual Studio 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 espaços reservados por valores do console ou de algum outro repositório de configuração, como o HashiCorp Vault. Consulte também o Provedor do Cofre. 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 no nível do workspace, para autenticação padrão:

provider "databricks" {
  alias = "workspace"
}

Para configuração direta, substitua os espaços reservados por valores do console ou de algum outro repositório de configuração, como o HashiCorp Vault. Consulte também o Provedor do Cofre. Nesse caso, o host é a URL por workspace do Azure Databricks, por exemplo https://adb-1234567890123456.7.azuredatabricks.net:

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

O Databricks recomenda usar host e atribuir explicitamente a entidade de serviço do Microsoft Entra ao workspace. Como alternativa, use azure_workspace_resource_id com a ID do recurso do Azure. Essa abordagem requer permissões de Colaborador ou Proprietário no recurso do Azure ou uma função personalizada com permissões específicas do Azure Databricks.

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

SDK do Databricks para Python

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

from databricks.sdk import AccountClient

a = AccountClient()
# ...

Para configuração direta, substitua as chamadas de função por código que obtém 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                = 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 no nível do workspace, para autenticação padrão:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

Para configuração direta, substitua as chamadas de função por código que obtém valores do console ou de algum outro repositório de configuração, como o Azure KeyVault. Nesse caso, o host é a URL por workspace do Azure Databricks, por exemplo https://adb-1234567890123456.7.azuredatabricks.net:

from databricks.sdk import WorkspaceClient

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

O Databricks recomenda usar host e atribuir explicitamente a entidade de serviço do Microsoft Entra ao workspace. Como alternativa, use azure_workspace_resource_id com a ID do recurso do Azure. Essa abordagem requer permissões de Colaborador ou Proprietário no recurso do Azure ou uma função personalizada com permissões específicas do Azure Databricks.

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

SDK do Databricks para Java

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

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

Para configuração direta, substitua as chamadas de função por código que obtém 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 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 no nível do workspace, para autenticação padrão:

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

Para configuração direta, substitua as chamadas de função por código que obtém valores do console ou de algum outro repositório de configuração, como o Azure KeyVault. Nesse caso, o host é a URL por workspace do Azure Databricks, por exemplo https://adb-1234567890123456.7.azuredatabricks.net:

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

O Databricks recomenda usar setHost e atribuir explicitamente a entidade de serviço do Microsoft Entra ao workspace. Como alternativa, use setAzureWorkspaceResourceId com a ID do recurso do Azure. Essa abordagem requer permissões de Colaborador ou Proprietário no recurso do Azure ou uma função personalizada com permissões específicas do Azure Databricks.

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

SDK do Databricks para Go

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

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

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

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

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

Para configuração direta, substitua as chamadas de função por código que obtém valores do console ou de algum outro repositório de configuração, como o Azure KeyVault. Nesse caso, o host é a URL por workspace do Azure Databricks, por exemplo https://adb-1234567890123456.7.azuredatabricks.net:

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

O Databricks recomenda usar Host e atribuir explicitamente a entidade de serviço do Microsoft Entra ao workspace. Como alternativa, use AzureWorkspaceResourceId com a ID do recurso do Azure. Essa abordagem requer permissões de Colaborador ou Proprietário no recurso do Azure ou uma função personalizada com permissões específicas do Azure Databricks.

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

Recursos adicionais