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


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

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

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

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

Чтобы выполнить проверку подлинности OAuth U2M с помощью Azure Databricks, интегрируйте в код следующие компоненты на основе средства или пакета SDK. Обратите внимание, что в зависимости от операций Azure Databricks, вызывающих код, вам не обязательно нужно быть администратором учетной записи Azure Databricks:

Среда

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

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

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

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

Профиль

Создайте или определите профиль конфигурации 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>

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

[<some-unique-configuration-profile-name>]
host = <workspace-url>

CLI

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

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

Дополнительные сведения см. в статье OAuth для проверки подлинности пользователей и компьютеров (U2M).

Связь

Примечание.

Проверка подлинности OAuth U2M поддерживается в следующих версиях 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. В области "Конфигурация" нажмите кнопку "Настройка Databricks".
  2. В палитре команд для узла Databricks введите URL-адрес рабочей области, напримерhttps://adb-1234567890123456.7.azuredatabricks.net, и нажмите клавишуEnter.
  3. Выберите OAuth (пользователь на компьютер).
  4. Выполните инструкции на экране в веб-браузере, чтобы завершить проверку подлинности с помощью учетной записи Azure Databricks и разрешить доступ ко всем API .

Дополнительные сведения см. в разделе "Настройка проверки подлинности OAuth U2M".

Terraform

Примечание.

Проверка подлинности OAuth U2M еще не поддерживается.

Python

Для операций на уровне учетной записи сначала следует использовать интерфейс командной строки Databricks для выполнения следующей команды перед запуском кода Python. Эта команда предписывает Databricks CLI создавать и кэшировать необходимый маркер OAuth в пути .databricks/token-cache.json в домашней папке пользователя на компьютере:

databricks auth login --host <account-console-url> --account-id <account-id>

Замените следующие заполнители:

  • Замените <account-console-url> значением https://accounts.azuredatabricks.net. (Не задайте для этого значение URL-адреса рабочей области Azure Databricks.)
  • Замените <account-id> значением учетной записи Azure Databricks. См. раздел "Поиск идентификатора учетной записи".

Примечание.

Если у вас есть существующий профиль конфигурации Azure Databricks с account_idhost уже заданными полями, можно заменить --host <account-console-url> --account-id <account-id> на --profile <profile-name>него.

После выполнения auth login команды вам будет предложено сохранить URL-адрес входа учетной записи и идентификатор учетной записи в качестве профиля конфигурации Azure Databricks. При появлении запроса введите имя нового или существующего профиля в .databrickscfg файле. Любой существующий профиль с тем же именем в .databrickscfg файле перезаписан.

Если появится запрос, выполните инструкции на экране веб-браузера, чтобы завершить вход. Затем используйте код 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       = retrieveAccountConsoleUrl(),
  account_id = retrieveAccountId()
)
# ...

Для операций на уровне рабочей области сначала следует использовать интерфейс командной строки Databricks для выполнения следующей команды перед запуском кода Python. Эта команда предписывает Databricks CLI создавать и кэшировать необходимый маркер OAuth в пути .databricks/token-cache.json в домашней папке пользователя на компьютере:

databricks auth login --host <worskpace-url>

Замените заполнитель <workspace-url> целевым URL-адресом Azure Databricks для каждой рабочей области, напримерhttps://adb-1234567890123456.7.azuredatabricks.net.

Примечание.

Если у вас есть существующий профиль конфигурации Azure Databricks с host уже заданным полем, можно заменить --host <workspace-url>--profile <profile-name>на него.

При выполнении auth login команды вам будет предложено сохранить URL-адрес рабочей области в качестве профиля конфигурации Azure Databricks. При появлении запроса введите имя нового или существующего профиля в .databrickscfg файле. Любой существующий профиль с тем же именем в .databrickscfg файле перезаписан.

Если появится запрос, выполните инструкции на экране веб-браузера, чтобы завершить вход. Затем используйте код Python, аналогичный одному из следующих фрагментов кода:

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

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

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

Java

Для операций на уровне учетной записи сначала следует использовать интерфейс командной строки Databricks для выполнения следующей команды перед запуском кода Java. Эта команда предписывает Databricks CLI создавать и кэшировать необходимый маркер OAuth в пути .databricks/token-cache.json в домашней папке пользователя на компьютере:

databricks auth login --host <account-console-url> --account-id <account-id>

Замените следующие заполнители:

  • Замените <account-console-url> значением https://accounts.azuredatabricks.net. (Не задайте для этого значение URL-адреса рабочей области Azure Databricks.)
  • Замените <account-id> значением учетной записи Azure Databricks. См. раздел "Поиск идентификатора учетной записи".

Примечание.

