Поделиться через


Аутентификация доверенного лица службы MS Entra

MS Entra service principal authentication uses the credentials of a MS Entra service principal to authenticate. Чтобы создать и управлять учетными записями службы для Azure Databricks, см.

Примечание

Databricks рекомендует использовать аутентификацию OAuth machine-to-machine (M2M) в большинстве случаев вместо аутентификации с помощью MS Entra service principal. Это связано с тем, что аутентификация OAuth M2M использует токены доступа OAuth от Azure Databricks, которые являются более надежными при аутентификации только с помощью Azure Databricks.

Вам следует использовать аутентификацию с использованием MS Entra service principal только в тех случаях, когда необходимо одновременно аутентифицироваться с Azure Databricks и другими ресурсами Azure.

To use OAuth M2M authentication instead of MS Entra service principal authentication, skip this article and see Authorize unattended access to Azure Databricks resources with a service principal using OAuth.

Главные записи службы MS Entra отличаются от управляемых удостоверений для ресурсов Azure, которые Azure Databricks также поддерживает для аутентификации. To learn how to use managed identities for Azure resources instead of MS Entra service principals for Azure Databricks authentication, see Set up and use Azure managed identities authentication for Azure Databricks automation.

Для получения подробной информации об аутентификации Microsoft Entra в Databricks, в частности для Azure DevOps, см. статью Аутентификация с помощью Azure DevOps на Azure Databricks.

Чтобы настроить аутентификацию основного элемента службы MS Entra с Azure Databricks, необходимо установить следующие связанные переменные окружения, поля .databrickscfg, поля Terraform, или поля Config.

  • Узел Azure Databricks.

    • Для операций с учетной записью укажите https://accounts.azuredatabricks.net.

    • Для операций рабочего пространства укажите URL рабочего пространства, например https://adb-1234567890123456.7.azuredatabricks.net.

      Если основной объект службы MS Entra ещё не был добавлен в рабочую область, укажите вместо этого идентификатор ресурса Azure. In this case, the MS Entra service principal must have at least Contributor or Owner permissions on the Azure resource.

  • Для операций с учетной записью идентификатор учетной записи Azure Databricks account ID.

  • The Azure resource ID.

  • Идентификатор арендатора принципала службы MS Entra.

  • The client ID of the MS Entra service principal.

  • The client secret of the MS Entra service principal.

To perform MS Entra service principal authentication with Azure Databricks, integrate the following within your code, based on the participating tool or SDK:

Сведения об использовании переменных среды для определенного типа проверки подлинности Azure Databricks с помощью средства или пакета SDK см. в статье авторизация доступа к ресурсам Azure Databricks или документации по средству или пакету SDK. См. также Переменные окружения и поля для унифицированной аутентификации клиентов и Стандартные методы унифицированной аутентификации клиентов.

For account-level operations, set the following environment variables:

  • DATABRICKS_HOST, set to the value of your Azure Databricks account console URL, https://accounts.azuredatabricks.net.

    • DATABRICKS_ACCOUNT_ID
    • ARM_TENANT_ID
    • ARM_CLIENT_ID
    • ARM_CLIENT_SECRET

    Для операций на уровне рабочей областизадайте следующие переменные среды:

    • DATABRICKS_HOST, set to the value of your Azure Databricks per-workspace URL, for example https://adb-1234567890123456.7.azuredatabricks.net.
    • ARM_TENANT_ID
    • ARM_CLIENT_ID
    • ARM_CLIENT_SECRET

    Для операций на уровне рабочей области, если главный компонент службы MS Entra ещё не добавлен в рабочую область, укажите DATABRICKS_AZURE_RESOURCE_ID вместе с ID ресурса Azure для рабочей области Azure Databricks, вместо HOST вместе с URL рабочей области. В данном случае основной объект службы MS Entra должен иметь как минимум разрешения Участника или Владельца на ресурсе Azure для рабочей области Azure Databricks.

