Проверка подлинности на компьютере (M2M) OAuth

Проверка подлинности на компьютере (M2M) OAuth использует учетные данные автоматизированной сущности (в этом случае управляемый субъект-служба Azure Databricks или управляемый субъект-службу Microsoft Entra ID (ранее Azure Active Directory) для проверки подлинности целевой сущности.

После успешной проверки подлинности целевого субъекта-службы Azure Databricks через запрос проверки подлинности OAuth M2M azure Databricks OAuth предоставляется средству или пакету SDK для выполнения проверки подлинности на основе маркеров от этого времени. Маркер OAuth Azure Databricks имеет срок действия одного часа, после которого средство или пакет SDK, участвующий, сделает автоматическую фоновую попытку получить новый маркер, который также действителен в течение одного часа.

Чтобы начать настройку проверки подлинности OAuth M2M, сделайте следующее:

Примечание.

Для управления учетными данными Azure Databricks OAuth для субъектов-служб необходимо быть администратором учетной записи Azure Databricks.

Шаг 1. Создание субъекта-службы идентификатора Microsoft Entra в учетной записи Azure

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

  1. Войдите на портал Azure.

    Примечание.

    Используемый портал отличается в зависимости от того, работает ли ваше приложение Microsoft Entra ID (прежнее название — Azure Active Directory) в общедоступном облаке Azure или в национальном или независимом облаке. Дополнительные сведения см. на странице национальных облаков.

  2. Если у вас есть доступ к нескольким арендаторам, подпискам или каталогам, щелкните значок Каталоги + подписки (каталог с фильтром) в верхнем меню, чтобы перейти к каталогу, в котором необходимо подготовить субъект-службу.

  3. В ресурсах, службах и документах поиска найдите и выберите идентификатор Microsoft Entra.

  4. Нажмите кнопку +Добавить и выберите регистрацию приложения.

  5. Введите имя приложения

  6. В разделе Поддерживаемые типы учетных записей выберите Учетные записи только в этом каталоге организации (один арендатор).

  7. Щелкните Зарегистрировать.

  8. На странице Обзор приложения в разделе Основные компоненты скопируйте следующие значения:

    • Application (client) ID (Идентификатор приложения (клиент))
    • Идентификатор каталога (клиент)

    Обзор зарегистрированного приложения Azure

  9. Чтобы создать секрет клиента, в меню "Управление" щелкните " Сертификаты" и "Секреты".

    Примечание.

    Этот секрет клиента используется для создания маркеров идентификатора Microsoft Entra для проверки подлинности субъектов-служб Microsoft Entra ID с помощью Azure Databricks. Чтобы определить, может ли средство Azure Databricks или пакет SDK использовать маркеры идентификатора Microsoft Entra, ознакомьтесь с документацией по инструменту или пакету SDK.

  10. В разделе Секреты клиента выберите Новый секрет клиента.

    Создать секрет клиента

  11. В области Добавление секрета клиента в поле Описание введите описание секрета клиента.

  12. В поле Срок действия выберите срок действия секрета клиента и нажмите кнопку Добавить.

  13. Скопируйте и сохраните значение секрета клиента в безопасном месте, так как он является паролем для вашего приложения.

Шаг 2. Добавление субъекта-службы в учетную запись Azure Databricks

Этот шаг работает, только если целевая рабочая область Azure Databricks включена для федерации удостоверений. Если рабочая область не включена для федерации удостоверений, перейдите к шагу 3.

  1. В рабочей области Azure Databricks щелкните имя пользователя в верхней строке и нажмите кнопку "Управление учетной записью".

    Кроме того, перейдите непосредственно в консоль учетной записи Azure Databricks.https://accounts.azuredatabricks.net

  2. При появлении запроса войдите в учетную запись Azure Databricks.

  3. На боковой панели щелкните " Управление пользователями".

  4. Перейдите на вкладку "Субъекты-службы ".

  5. Нажмите кнопку "Добавить субъект-службу".

  6. В разделе "Управление" выберите databricks managed или Microsoft Entra ID.

  7. Если вы выбрали управляемый идентификатор Microsoft Entra, в разделе Идентификатор приложения Microsoft Entra вставьте значение идентификатора приложения (клиента) из шага 1.

  8. Введите имя субъекта-службы.

  9. Нажмите кнопку Добавить.

  10. (Необязательно) Назначьте разрешения на уровне учетной записи субъекту-службе:

    1. На вкладке "Субъекты-службы" щелкните имя субъекта-службы.
    2. На вкладке "Роли" установите переключатель, чтобы включить или отключить каждую целевую роль, которую должен иметь этот субъект-служба.
    3. На вкладке "Разрешения" предоставьте доступ ко всем пользователям Azure Databricks, субъектам-службам и ролям группы учетных записей, которым требуется управлять и использовать этот субъект-службу. См. статью "Управление ролями" в субъекте-службе.

Шаг 3. Добавление субъекта-службы в рабочую область Azure Databricks

Если рабочая область включена для федерации удостоверений:

  1. В рабочей области Azure Databricks щелкните имя пользователя в верхней строке и щелкните Параметры.
  2. Щелкните вкладку "Удостоверение" и "Доступ ".
  3. Рядом с субъектами-службами нажмите кнопку "Управление".
  4. Нажмите кнопку "Добавить субъект-службу".
  5. Выберите субъект-службу на шаге 2 и нажмите кнопку "Добавить".

Перейдите к шагу 4.

Если рабочая область не включена для федерации удостоверений:

  1. В рабочей области Azure Databricks щелкните имя пользователя в верхней строке и щелкните Параметры.
  2. Щелкните вкладку "Удостоверение" и "Доступ ".
  3. Рядом с субъектами-службами нажмите кнопку "Управление".
  4. Нажмите кнопку "Добавить субъект-службу".
  5. Щелкните Добавить новую.
  6. В разделе "Управление" выберите databricks managed или Microsoft Entra ID.
  7. Если вы выбрали управляемый идентификатор Microsoft Entra, в разделе Идентификатор приложения Microsoft Entra вставьте значение идентификатора приложения (клиента) из шага 1.
  8. Введите отображаемое имя нового субъекта-службы и нажмите кнопку "Добавить".

Шаг 4. Назначение разрешений на уровне рабочей области субъекту-службе

  1. Если консоль администрирования для рабочей области еще не открыта, щелкните имя пользователя в верхней строке и щелкните Параметры.
  2. Щелкните вкладку "Удостоверение" и "Доступ ".
  3. Рядом с субъектами-службами нажмите кнопку "Управление".
  4. Щелкните имя субъекта-службы, чтобы открыть страницу параметров.
  5. На вкладке "Конфигурации" проверка поле рядом с каждым правом, которое требуется иметь субъект-служба для этой рабочей области, а затем нажмите кнопку "Обновить".
  6. На вкладке "Разрешения" предоставьте доступ ко всем пользователям Azure Databricks, субъектам-службам и группам, которым требуется управлять и использовать этот субъект-службу. См. статью "Управление ролями" в субъекте-службе.

Шаг 5. Создание секрета OAuth Azure Databricks для субъекта-службы

Прежде чем использовать OAuth для проверки подлинности в Azure Databricks, необходимо сначала создать секрет OAuth, который можно использовать для создания маркеров доступа OAuth. Субъект-служба может иметь до пяти секретов OAuth. Чтобы создать секрет OAuth для субъекта-службы с помощью консоли учетной записи:

  1. Войдите в консоль учетной записи Azure Databricks по адресу https://accounts.azuredatabricks.net.
  2. При появлении запроса войдите в учетную запись Azure Databricks.
  3. На боковой панели щелкните " Управление пользователями".
  4. Перейдите на вкладку "Субъекты-службы ".
  5. Щелкните имя субъекта-службы.
  6. В разделе секретов OAuth на вкладке "Основные сведения" щелкните "Создать секрет".
  7. В диалоговом окне создания секрета скопируйте и сохраните значение Secret в безопасном месте, так как этот секрет OAuth является паролем для субъекта-службы.
  8. Нажмите кнопку Готово.

Примечание.

Чтобы субъект-служба мог использовать кластеры или хранилища SQL, необходимо предоставить субъекту-службе доступ к ним. См . сведения о разрешениях вычислений или управлении хранилищем SQL.

Завершение настройки проверки подлинности OAuth M2M

Чтобы завершить настройку проверки подлинности OAuth M2M, необходимо задать следующие связанные переменные среды, поля, .databrickscfg поля Terraform или Config поля:

  • Узел Azure Databricks, указанный как https://accounts.azuredatabricks.net для операций с учетной записью или url-адрес целевой области для каждой рабочей области, например https://adb-1234567890123456.7.azuredatabricks.net для операций с рабочей областью.
  • Идентификатор учетной записи Azure Databricks для операций с учетной записью Azure Databricks.
  • Идентификатор клиента субъекта-службы.
  • Секрет субъекта-службы.

Чтобы выполнить проверку подлинности OAuth M2M, интегрируйте следующее в код на основе участвующего средства или пакета SDK:

Среда

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

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

  • DATABRICKS_HOST, установите для url-адреса https://accounts.azuredatabricks.netконсоли учетной записи Azure Databricks.
  • DATABRICKS_ACCOUNT_ID
  • DATABRICKS_CLIENT_ID
  • DATABRICKS_CLIENT_SECRET

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

Профиль

Создайте или определите профиль конфигурации 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>
client_id     = <service-principal-client-id>
client_secret = <service-principal-secret>

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

[<some-unique-configuration-profile-name>]
host          = <workspace-url>
client_id     = <service-principal-client-id>
client_secret = <service-principal-secret>

Cli

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

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

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

См. также проверку подлинности OAuth на компьютере (M2M).

Связь

Примечание.

Проверка подлинности OAuth M2M поддерживается в следующих версиях Databricks Подключение:

  • Для Python Databricks Подключение для Databricks Runtime 14.0 и более поздних версий.
  • Для Scala Databricks Подключение для Databricks Runtime 13.3 LTS и выше. Пакет SDK Databricks для Java, который входит в состав Databricks Подключение для Databricks Runtime 13.3 LTS и выше, необходимо обновить до пакета SDK Databricks для Java 0.17.0 или более поздней версии.

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

  • Задайте значения в .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 Подключение с этими переменными среды или значениями в .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>
  client_id     = <retrieve-client-id>
  client_secret = <retrieve-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>
  client_id     = <retrieve-client-id>
  client_secret = <retrieve-client-secret>
}

