Аутентификация с использованием принципов служб Microsoft Entra

Для проверки подлинности субъекта-службы Microsoft Entra используются учетные данные субъекта-службы Microsoft Entra. Чтобы создать и управлять учетными записями службы для Azure Databricks, см.

Примечание

Databricks рекомендует использовать проверку подлинности OAuth на компьютере (M2M) в большинстве сценариев. OAuth M2M использует маркеры доступа OAuth, которые являются более надежными при проверке подлинности только с помощью Azure Databricks. Используйте аутентификацию служебного субъекта Microsoft Entra только в том случае, если необходимо одновременно выполнить аутентификацию в Azure Databricks и других ресурсах Azure.

Дополнительные сведения см. в статье Об использовании управляемых удостоверений Azure с Azure Databricks и аутентификации с помощью Azure DevOps в Azure Databricks.

Чтобы настроить проверку подлинности учетной записи Microsoft Entra с помощью Azure Databricks, необходимо задать следующие связанные переменные среды, поля, .databrickscfg поля Terraform или Config поля:

  • Узел Azure Databricks.

    • Для операций с учетной записью укажите https://accounts.azuredatabricks.net.
    • Для операций с рабочей областью Databricks рекомендует указать URL-адрес рабочей области, например https://adb-1234567890123456.7.azuredatabricks.net, и явно назначить рабочей области служебный объект Microsoft Entra. Кроме того, укажите идентификатор ресурса Azure. Для этого подхода требуются разрешения участника или владельца ресурса Azure или настраиваемая роль с определенными разрешениями Azure Databricks.
  • Для операций с учетной записью идентификатор учетной записи Azure Databricks account ID.

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

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

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

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

Чтобы выполнить аутентификацию учетной записи службы Microsoft 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

Databricks рекомендует использовать DATABRICKS_HOST и явно назначать учетную запись службы Microsoft Entra пространству работы. В качестве альтернативы используйте DATABRICKS_AZURE_RESOURCE_ID с идентификатором ресурса Azure. Для этого подхода требуются разрешения участника или владельца ресурса 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>

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

Databricks CLI (интерфейс командной строки)

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

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

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

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

Сервис Databricks Connect

Примечание

Аутентификация делегированного пользователя Microsoft Entra поддерживается в следующих версиях Databricks Connect:

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

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

  • Используйте профиль конфигурации: Задайте значения уровня рабочей области в .databrickscfg файле, как описано на вкладке "Профиль ". Также задайте URL-адрес экземпляра cluster_id рабочей области.
  • Используйте переменные среды: Задайте те же значения, что и на вкладке "Среда ". Также задайте URL-адрес экземпляра DATABRICKS_CLUSTER_ID рабочей области.

Значения, которые .databrickscfg имеют приоритет над переменными среды.

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

Расширение Visual Studio Code

Для расширения 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.

Terraform

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

provider "databricks" {
  alias = "accounts"
}

Для прямой настройки замените заполнители значениями из консоли или другого хранилища конфигурации, например HashiCorp Vault. См. также поставщик хранилища. В этом случае URL-адрес консоли учетной записи Azure Databricks:https://accounts.azuredatabricks.net

provider "databricks" {
  alias               = "accounts"
  host                = <your-account-console-url>
  account_id          = <your-account-id>
  azure_tenant_id     = <your-azure-tenant-id>
  azure_client_id     = <your-azure-client-id>
  azure_client_secret = <your-azure-client-secret>
}

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

provider "databricks" {
  alias = "workspace"
}

Для прямой настройки замените заполнители значениями из консоли или другого хранилища конфигурации, например HashiCorp Vault. См. также поставщик хранилища. В данном случае, хостом является URL-адрес рабочей области Azure Databricks, например https://adb-1234567890123456.7.azuredatabricks.net:

provider "databricks" {
  alias               = "workspace"
  host                = <your-workspace-url>
  azure_tenant_id     = <your-azure-tenant-id>
  azure_client_id     = <your-azure-client-id>
  azure_client_secret = <your-azure-client-secret>
}

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

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

