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


Проверка подлинности субъект-службы Microsoft Entra.

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

Примечание.

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

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

Чтобы использовать проверку подлинности OAuth M2M вместо проверки подлинности субъекта-службы Идентификатора Майкрософт, пропустите эту статью и см. статью "Использование субъекта-службы для проверки подлинности с помощью Azure Databricks".

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

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

  • Узел Azure Databricks.

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

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

      Если субъект-служба Идентификатора Microsoft Entra еще не добавлена в рабочую область, укажите вместо него идентификатор ресурса Azure. В этом случае субъект-служба Идентификатора Microsoft Entra должна иметь по крайней мере разрешения участника или владельца ресурса Azure.

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

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

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

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

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

Чтобы выполнить проверку подлинности субъекта-службы Microsoft Entra ID с помощью 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

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

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

Профиль

Создайте или определите профиль конфигурации Azure Databricks со следующими полями в .databrickscfg файле. При создании профиля замените заполнители соответствующими значениями. Сведения об использовании профиля с инструментом или пакетом SDK см. в статье "Поддерживаемые типы проверки подлинности" с помощью инструмента Azure Databricks или пакета SDK или документации по средству или пакету 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>

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

CLI

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

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

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

См. также проверку подлинности субъекта-службы идентификатора Microsoft Entra.

Связь

Примечание.

Проверка подлинности субъекта-службы идентификатора Microsoft Entra поддерживается в следующих версиях Databricks Connect:

  • Для Python Databricks Connect для Databricks Runtime 13.1 и более поздних версий.
  • Для Scala Databricks Connect для Databricks Runtime 13.3 LTS и более поздних версий.

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

  • Задайте значения в .databrickscfg файле для операций на уровне рабочей области Azure Databricks, как указано в разделе "Профиль". Также задайте cluster_id переменную среды в профиле URL-адрес рабочей области, напримерhttps://adb-1234567890123456.7.azuredatabricks.net.
  • Задайте переменные среды для операций на уровне рабочей области Azure Databricks, как указано в разделе "Среда". Кроме того, задайте DATABRICKS_CLUSTER_ID переменную среды в URL-адресе для каждой рабочей области, например https://adb-1234567890123456.7.azuredatabricks.net.

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

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

VS Code

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

  1. Задайте значения в .databrickscfg файле для операций на уровне рабочей области Azure Databricks, как указано в разделе "Профиль".
  2. В области конфигурации расширения Databricks для Visual Studio Code нажмите кнопку "Настройка Databricks".
  3. В палитре команд для узла Databricks введите URL-адрес рабочей области, напримерhttps://adb-1234567890123456.7.azuredatabricks.net, и нажмите клавишуEnter.
  4. В палитре команд выберите имя целевого профиля в списке URL-адреса.

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

Terraform

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

provider "databricks" {
  alias = "accounts"
}

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

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

Дополнительные сведения о проверке подлинности с помощью поставщика Databricks Terraform см. в разделе "Проверка подлинности".

Python

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

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()
)
# ...

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

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

Java

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

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);
// ...

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

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

Go

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

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(),
}))
// ...

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

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