Дополнительные сведения о проверке подлинности с помощью поставщика 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(),
  client_id     = retrieve_client_id(),
  client_secret = retrieve_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(),
  client_id     = retrieve_client_id(),
  client_secret = retrieve_client_secret()
)
# ...

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

Примечание.

Расширение Databricks для Visual Studio Code использует Python, но еще не реализовало проверку подлинности OAuth M2M.

Java

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

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())
  .setClientId(retrieveClientId())
  .setClientSecret(retrieveClientSecret());
WorkspaceClient w = new WorkspaceClient(cfg);
// ...

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

Go

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

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

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

import (
"github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
  Host:         retrieveAccountConsoleUrl(),
  AccountId:    retrieveAccountId(),
  ClientId:     retrieveClientId(),
  ClientSecret: retrieveClientSecret(),
}))
// ...

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

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

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

import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
  Host:         retrieveWorkspaceUrl(),
  ClientId:     retrieveClientId(),
  ClientSecret: retrieveClientSecret(),
}))
// ...

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

Создание и использование маркеров доступа вручную для проверки подлинности компьютера на компьютере (M2M) OAuth

Средства и пакеты SDK Azure Databricks, реализующие стандарт единой проверки подлинности клиента Databricks, автоматически создают, обновляют и используют маркеры доступа OAuth Azure Databricks от вашего имени, как это необходимо для проверки подлинности OAuth M2M.