Пакет SDK Databricks для Python

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

from databricks.sdk import AccountClient

a = AccountClient()
# ...

Для прямой настройки замените вызовы функции кодом, который получает значения из консоли или другого хранилища конфигурации, например Azure KeyVault. В этом случае URL-адрес консоли учетной записи Azure Databricks:https://accounts.azuredatabricks.net

from databricks.sdk import AccountClient

a = AccountClient(
  host                = get_account_console_url(),
  account_id          = get_account_id(),
  azure_tenant_id     = get_azure_tenant_id(),
  azure_client_id     = get_azure_client_id(),
  azure_client_secret = get_azure_client_secret()
)
# ...

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

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

Для прямой настройки замените вызовы функции кодом, который получает значения из консоли или другого хранилища конфигурации, например Azure KeyVault. В данном случае, хостом является URL-адрес рабочей области Azure Databricks, например https://adb-1234567890123456.7.azuredatabricks.net:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient(
  host                = get_workspace_url(),
  azure_tenant_id     = get_azure_tenant_id(),
  azure_client_id     = get_azure_client_id(),
  azure_client_secret = get_azure_client_secret()
)
# ...

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

Дополнительные сведения о проверке подлинности с помощью средств Databricks и пакетов SDK, использующих Python и реализующих единую проверку подлинности Databricks, см. в следующем разделе:

Пакет SDK Databricks для Java

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

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

Для прямой настройки замените вызовы функции кодом, который получает значения из консоли или другого хранилища конфигурации, например 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(getAccountConsoleUrl())
  .setAccountId(getAccountId())
  .setAzureTenantId(getAzureTenantId())
  .setAzureClientId(getAzureClientId())
  .setAzureClientSecret(getAzureClientSecret())
AccountClient a = new AccountClient(cfg);
// ...

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

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

Для прямой настройки замените вызовы функции кодом, который получает значения из консоли или другого хранилища конфигурации, например 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(getWorkspaceUrl())
  .setAzureTenantId(getAzureTenantId())
  .setAzureClientId(getAzureClientId())
  .setAzureClientSecret(getAzureClientSecret())
WorkspaceClient w = new WorkspaceClient(cfg);
// ...

Databricks рекомендует использовать setHost и явно назначать учетную запись службы Microsoft Entra пространству работы. В качестве альтернативы используйте setAzureWorkspaceResourceId с идентификатором ресурса Azure. Для этого подхода требуются разрешения участника или владельца ресурса Azure или настраиваемая роль с определенными разрешениями Azure Databricks.

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

Пакет SDK Databricks для Go

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

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

Для прямой настройки замените вызовы функции кодом, который получает значения из консоли или другого хранилища конфигурации, например Azure KeyVault. В этом случае URL-адрес консоли учетной записи Azure Databricks:https://accounts.azuredatabricks.net

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
  Host:              getAccountConsoleUrl(),
  AccountId:         getAccountId(),
  AzureTenantId:     getAzureTenantId(),
  AzureClientId:     getAzureClientId(),
  AzureClientSecret: getAzureClientSecret(),
}))
// ...

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

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

Для прямой настройки замените вызовы функции кодом, который получает значения из консоли или другого хранилища конфигурации, например 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:              getWorkspaceUrl(),
  AzureTenantId:     getAzureTenantId(),
  AzureClientId:     getAzureClientId(),
  AzureClientSecret: getAzureClientSecret(),
}))
// ...

Databricks рекомендует использовать Host и явно назначать учетную запись службы Microsoft Entra пространству работы. В качестве альтернативы используйте AzureWorkspaceResourceId с идентификатором ресурса Azure. Для этого подхода требуются разрешения участника или владельца ресурса Azure или настраиваемая роль с определенными разрешениями Azure Databricks.

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

Дополнительные ресурсы