Если у вас есть существующий профиль конфигурации Azure Databricks с account_idhost уже заданными полями, можно заменить --host <account-console-url> --account-id <account-id> на --profile <profile-name>него.

После выполнения auth login команды вам будет предложено сохранить URL-адрес входа учетной записи и идентификатор учетной записи в качестве профиля конфигурации Azure Databricks. При появлении запроса введите имя нового или существующего профиля в .databrickscfg файле. Любой существующий профиль с тем же именем в .databrickscfg файле перезаписан.

Если появится запрос, выполните инструкции на экране веб-браузера, чтобы завершить вход. Затем используйте код 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());
AccountClient a = new AccountClient(cfg);
// ...

Для операций на уровне рабочей области сначала следует использовать интерфейс командной строки Databricks для выполнения следующей команды перед запуском кода Java. Эта команда предписывает Databricks CLI создавать и кэшировать необходимый маркер OAuth в пути .databricks/token-cache.json в домашней папке пользователя на компьютере:

databricks auth login --host <worskpace-url>

Замените заполнитель <workspace-url> целевым URL-адресом Azure Databricks для каждой рабочей области, напримерhttps://adb-1234567890123456.7.azuredatabricks.net.

Примечание.

Если у вас есть существующий профиль конфигурации Azure Databricks с host уже заданным полем, можно заменить --host <workspace-url>--profile <profile-name>на него.

После выполнения auth login команды вам будет предложено сохранить URL-адрес рабочей области в качестве профиля конфигурации Azure Databricks. При появлении запроса введите имя нового или существующего профиля в .databrickscfg файле. Любой существующий профиль с тем же именем в .databrickscfg файле перезаписан.

Если появится запрос, выполните инструкции на экране веб-браузера, чтобы завершить вход. Затем используйте код 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())
WorkspaceClient w = new WorkspaceClient(cfg);
// ...

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

Go

Для операций на уровне учетной записи сначала следует использовать интерфейс командной строки Databricks для выполнения следующей команды перед запуском кода Go. Эта команда предписывает Databricks CLI создавать и кэшировать необходимый маркер OAuth в пути .databricks/token-cache.json в домашней папке пользователя на компьютере:

databricks auth login --host <account-login-url> --account-id <account-id>

Замените следующие заполнители:

  • Замените <account-console-url> значением https://accounts.azuredatabricks.net. (Не задайте для этого значение URL-адреса рабочей области Azure Databricks.)
  • Замените <account-id> значением учетной записи Azure Databricks. См. раздел "Поиск идентификатора учетной записи".

Примечание.

Если у вас есть существующий профиль конфигурации Azure Databricks с account_idhost уже заданными полями, можно заменить --host <account-console-url> --account-id <account-id> на --profile <profile-name>него.

После выполнения auth login команды вам будет предложено сохранить URL-адрес входа учетной записи и идентификатор учетной записи в качестве профиля конфигурации Azure Databricks. При появлении запроса введите имя нового или существующего профиля в .databrickscfg файле. Любой существующий профиль с тем же именем в .databrickscfg файле перезаписан.

Если появится запрос, выполните инструкции на экране веб-браузера, чтобы завершить вход. Затем используйте код 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(),
}))
// ...

Для операций на уровне рабочей области сначала следует использовать интерфейс командной строки Databricks для выполнения следующей команды перед запуском кода Go. Эта команда предписывает Databricks CLI создавать и кэшировать необходимый маркер OAuth в пути .databricks/token-cache.json в домашней папке пользователя на компьютере:

databricks auth login --host <worskpace-url>

Замените заполнитель <workspace-url> целевым URL-адресом Azure Databricks для каждой рабочей области, напримерhttps://adb-1234567890123456.7.azuredatabricks.net.

Примечание.

Если у вас есть существующий профиль конфигурации Azure Databricks с host уже заданным полем, можно заменить --host <workspace-url>--profile <profile-name>на него.

После выполнения auth login команды вам будет предложено сохранить URL-адрес рабочей области в качестве профиля конфигурации Azure Databricks. При появлении запроса введите имя нового или существующего профиля в .databrickscfg файле. Любой существующий профиль с тем же именем в .databrickscfg файле перезаписан.

Если появится запрос, выполните инструкции на экране веб-браузера, чтобы завершить вход. Затем используйте код Go, аналогичный одному из следующих фрагментов кода:

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

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

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

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

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

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

Шаг 1. Создание проверки кода OAuth и пары вызовов кода

Чтобы вручную создавать и использовать маркеры доступа для проверки подлинности OAuth U2M, сначала необходимо иметь средство проверки кода OAuth и вызов кода OAuth, производный от средства проверки кода. Чтобы создать код авторизации OAuth, используйте эту проблему позже на шаге 2. Вы используете средство проверки кода и код авторизации далее на шаге 3 для создания маркера доступа OAuth.

