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


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

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

Примечание.

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

Вы должны использовать проверку подлинности субъекта-службы MS Entra только в тех случаях, когда необходимо выполнить проверку подлинности с помощью 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 в 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.

  • ИД ресурса 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, задайте значение https://adb-1234567890123456.7.azuredatabricks.net.
    • ARM_TENANT_ID
    • ARM_CLIENT_ID
    • ARM_CLIENT_SECRET

    Для операций на уровне рабочей области, если субъект-служба MS Entra еще не добавлена в рабочую область, укажите DATABRICKS_AZURE_RESOURCE_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

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

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

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

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

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

Примечание.

Проверка подлинности субъекта-службы MS 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, см. раздел "Конфигурация вычислений для Databricks Connect".

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

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

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

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

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

Дополнительные сведения о проверке подлинности с помощью средств Databricks и пакетов SDK, использующих 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

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.

Дополнительные сведения о проверке подлинности с помощью средств Databricks и пакетов SDK, использующих 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

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.

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