Create or identify an Azure Databricks configuration profile with the following fields in your .databrickscfg file. Если вы создаёте профиль, замените заполнители соответствующими значениями. Сведения об использовании профиля с инструментом или пакетом SDK см. в статье Авторизация доступа к ресурсам Azure Databricks или документации по средству или пакету SDK. See also Environment variables and fields for unified client authentication and the Default methods for client unified authentication.

Для операций уровня учетной записи задайте следующие значения в файле .databrickscfg. In this case, the Azure Databricks account console URL is 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>

Для операций уровня рабочего пространства установите следующие значения в вашем файле .databrickscfg. В данном случае, хостом является URL-адрес рабочей области Azure Databricks, например 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>

For workspace-level operations, if the MS Entra service principal has not already been added to the workspace, then specify azure_workspace_resource_id along with the Azure resource ID for the Azure Databricks workspace, instead of host along with the workspace URL. В данном случае главный объект-служба MS Entra должен иметь хотя бы разрешения Contributor или Owner на ресурс Azure для рабочей области Azure Databricks.

Для интерфейса командной строки Databricks выполните одно из следующих действий:

  • Задайте переменные среды, указанные в разделе "Среда".
  • Задайте значения в файле .databrickscfg, как указано в разделе "Профиль" этой статьи.

Environment variables always take precedence over values in your .databrickscfg file.

См. также Microsoft Entra ID service principal authentication.

Примечание

Поддержка аутентификации учетной записи службы MS Entra реализована в следующих версиях Databricks Connect:

  • Для Python — Databricks Connect для Databricks Runtime версии 13.1 и выше.
  • Для Scala, Databricks Connect для Databricks Runtime 13.3 LTS и выше.

For Databricks Connect, you can do one of the following:

  • Установите значения в вашем файле .databrickscfg для операций уровня рабочей области Azure Databricks, как указано в разделе «Профиль» этой статьи. Also set the cluster_id environment variable in your profile to your per-workspace URL, for example https://adb-1234567890123456.7.azuredatabricks.net.
  • Задайте переменные среды для операций уровня рабочей области Azure Databricks , как указано в разделе "Среда". Also set the DATABRICKS_CLUSTER_ID environment variable to your per-workspace URL, for example https://adb-1234567890123456.7.azuredatabricks.net.

Значения в файле .databrickscfg всегда имеют приоритет над переменными среды.

Чтобы инициализировать клиент Databricks Connect с этими переменными среды или значениями в файле .databrickscfg, см. раздел "Конфигурация вычислений для Databricks Connect".

For the Databricks extension for Visual Studio Code, do the following:

  1. Установите значения в вашем файле .databrickscfg для Azure Databricks операций на уровне рабочей области, как указано в разделе «Профиль» этой статьи.
  2. In the Configuration pane of the Databricks extension for Visual Studio Code, click Configure Databricks.
  3. В Палитре команд для Databricks Host введите ваш URL-адрес рабочего пространства, например https://adb-1234567890123456.7.azuredatabricks.net, а затем нажмите Enter.
  4. В Панели команд выберите имя целевого профиля в списке для вашего URL.

Дополнительные сведения см. в разделе Настройка авторизации для расширения Databricks для Visual Studio Code.

Для операций на уровне аккаунта, для аутентификации по умолчанию:

provider "databricks" {
  alias = "accounts"
}

Для прямой конфигурации (замените заполнители retrieve своими реализациями для получения значений из консоли или другого хранилища конфигураций, такого как HashiCorp Vault. Также смотрите Vault Provider). В этом случае URL консоли учетной записи 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>
}

Для операций на уровне рабочей области, для аутентификации по умолчанию:

provider "databricks" {
  alias = "workspace"
}

Для прямой настройки (замените заполнители retrieve своей реализацией, чтобы получить значения из консоли или какого-либо другого хранилища настроек, например HashiCorp Vault. См. также Vault Provider). В этом случае хост - это URL-адрес рабочего пространства Azure Databricks, например:

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>
}

Для операций на уровне рабочей области, если основной сервис MS Entra еще не был добавлен в рабочую область, укажите azure_workspace_resource_id вместе с идентификатором ресурса Azure для рабочей области Azure Databricks вместо host вместе с URL рабочей области. В данном случае у служебного принципала MS Entra должны быть по крайней мере разрешения уровня "Читатель" или "Владелец" на ресурсе Azure для рабочей области Azure Databricks.