Если по какой-то причине необходимо вручную создавать, обновлять или использовать маркеры доступа Azure Databricks OAuth для проверки подлинности OAuth M2M, следуйте инструкциям в этом разделе.

Шаг 1. Создание субъекта-службы и секрета OAuth

Если у вас еще нет управляемого субъекта-службы Azure Databricks или управляемого субъекта-службы Microsoft Entra ID и соответствующего секрета Azure Databricks OAuth, создайте их, выполнив действия 1-5 в начале этой статьи.

Шаг 2. Создание маркера доступа вручную

Вы можете использовать идентификатор клиента управляемого субъекта-службы Azure Databricks или идентификатор управляемого субъекта-службы Microsoft Entra ID и секрет OAuth Azure Databricks, чтобы запросить маркер доступа OAuth Azure Databricks для проверки подлинности как для ИНТЕРФЕЙСов REST API уровня учетной записи , так и интерфейсов REST API уровня рабочей области. Срок действия маркера истекает через час. После истечения срока действия необходимо запросить новый маркер доступа Azure Databricks OAuth. Область маркера доступа OAuth зависит от уровня, из который создается маркер. Вы можете создать маркер на уровне учетной записи или на уровне рабочей области следующим образом:

  • Чтобы вызвать ИНТЕРФЕЙСы REST API уровня учетной записи и рабочей области уровня рабочей области в учетных записях и рабочих областях, к которым имеет доступ управляемый субъект-служба Azure Databricks или управляемый субъектом-службой Идентификатор Microsoft Entra ID, вручную создайте маркер доступа на уровне учетной записи.
    • Чтобы вызвать ИНТЕРФЕЙСы REST API в пределах только одной рабочей области, к которым имеет доступ управляемый субъект-служба Azure Databricks или управляемый субъект-служба Microsoft Entra ID, можно вручную создать маркер доступа на уровне рабочей области только для этой рабочей области.