Примечание.

Хотя технически можно использовать незакодированные строки обычного текста для проверки кода и проблемы кода, Databricks настоятельно рекомендует использовать стандарт OAuth для создания средства проверки кода и вызова кода.

В частности, проверяющий код должен быть криптографически случайной строкой с использованием символов из наборов A-Z, a-z0-9и символов -._~ препинания (дефис, период, подчеркивание и тильде), от 43 до 128 символов длиннее. Задача кода должна быть строкой в кодировке Base64-URL хэша SHA256 проверяющего кода. Дополнительные сведения см. в разделе "Запрос авторизации".

Чтобы быстро создать уникальную пару проверки кода и сложности кода, можно выполнить следующий скрипт Python. Хотя вы можете повторно использовать этот созданный проверяющий код и пару вызовов кода несколько раз, Databricks рекомендует создавать новую пару проверки кода и проблемы кода каждый раз, когда вы вручную создаете маркеры доступа для проверки подлинности OAuth U2M.

import uuid, hashlib, base64

# Generate a UUID.
uuid1 = uuid.uuid4()

# Convert the UUID to a string.
uuid_str1 = str(uuid1).upper()

# Create the code verifier.
code_verifier = uuid_str1 + "-" + uuid_str1

# Create the code challenge based on the code verifier.
code_challenge = base64.urlsafe_b64encode(hashlib.sha256(code_verifier.encode()).digest()).decode('utf-8')

# Remove all padding from the code challenge.
code_challenge = code_challenge.replace('=', '')

# Print the code verifier and the code challenge.
# Use these in your calls to manually generate
# access tokens for OAuth U2M authentication.
print(f"code_verifier:  {code_verifier}")
print(f"code_challenge: {code_challenge}")

Шаг 2. Создание кода авторизации

Код авторизации OAuth используется для создания маркера доступа OAuth Azure Databricks. Срок действия кода авторизации истекает сразу после его использования для создания маркера доступа Azure Databricks OAuth. Область кода авторизации зависит от уровня, из который создается код авторизации. Код авторизации можно создать на уровне учетной записи Azure Databricks или на уровне рабочей области, как показано ниже.

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

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

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

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

  4. В адресной строке веб-браузера перейдите по следующему URL-адресу. Для удобочитаемости добавлены разрывы строк. URL-адрес не должен содержать эти разрывы строк.

    В следующем URL-адресе замените следующее:

    • Замените <account-id> скопированный идентификатор учетной записи.
    • Напримерhttp://localhost:8020, замените <redirect-url> URL-адрес перенаправления на локальный компьютер.
    • Замените <state> некоторой строкой обычного текста, которую можно использовать для проверки целостности кода авторизации.
    • Замените <code-challenge> вызов кода, созданный на шаге 1.
    https://accounts.azuredatabricks.net/oidc/accounts/<account-id>/v1/authorize
    ?client_id=databricks-cli
    &redirect_url=<redirect-url>
    &response_type=code
    &state=<state>
    &code_challenge=<code-challenge>
    &code_challenge_method=S256
    &scope=all-apis+offline_access
    
  5. При появлении запроса следуйте инструкциям на экране, чтобы войти в учетную запись Azure Databricks.

  6. Скопируйте код авторизации в адресной строке веб-браузера. Код авторизации — это полная строка символов между code= url-адресом и & символом. Например, код авторизации в следующем URL-адресе:dcod...7fe6

    http://localhost:8020/?code=dcod...7fe6&state=<state>
    

    Необходимо проверить целостность этого кода авторизации, визуально убедившись, что <state> значение в этом URL-адресе ответа соответствует state значению, предоставленному в URL-адресе запроса. Если значения отличаются, этот код авторизации не следует использовать, так как он может быть скомпрометирован.

  7. Перейдите вперед, чтобы создать маркер доступа на уровне учетной записи.

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

  1. В адресной строке веб-браузера перейдите по следующему URL-адресу. Для удобочитаемости добавлены разрывы строк. URL-адрес не должен содержать эти разрывы строк.

    В следующем URL-адресе замените следующее:

    • Замените <databricks-instance> на имя экземпляра рабочей области Azure Databricks, например adb-1234567890123456.7.azuredatabricks.net.
    • Напримерhttp://localhost:8020, замените <redirect-url> URL-адрес перенаправления на локальный компьютер.
    • Замените <state> некоторой строкой обычного текста, которую можно использовать для проверки целостности кода авторизации.
    • Замените <code-challenge> вызов кода, созданный на шаге 1.
    https://<databricks-instance>/oidc/v1/authorize
    ?client_id=databricks-cli
    &redirect_uri=<redirect-url>
    &response_type=code
    &state=<state>
    &code_challenge=<code-challenge>
    &code_challenge_method=S256
    &scope=all-apis+offline_access
    
  2. При появлении запроса следуйте инструкциям на экране, чтобы войти в рабочую область Azure Databricks.

  3. Скопируйте код авторизации в адресной строке веб-браузера. Код авторизации — это полная строка символов между code= url-адресом и & символом. Например, код авторизации в следующем URL-адресе:dcod...7fe6

    http://localhost:8020/?code=dcod...7fe6&state=<state>
    

    Необходимо проверить целостность этого кода авторизации, визуально убедившись, что <state> значение в этом URL-адресе ответа соответствует state значению, предоставленному в URL-адресе запроса. Если значения отличаются, этот код авторизации не следует использовать, так как он может быть скомпрометирован.