Для получения дополнительной информации об аутентификации с провайдером Databricks Terraform, смотрите Аутентификация.

Для операций на уровне учетной записи, для аутентификации по умолчанию:

from databricks.sdk import AccountClient

a = AccountClient()
# ...

Для прямой конфигурации замените заполнители retrieve собственной реализацией, чтобы получить значения из консоли или другого хранилища конфигурации, например Azure KeyVault. В данном случае URL консоли учетной записи 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()
)
# ...

Для операций на уровне рабочего пространства для аутентификации по умолчанию:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

Для прямой конфигурации замените плейсхолдеры retrieve своей собственной реализацией, чтобы получить значения из консоли или другого хранилища конфигурации, например, Azure KeyVault. В этом случае хостом является URL для каждого рабочего пространства Azure Databricks, например 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()
)
# ...

Для операций на уровне рабочего пространства, если основной объект службы MS Entra еще не был добавлен в рабочее пространство, укажите azure_workspace_resource_id вместе с идентификатором ресурса Azure для рабочего пространства Azure Databricks, вместо host вместе с URL-адресом рабочего пространства. В этом случае для основной сущности сервиса MS Entra необходимо иметь как минимум разрешения Участника (Contributor) или Владельца (Owner) на ресурсе Azure для рабочей области Azure Databricks.

Для получения дополнительной информации об аутентификации с использованием инструментов и SDK для Databricks, которые работают с Python и реализуют единое клиентское аутентифицирование Databricks, см.:

Для операций на уровне аккаунта, для аутентификации по умолчанию:

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

Для прямой настройки замените заполнители retrieve своей собственной реализацией, чтобы получить значения из консоли или другого хранилища конфигурации, например Azure KeyVault. В этом случае URL консоли учетной записи 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);
// ...

Для операций на уровне рабочего пространства, для аутентификации по умолчанию:

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

Для прямой настройки (замените заполнители retrieve своим собственным вариантом реализации для извлечения значений из консоли или какого-либо другого хранилища конфигурации, например, Azure KeyVault). In this case, the host is the Azure Databricks per-workspace URL, for example 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);
// ...

Для операций на уровне рабочего пространства, если основной сервис MS Entra еще не был добавлен в рабочее пространство, укажите setAzureWorkspaceResourceId вместе с идентификатором ресурса Azure для рабочего пространства Azure Databricks, вместо setHost вместе с URL рабочего пространства. В данном случае учетная запись службы MS Entra должна иметь как минимум разрешения Участника или Владельца на ресурсе Azure для рабочего пространства Azure Databricks.

Для получения дополнительной информации об аутентификации с использованием инструментов и SDK Databricks, которые применяют Java и реализуют унифицированную аутентификацию клиента Databricks, см. следующую информацию:

For account-level operations, for default authentication:

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

Для прямой настройки (замените заполнители retrieve на собственную реализацию, чтобы получить значения из консоли или другого хранилища конфигурации, такого как Azure KeyVault). In this case, the Azure Databricks account console URL is 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(),
}))
// ...

For workspace-level operations, for default authentication:

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

Для прямой конфигурации замените заполнители retrieve собственной реализацией, чтобы извлечь значения из консоли или другого хранилища конфигураций, например, Azure KeyVault. In this case, the host is the Azure Databricks per-workspace URL, for example 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(),
}))
// ...

Для операций на уровне рабочего пространства, если основной объект службы MS Entra еще не был добавлен в рабочее пространство, укажите AzureWorkspaceResourceId вместе с идентификатором ресурса Azure для рабочей области Azure Databricks, вместо Host вместе с URL рабочего пространства. В данном случае основному объекту службы MS Entra необходимо иметь по крайней мере права Участника или Владельца на ресурсе Azure для рабочей области Azure Databricks.

For more information about authenticating with Databricks tools and SDKs that use Go and that implement Databricks client unified authentication, see Authenticate the Databricks SDK for Go with your Azure Databricks account or workspace.