Compartilhar via


Autenticação da entidade de serviço do MS Entra

A autenticação de entidades 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 que você use a Autenticação máquina a máquina (M2M) do OAuth na maioria dos cenários em vez da autenticação da entidade de serviço do MS Entra. Isso ocorre porque a autenticação OAuth M2M usa tokens de acesso OAuth do Azure Databricks que são mais robustos ao autenticar somente com o Azure Databricks.

Você só deve usar a autenticação da entidade de serviço do MS Entra nos casos em que deve se autenticar com o Azure Databricks e outros recursos do Azure ao mesmo tempo.

Para usar a autenticação OAuth M2M em vez da autenticação da entidade de serviço do MS Entra, ignore este artigo e consulte Autenticar o acesso ao Azure Databricks com uma entidade de serviço usando OAuth (OAuth M2M).

As entidades de serviço do MS Entra são diferentes das identidades gerenciadas para recursos do Azure, às quais o Azure Databricks também dá suporte para autenticação. Para saber como usar as identidades gerenciadas para recursos do Azure em vez das entidades de serviço do MS Entra para autenticação do Azure Databricks, confira Configurar e usar a autenticação de identidades gerenciadas do Azure para automação do Azure Databricks.

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

Para configurar a autenticação de entidade de serviço do MS Entra com o Azure Databricks, você deve definir as seguintes variáveis de ambiente, campos de .databrickscfg, campos do Terraform ou campos de Config associados:

  • 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 MS Entra ainda não tiver sido adicionada ao espaço de trabalho, especifique a ID de 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 de entidade de serviço do MS Entra com o Azure Databricks, integre o seguinte em seu código, com base na ferramenta ou no SDK participante:

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

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 junto 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 no espaço de trabalho 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 Autenticar o acesso a recursos do Azure Databricks ou a documentação da ferramenta ou SDK. Consulte também Variáveis de ambiente e campos para autenticação unificada do cliente e Métodos padrão para autenticação unificada do cliente.

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 workspace, defina os seguintes valores em 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 junto 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 no espaço de trabalho do Azure Databricks.

Na CLI do Databricks, siga um destes procedimentos:

  • Defina as variáveis de ambiente, conforme especificado na seção “Ambiente” deste artigo.
  • Defina os valores no arquivo .databrickscfg, conforme especificado na seção “Perfil” deste artigo.

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

O suporte à autenticação da entidade de serviço do MS Entra é oferecido 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.

No Databricks Connect, siga um destes procedimentos:

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

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

Para inicializar o cliente do Databricks Connect com essas variáveis de ambiente ou esses valores no arquivo .databrickscfg, confira um dos seguintes artigos:

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

  1. Defina os valores em seu arquivo .databrickscfg para operações no nível do workspace do Azure Databricks, conforme especificado na seção "Perfil" deste artigo.
  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 perfil de destino na lista da URL.

Para obter mais detalhes, confira Configuração de autenticação da extensão do Databricks para Visual Studio Code.

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 retrieve por sua própria implantação para recuperar os valores do console ou de algum outro repositório de configurações, como HashiCorp Vault. Confira também Provedor de Cofres). 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 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 HashiCorp Vault. Confira também Provedor de Cofres). 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 junto 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 no espaço de trabalho 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 junto 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 no espaço de trabalho do Azure Databricks.

Para obter mais informações sobre como autenticar com as ferramentas e SDKs do Databricks que usam o Python e que implementam a autenticação unificada do cliente 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 junto 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 no espaço de trabalho do Azure Databricks.

Para obter mais informações sobre como autenticar com as ferramentas e SDKs do Databricks que usam Java e que implementam a autenticação unificada do cliente 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 junto 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 no espaço de trabalho 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.