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


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

аутентификация через учетную запись службы MS Entra использует учетные данные учетной записи службы MS Entra. Чтобы создать и управлять учетными записями службы для 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.

Чтобы использовать аутентификацию OAuth M2M вместо аутентификации принципала службы MS Entra, пропустите эту статью и ознакомьтесь со статьей Авторизация автоматического доступа к ресурсам Azure Databricks с помощью принципала службы через OAuth.

Главные записи службы MS Entra отличаются от управляемых удостоверений для ресурсов Azure, которые Azure Databricks также поддерживает для аутентификации. Подробные сведения об использовании управляемых удостоверений для ресурсов Azure вместо служебных принципалов MS Entra для аутентификации в Azure Databricks см. в разделе Настройка и использование аутентификации с управляемыми удостоверениями Azure для автоматизации Azure Databricks.

Для получения подробной информации об аутентификации 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. В этом случае субъект-служба MS Entra должна иметь по крайней мере разрешения участника или владельца ресурса Azure.

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

  • ИД ресурса Azure.

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

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

  • Секрет клиента субъекта-службы MS Entra.

Чтобы выполнить проверку подлинности служебного принципала MS Entra с помощью Azure Databricks, интегрируйте в код следующие компоненты на основе используемого средства или пакета SDK:

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

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

  • DATABRICKS_HOST, укажите значение URL-адреса консоли вашей учетной записи Azure Databricks, https://accounts.azuredatabricks.net.

    • DATABRICKS_ACCOUNT_ID
    • ARM_TENANT_ID
    • ARM_CLIENT_ID
    • ARM_CLIENT_SECRET

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

    • DATABRICKS_HOST, задайте для URL-адреса вашей рабочей области в Azure Databricks значение, например, .
    • 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.

Создайте или определите профиль конфигурации Azure Databricks со следующими полями в вашем .databrickscfg файле. Если вы создаёте профиль, замените заполнители соответствующими значениями. Сведения об использовании профиля с инструментом или пакетом SDK см. в статье "Авторизация доступа к ресурсам Azure Databricks " или документации по средству или пакету SDK. См. также Переменные окружения и поля для унифицированной аутентификации клиентов и Стандартные методы унифицированной аутентификации клиентов.

Для операций уровня учетной записи задайте следующие значения в файле .databrickscfg. В этом случае URL-адрес консоли учетной записи 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>

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

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

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

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

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

См. также 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 и выше.

Для Databricks Connect можно выполнить одно из следующих действий:

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

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

Для расширения Databricks для Visual Studio Code сделайте следующее:

  1. Задайте значения в .databrickscfg файле для операций на уровне рабочей области Azure Databricks, как указано в разделе "Профиль".
  2. В области конфигурации расширения Databricks для Visual Studio Code нажмите кнопку "Настройка 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, например 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>
}

Для операций на уровне рабочей области, если главный компонент службы MS Entra ещё не добавлен в рабочую область, укажите azure_workspace_resource_id вместе с 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 вместе с ID ресурса Azure для рабочей области Azure Databricks, вместо host вместе с URL рабочей области. В данном случае основной объект службы MS Entra должен иметь как минимум разрешения Участника или Владельца на ресурсе 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. В данном случае, хостом является URL-адрес рабочей области Azure Databricks, например 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 вместе с ID ресурса Azure для рабочей области Azure Databricks, вместо setHost вместе с URL рабочей области. В данном случае основной объект службы MS Entra должен иметь как минимум разрешения Участника или Владельца на ресурсе Azure для рабочей области Azure Databricks.

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

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

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

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

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

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

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

Дополнительные сведения о проверке подлинности с помощью средств Databricks и пакетов SDK, использующих Go и реализующих единую проверку подлинности клиента Databricks, см. в статье "Проверка подлинности пакета SDK Databricks для Go" с учетной записью Azure Databricks или рабочей областью.