Создание маркера доступа на уровне учетной записи вручную

Маркер доступа Azure Databricks OAuth, созданный на уровне учетной записи, можно использовать для ИНТЕРФЕЙСов REST API Databricks в учетной записи и в любой рабочей области управляемого субъекта-службы Azure Databricks или управляемого субъекта-службы Microsoft Entra ID.

  1. Войдите в консоль учетной записи с правами администратора учетных записей.

  2. Щелкните стрелку вниз рядом с именем пользователя в правом верхнем углу.

  3. Скопируйте идентификатор учетной записи.

  4. Создайте URL-адрес конечной точки маркера, заменив <my-account-id> в следующем URL-адресе идентификатор учетной записи, скопированный вами.

    https://accounts.azuredatabricks.net/oidc/accounts/<my-account-id>/v1/token
    
  5. Используйте клиент, например curl , чтобы запросить маркер доступа Azure Databricks OAuth с URL-адресом конечной точки маркера, идентификатором клиента (который также известен как идентификатор приложения) управляемого субъекта-службы Azure Databricks или управляемого субъекта-службы Microsoft Entra ID, а также секрета OAuth Azure Databricks, созданного для управляемого субъекта-службы Azure Databricks или управляемого субъекта-службы Microsoft Entra ID. Область all-apis запрашивает маркер доступа Azure Databricks OAuth, который можно использовать для доступа ко всем REST API Databricks, к которым предоставлен доступ к управляемому субъекту-службе Azure Databricks или управляемому субъекту-службе Microsoft Entra ID.

    • Замените <token-endpoint-URL> URL-адрес конечной точки маркера выше.
    • Замените <client-id> идентификатор клиента управляемого субъекта-службы Azure Databricks или идентификатором управляемого субъекта-службы Microsoft Entra ID, который также называется идентификатором приложения.
    • Замените <client-secret> секретом OAuth Azure Databricks, созданным для управляемого субъекта-службы Azure Databricks или управляемого субъекта-службы Microsoft Entra ID.
    export CLIENT_ID=<client-id>
    export CLIENT_SECRET=<client-secret>
    
    curl --request POST \
    --url <token-endpoint-URL> \
    --user "$CLIENT_ID:$CLIENT_SECRET" \
    --data 'grant_type=client_credentials&scope=all-apis'
    

    Это создает ответ, аналогичный следующему:

    {
      "access_token": "eyJraWQiOiJkYTA4ZTVjZ…",
      "scope": "all-apis",
      "token_type": "Bearer",
      "expires_in": 3600
    }
    

    Скопируйте ответ access_token .

    Срок действия маркера доступа OAuth в Azure Databricks истекает через один час. После истечения срока действия необходимо создать новый маркер доступа Azure Databricks OAuth вручную.

  6. Перейдите к шагу 3. Вызов REST API Databricks.

