Partilhar via


Autenticação do principal 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, consulte:

Nota

A Databricks recomenda que deve usar a autenticação OAuth máquina-a-máquina (M2M) na maioria dos cenários, em vez da autenticação principal de serviço do Entra da Microsoft. Isto acontece porque a autenticação M2M OAuth utiliza os tokens de acesso OAuth do Azure Databricks, que são mais robustos quando autenticam exclusivamente com o Azure Databricks.

Você deve usar a autenticação do principal de serviço MS Entra apenas nos casos em que precisa autenticar simultaneamente com o Azure Databricks e outros recursos do Azure.

Para usar a autenticação OAuth M2M em vez da autenticação de entidade de serviço do MS Entra, ignore este artigo e consulte Autorizar acesso não assistido aos recursos do Azure Databricks com um principal de serviço usando OAuth.

As entidades de serviço do MS Entra são diferentes das identidades geridas para recursos do Azure, que o Azure Databricks também suporta para autenticação. Para saber como usar identidades geridas para os recursos do Azure em vez de entidades de serviço do MS Entra para a autenticação do Azure Databricks, consulte Configurar e usar a autenticação de identidades geridas do Azure para automatização do Azure Databricks.

Para obter detalhes sobre a autenticação do Microsoft Entra no Databricks com o Azure DevOps especificamente, consulte Autenticar com o Azure DevOps no Azure Databricks.

Para configurar a autenticação do principal de serviço do MS 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, especifique a URL por espaço de trabalho, por exemplo https://adb-1234567890123456.7.azuredatabricks.net.

      Se o principal de serviço do MS Entra ainda não tiver sido adicionado ao espaço de trabalho, então especifique a identificação do recurso do Azure. Nesse caso, o principal de serviço do MS Entra deve ter pelo menos permissões de Colaborador ou de Proprietário no recurso do Azure.

  • Para operações na conta, o ID da conta do Azure Databricks.

  • A ID de recurso do Azure.

  • O ID do inquilino do principal de serviço do MS Entra.

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

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

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

Para usar variáveis de ambiente para um tipo de autenticação específico do Azure Databricks com uma ferramenta ou SDK, consulte Autorizando 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 de cliente unificada e os métodos padrão para autenticação unificada de cliente.

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

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

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 Autorizando 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 de cliente unificada e os métodos padrão para autenticação unificada de cliente.

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>

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

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 arquivo .databrickscfg.

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

Nota

A autenticação da entidade de serviço do MS Entra é suportada nas versões seguintes 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 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 variável de ambiente cluster_id 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 variável de ambiente DATABRICKS_CLUSTER_ID para o URL para cada espaço de trabalho, por exemplo, https://adb-1234567890123456.7.azuredatabricks.net.

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

Para inicializar o cliente Databricks Connect com essas variáveis ou valores de ambiente em seu arquivo .databrickscfg, consulte Configuração de computação para Databricks Connect.

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

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

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

provider "databricks" {
  alias = "accounts"
}

Para configuração direta (substitua os espaços reservados retrieve pela sua própria implementação para recuperar os valores do console ou de outro armazenamento de configuração, como 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                = <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 ao nível do espaço de trabalho, para autenticação predefinida:

provider "databricks" {
  alias = "workspace"
}

Para configuração direta (substitua os espaços reservados retrieve pela sua própria implementação para recuperar os valores do console ou de outro armazenamento de configuração, como 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                = <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 ao nível do espaço de trabalho, se a entidade de serviço do MS Entra ainda não tiver sido adicionada ao espaço de trabalho, especifique juntamente com o ID do recurso da Azure para o espaço de trabalho do Azure Databricks, em vez de juntamente com a URL do espaço de trabalho. Nesse caso, o principal de serviço do MS Entra deve ter pelo menos permissões de Colaborador ou Proprietário no recurso do Azure para o espaço de trabalho do Azure Databricks.

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

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

from databricks.sdk import AccountClient

a = AccountClient()
# ...

Para configuração direta (substitua os marcadores de posição retrieve 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(),
  azure_tenant_id     = retrieve_azure_tenant_id(),
  azure_client_id     = retrieve_azure_client_id(),
  azure_client_secret = retrieve_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 configuração direta (substitua os marcadores de posição retrieve 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 por espaço de trabalho do Azure Databricks, por exemplohttps://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 ao nível do espaço de trabalho, se a entidade de serviço do MS Entra ainda não tiver sido adicionada ao espaço de trabalho, especifique juntamente com o ID do recurso da Azure para o espaço de trabalho do Azure Databricks, em vez de juntamente com a URL do espaço de trabalho. Nesse caso, o principal de serviço do MS Entra deve ter pelo menos permissões de Colaborador ou Proprietário no recurso do Azure para o espaço de trabalho do Azure Databricks.

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

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

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

Para configuração direta (substitua os marcadores de posição retrieve 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 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 ao nível do espaço de trabalho, para autenticação predefinida:

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

Para configuração direta (substitua os marcadores de posição retrieve 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 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(retrieveWorkspaceUrl())
  .setAzureTenantId(retrieveAzureTenantId())
  .setAzureClientId(retrieveAzureClientId())
  .setAzureClientSecret(retrieveAzureClientSecret())
WorkspaceClient w = new WorkspaceClient(cfg);
// ...

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

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

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 configuração direta (substitua os marcadores de posição retrieve 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"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
  Host:              retrieveAccountConsoleUrl(),
  AccountId:         retrieveAccountId(),
  AzureTenantId:     retrieveAzureTenantId(),
  AzureClientId:     retrieveAzureClientId(),
  AzureClientSecret: retrieveAzureClientSecret(),
}))
// ...

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 configuração direta (substitua os marcadores de posição retrieve 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 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:              retrieveWorkspaceUrl(),
  AzureTenantId:     retrieveAzureTenantId(),
  AzureClientId:     retrieveAzureClientId(),
  AzureClientSecret: retrieveAzureClientSecret(),
}))
// ...

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