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


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

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

Примечание.

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

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

Чтобы использовать проверку подлинности OAuth M2M вместо проверки подлинности субъекта-службы MS Entra, пропустите эту статью и ознакомьтесь с проверкой подлинности доступа к Azure Databricks с помощью субъекта-службы OAuth (OAuth M2M).

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

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

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

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

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

    • DATABRICKS_ACCOUNT_ID
    • ARM_TENANT_ID
    • ARM_CLIENT_ID
    • ARM_CLIENT_SECRET

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

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

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

Для операций на уровне учетной записиset приведенные ниже values в файле .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>

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

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

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

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

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

Примечание.

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

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

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

  • Set values в вашем файле .databrickscfg для операций на уровне рабочей области Azure Databricks , как указано в разделе “Профиль” этой статьи. Кроме того, настройте переменную среды setcluster_id в вашем профиле на URL-адрес для рабочей области, например https://adb-1234567890123456.7.azuredatabricks.net.
  • Set переменные среды для операций уровня рабочей области Azure Databricks , как указано в разделе "Среда". Кроме того, set переменную среды DATABRICKS_CLUSTER_IDURL-адресрабочей области, например https://adb-1234567890123456.7.azuredatabricks.net.

Values в файле .databrickscfg всегда имеет приоритет над переменными среды.

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

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

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

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

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

provider "databricks" {
  alias = "accounts"
}

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

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

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

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

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

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

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