Compartilhar via


Autenticar com entidades de serviço do MS Entra

A autenticação da entidade de serviço do MS Entra usa as credenciais de uma entidade de serviço do MS Entra para autenticar. 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 MS Entra quando precisar 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 da entidade de serviço do MS Entra com o Azure Databricks, você deve definir as seguintes variáveis de ambiente associadas, campos .databrickscfg, campos do Terraform ou campos Config:

  • O host do Azure Databricks.

    • Para operações de conta, especifique https://accounts.azuredatabricks.net.

    • Para operações de workspace, especifique a URL por workspace, por exemplo https://adb-1234567890123456.7.azuredatabricks.net.

      Se a entidade de serviço do MS Entra ainda não tiver sido adicionada ao workspace, especifique a ID do recurso do Azure. Nesse caso, a entidade de serviço do MS Entra deve ter pelo menos permissões de Colaborador ou Proprietário no recurso do Azure.

  • Para operações de conta, a ID da conta do Azure Databricks.

  • A ID do recurso do Azure.

  • A ID do locatário da entidade de serviço do MS Entra.

  • A ID do cliente da entidade de serviço do MS Entra.

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

Para executar a autenticação da entidade de serviço do MS Entra com o Azure Databricks, integre o seguinte em seu código, com base na ferramenta participante ou no SDK:

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

    Para operações no nível do workspace, se a entidade de serviço do MS Entra ainda não tiver sido adicionada ao workspace, especifique DATABRICKS_AZURE_RESOURCE_ID junto com a ID do recurso do Azure para o workspace do Azure Databricks, em vez de HOST com a URL do workspace. Nesse caso, a entidade de serviço do MS Entra deve ter pelo menos permissões de Colaborador ou Proprietário no recurso do Azure para o workspace do Azure Databricks.

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>

Para operações no nível do workspace, se a entidade de serviço do MS Entra ainda não tiver sido adicionada ao workspace, especifique azure_workspace_resource_id junto com a ID do recurso do Azure para o workspace do Azure Databricks, em vez de host com a URL do workspace. Nesse caso, a entidade de serviço do MS Entra deve ter pelo menos permissões de Colaborador ou Proprietário no recurso do Azure para o workspace do Azure 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.

Observação

A autenticação da entidade de serviço do MS Entra tem suporte 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.

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.

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

provider "databricks" {
  alias = "accounts"
}

Para a configuração direta (substitua os espaços reservados retrieve por sua própria implantação para recuperar os valores do console ou de algum outro repositório de configurações, como o HashiCorp Vault. Confira também Provedor de Cofre). 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>
  azure_tenant_id     = <retrieve-azure-tenant-id>
  azure_client_id     = <retrieve-azure-client-id>
  azure_client_secret = <retrieve-azure-client-secret>
}

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

provider "databricks" {
  alias = "workspace"
}

Para a configuração direta (substitua os espaços reservados retrieve por sua própria implantação para recuperar os valores do console ou de algum outro repositório de configurações, como o HashiCorp Vault. Confira também Provedor de 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                = <retrieve-workspace-url>
  azure_tenant_id     = <retrieve-azure-tenant-id>
  azure_client_id     = <retrieve-azure-client-id>
  azure_client_secret = <retrieve-azure-client-secret>
}

Para operações no nível do workspace, se a entidade de serviço do MS Entra ainda não tiver sido adicionada ao workspace, especifique azure_workspace_resource_id junto com a ID do recurso do Azure para o workspace do Azure Databricks, em vez de host com a URL do workspace. Nesse caso, a entidade de serviço do MS Entra deve ter pelo menos permissões de Colaborador ou Proprietário no recurso do Azure para o workspace do Azure Databricks.

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

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

from databricks.sdk import AccountClient

a = AccountClient()
# ...

Para a configuração direta (substitua os espaços reservados retrieve por sua própria implantação para recuperar os valores do console ou de algum outro repositório de configurações, 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(),
  azure_tenant_id     = retrieve_azure_tenant_id(),
  azure_client_id     = retrieve_azure_client_id(),
  azure_client_secret = retrieve_azure_client_secret()
)
# ...

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

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

Para a configuração direta (substitua os espaços reservados retrieve por sua própria implantação para recuperar os valores do console ou de algum outro repositório de configurações, 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                = retrieve_workspace_url(),
  azure_tenant_id     = retrieve_azure_tenant_id(),
  azure_client_id     = retrieve_azure_client_id(),
  azure_client_secret = retrieve_azure_client_secret()
)
# ...

Para operações no nível do workspace, se a entidade de serviço do MS Entra ainda não tiver sido adicionada ao workspace, especifique azure_workspace_resource_id junto com a ID do recurso do Azure para o workspace do Azure Databricks, em vez de host com a URL do workspace. Nesse caso, a entidade de serviço do MS Entra deve ter pelo menos permissões de Colaborador ou Proprietário no recurso do Azure para o workspace 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:

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

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

Para a configuração direta (substitua os espaços reservados retrieve por sua própria implantação para recuperar os valores do console ou de algum outro repositório de configurações, 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(retrieveAccountConsoleUrl())
  .setAccountId(retrieveAccountId())
  .setAzureTenantId(retrieveAzureTenantId())
  .setAzureClientId(retrieveAzureClientId())
  .setAzureClientSecret(retrieveAzureClientSecret())
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 a configuração direta (substitua os espaços reservados retrieve por sua própria implantação para recuperar os valores do console ou de algum outro repositório de configurações, 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(retrieveWorkspaceUrl())
  .setAzureTenantId(retrieveAzureTenantId())
  .setAzureClientId(retrieveAzureClientId())
  .setAzureClientSecret(retrieveAzureClientSecret())
WorkspaceClient w = new WorkspaceClient(cfg);
// ...

Para operações no nível do workspace, se a entidade de serviço do MS Entra ainda não tiver sido adicionada ao workspace, especifique setAzureWorkspaceResourceId junto com a ID do recurso do Azure para o workspace do Azure Databricks, em vez de setHost com a URL do workspace. Nesse caso, a entidade de serviço do MS Entra deve ter pelo menos permissões de Colaborador ou Proprietário no recurso do Azure para o workspace 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:

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 a configuração direta (substitua os espaços reservados retrieve por sua própria implantação para recuperar os valores do console ou de algum outro repositório de configurações, 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:              retrieveAccountConsoleUrl(),
  AccountId:         retrieveAccountId(),
  AzureTenantId:     retrieveAzureTenantId(),
  AzureClientId:     retrieveAzureClientId(),
  AzureClientSecret: retrieveAzureClientSecret(),
}))
// ...

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 a configuração direta (substitua os espaços reservados retrieve por sua própria implantação para recuperar os valores do console ou de algum outro repositório de configurações, 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:              retrieveWorkspaceUrl(),
  AzureTenantId:     retrieveAzureTenantId(),
  AzureClientId:     retrieveAzureClientId(),
  AzureClientSecret: retrieveAzureClientSecret(),
}))
// ...

Para operações no nível do workspace, se a entidade de serviço do MS Entra ainda não tiver sido adicionada ao workspace, especifique AzureWorkspaceResourceId junto com a ID do recurso do Azure para o workspace do Azure Databricks, em vez de Host com a URL do workspace. Nesse caso, a entidade de serviço do MS Entra deve ter pelo menos permissões de Colaborador ou Proprietário no recurso do Azure para o workspace 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.