Шаг 3. Создание маркера доступа OAuth с помощью кода авторизации

Код авторизации OAuth на предыдущем шаге используется для создания маркера доступа OAuth Azure Databricks, как показано ниже.

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

  1. Используйте клиент, например curl код авторизации на уровне учетной записи, чтобы создать маркер доступа на уровне учетной записи OAuth. В следующем curl вызове замените следующие заполнители:

    • Замените <account-id> идентификатор учетной записи на шаге 2.
    • Замените <redirect-url> URL-адрес перенаправления на шаге 2.
    • Замените <code-verifier> средство проверки кода, созданное на шаге 1.
    • Замените <authorization-code> код авторизации на уровне учетной записи, созданный на шаге 2.
    curl --request POST \
    https://accounts.azuredatabricks.net/oidc/accounts/<account-id>/v1/token \
    --data "client_id=databricks-cli" \
    --data "grant_type=authorization_code" \
    --data "scope=all-apis offline_access" \
    --data "redirect_uri=<redirect-url>" \
    --data "code_verifier=<code-verifier>" \
    --data "code=<authorization-code>"
    
  2. В ответе скопируйте маркер доступа на уровне учетной записи OAuth. Маркер доступа — это полная строка символов в объекте access_token . Например, маркер доступа в следующем ответе:eyJr...Dkag

    {
      "access_token": "eyJr...Dkag",
      "refresh_token": "doau...f26e",
      "scope": "all-apis offline_access",
      "token_type": "Bearer",
      "expires_in": 3600
    }
    

    Срок действия этого маркера доступа истекает через час. Чтобы создать новый маркер доступа, повторите эту процедуру на шаге 1.

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

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

  1. Используйте клиент, например curl код авторизации на уровне рабочей области, чтобы создать маркер доступа на уровне рабочей области. В следующем curl вызове замените следующие заполнители:

    • Замените <databricks-instance> на имя экземпляра рабочей области Azure Databricks, например adb-1234567890123456.7.azuredatabricks.net.
    • Замените <redirect-url> URL-адрес перенаправления на шаге 2.
    • Замените <code-verifier> средство проверки кода, созданное на шаге 1.
    • Замените <authorization-code> код авторизации на уровне рабочей области, созданный на шаге 2.
    curl --request POST \
    https://<databricks-instance>/oidc/v1/token \
    --data "client_id=databricks-cli" \
    --data "grant_type=authorization_code" \
    --data "scope=all-apis offline_access" \
    --data "redirect_uri=<redirect-url>" \
    --data "code_verifier=<code-verifier>" \
    --data "code=<authorization-code>"
    
  2. В ответе скопируйте маркер доступа на уровне рабочей области OAuth. Маркер доступа — это полная строка символов в объекте access_token . Например, маркер доступа в следующем ответе:eyJr...Dkag

    {
      "access_token": "eyJr...Dkag",
      "refresh_token": "doau...f26e",
      "scope": "all-apis offline_access",
      "token_type": "Bearer",
      "expires_in": 3600
    }
    

    Срок действия этого маркера доступа истекает через час. Чтобы создать новый маркер доступа, повторите эту процедуру на шаге 1.

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

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

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

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

  • Замените <oauth-access-token> маркер доступа OAuth на уровне учетной записи.
  • Замените <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 на уровне рабочей области

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

  • Замените <oauth-access-token> маркер доступа OAuth на уровне учетной записи или рабочей области.
  • Замените <databricks-instance> на имя экземпляра рабочей области Azure Databricks, например adb-1234567890123456.7.azuredatabricks.net.
export OAUTH_TOKEN=<oauth-access-token>

curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
"https://<databricks-instance>/api/2.0/clusters/list"