Создание маркера доступа на уровне рабочей области вручную

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

  1. Создайте URL-адрес конечной точки маркера, заменив https://<databricks-instance>URL-адрес рабочей области развертывания Azure Databricks:

    https://<databricks-instance>/oidc/v1/token
    
  2. Используйте клиент, например curl , чтобы запросить маркер доступа Azure Databricks OAuth с URL-адресом конечной точки маркера, идентификатором клиента (который также известен как идентификатор приложения) управляемого субъекта-службы Azure Databricks или управляемого субъекта-службы Microsoft Entra ID, а также секрета OAuth Azure Databricks, созданного для управляемого субъекта-службы Azure Databricks или управляемого субъекта-службы Microsoft Entra ID. Область all-apis запрашивает маркер доступа Azure Databricks OAuth, который можно использовать для доступа ко всем REST API Databricks, которыми управляет субъект-служба Azure Databricks или управляемый субъект-служба Microsoft Entra ID, предоставлен доступ к рабочей области, из которую вы запрашиваете маркер.

    • Замените <token-endpoint-URL> URL-адрес конечной точки маркера выше.

    • Замените <client-id> идентификатор клиента управляемого субъекта-службы Azure Databricks или идентификатором управляемого субъекта-службы Microsoft Entra ID, который также называется идентификатором приложения.

    • Замените <client-secret> секретом OAuth Azure Databricks, созданным для управляемого субъекта-службы Azure Databricks или управляемого субъекта-службы Microsoft Entra ID.

      export CLIENT_ID=<client-id>
      export CLIENT_SECRET=<client-secret>
      
      curl --request POST \
      --url <token-endpoint-URL> \
      --user "$CLIENT_ID:$CLIENT_SECRET" \
      --data 'grant_type=client_credentials&scope=all-apis'
      

      Это создает ответ, аналогичный следующему:

      {
        "access_token": "eyJraWQiOiJkYTA4ZTVjZ…",
        "scope": "all-apis",
        "token_type": "Bearer",
        "expires_in": 3600
      }
      

      Скопируйте ответ access_token .

      Срок действия маркера доступа OAuth в Azure Databricks истекает через один час. После истечения срока действия необходимо создать новый маркер доступа Azure Databricks OAuth вручную.

Шаг 3. Вызов REST API Databricks

Теперь вы можете использовать маркер доступа Azure Databricks OAuth для проверки подлинности в REST API уровня учетной записи Azure Databricks и REST API уровня рабочей области. Управляемый субъект-служба Azure Databricks или управляемый субъект-служба идентификатора Microsoft Entra ID должен быть администратором учетной записи для вызова ИНТЕРФЕЙСов REST API уровня учетной записи.

Вы можете включить маркер в заголовок с помощью аутентификации Bearer. Этот подход можно использовать с curl или любым другим созданным клиентом.

Пример запроса REST API на уровне учетной записи

В этом примере используется Bearer проверка подлинности для получения списка всех рабочих областей, связанных с учетной записью.

  • Замените <oauth-access-token> маркер доступа Azure Databricks OAuth для управляемого субъекта-службы Azure Databricks или управляемого субъекта-службы Microsoft Entra ID.
  • Замените <account-id> идентификатором учетной записи.
export OAUTH_TOKEN=<oauth-access-token>

curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
'https://accounts.azuredatabricks.net/api/2.0/accounts/<account-id>/workspaces'

Пример запроса REST API на уровне рабочей области

В этом примере используется аутентификация Bearer для вывода всех доступных кластеров в указанной рабочей области.

  • Замените <oauth-access-token> маркер доступа Azure Databricks OAuth для управляемого субъекта-службы Azure Databricks или управляемого субъекта-службы Microsoft Entra ID.

  • Замените <workspace-URL> URL-адрес базовой рабочей области, который имеет форму, аналогичную adb-1111111111111111.1.azuredatabricks.net.

    export OAUTH_TOKEN=<oauth-access-token>
    
    curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
    'https://<workspace-URL>/api/2.0/clusters/list'