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


Авторизация интерактивного доступа к ресурсам Azure Databricks с помощью учетной записи пользователя с помощью OAuth

В этом разделе приведены инструкции и сведения о авторизации доступа к ресурсам Azure Databricks при интерактивном выполнении команд Azure Databricks CLI или вызове REST API Azure Databricks.

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

Для получения подробных сведений см. в разделе Авторизация доступа к ресурсам Azure Databricks.

Каковы параметры авторизации и проверки подлинности при доступе к ресурсам Azure Databricks?

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

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

Azure Databricks поддерживает два способа авторизации доступа для учетной записи пользователя с помощью OAuth:

  • В основном автоматически с помощью поддержки унифицированной проверки подлинности клиента Databricks. Используйте этот упрощенный подход, если вы используете определенные пакеты SDK Для Azure Databricks (например, пакет SDK Для Databricks Terraform) и средства. Поддерживаемые средства и пакеты SDK перечислены в единой проверке подлинности клиента Databricks.
  • Вручную путем создания пары проверки и вызова кода OAuth и кода авторизации и создания начального маркера OAuth, который будет предоставлен в конфигурации. Используйте этот подход, если вы не используете API, поддерживаемый унифицированной проверкой подлинности клиента Databricks. Дополнительные сведения см. в статье" Создание и использование маркеров доступа для проверки подлинности OAuth на компьютере (U2M).

интерактивная авторизация пользователей с помощью унифицированной проверки подлинности клиента Databricks

Примечание.

Прежде чем приступить к настройке авторизации, просмотрите разрешения ACL для определенной категории операций, которые будут выполняться в объектах рабочей области, и определите, имеет ли учетная запись необходимый уровень доступа. Дополнительные сведения см . в списках управления доступом.

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

Среда

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

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

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

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

  • DATABRICKS_HOST, установите значение URL-адреса 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>

Для операций на уровне рабочей области задайте следующие значения в .databrickscfg файле. В этом случае узел является URL-адресом Azure Databricks

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

CLI

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

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

Дополнительные сведения см. в Databricks CLI для OAuth авторизации.

Connect

Примечание.

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

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 с помощью интерфейса командной строки Databricks.

Terraform

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

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

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 с hostaccount_id уже заданными полями, можно заменить --host <account-console-url> --account-id <account-id> на --profile <profile-name>него.

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

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

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

provider "databricks" {
  alias = "account"
}

Для прямой настройки задайте provider с помощью следующей конфигурации. Замените заполнители retrieve- собственной реализацией, чтобы получить значения из консоли или другого хранилища конфигурации, например HashiCorp Vault. См. также , поставщик хранилища). В этом примере вы можете установить account_id в URL-адрес консоли вашей учетной записи Azure Databricks .

provider "databricks" {
  alias      = "account"
  host       = <retrieve-account-console-url>
  account_id = <retrieve-account-id>
}

Настройка операций на уровне рабочей области Databricks

databricks auth login --host <workspace-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 файле перезаписан.

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

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

  provider "databricks" {
  alias = "workspace"
}

Для прямой конфигурации (замените заполнители retrieve собственной реализацией, чтобы получить значения из консоли или другого хранилища конфигурации, например HashiCorp Vault. См. также поставщик хранилища). В этом случае узел является URL-адресом Azure Databricks

provider "databricks" {
  alias = "workspace"
  host  = <retrieve-workspace-url>
}

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

Python

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

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

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 с hostaccount_id уже заданными полями, можно заменить --host <account-console-url> --account-id <account-id> на --profile <profile-name>него.

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

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

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

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

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, аналогичный одному из следующих фрагментов кода:

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

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

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

from databricks.sdk import WorkspaceClient

w = WorkspaceClient(host = retrieveWorkspaceUrl())
# ...

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

Java

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

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

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 с hostaccount_id уже заданными полями, можно заменить --host <account-console-url> --account-id <account-id> на --profile <profile-name>него.

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

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

Для выполнения авторизации по умолчанию с использованием унифицированной аутентификации клиента 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());
AccountClient a = new AccountClient(cfg);
// ...

Настройка операций на уровне рабочей области Databricks

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

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

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

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

Go

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

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

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 с hostaccount_id уже заданными полями, можно заменить --host <account-console-url> --account-id <account-id> на --profile <profile-name>него.

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

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

Для авторизации по умолчанию с помощью унифицированной проверки подлинности клиента 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(),
}))
// ...

Настройка операций на уровне рабочей области Databricks

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

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)

Примечание.

Этот раздел предоставляется для пользователей с сторонними инструментами или службами, которые не работают со стандартом унифицированной проверки подлинности клиента Databricks.

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

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

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

Примечание.

Хотя технически можно использовать незакодированные строки обычного текста для проверки кода и проблемы кода, 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> скопированный идентификатор учетной записи.
    • Например<redirect-url>, замените http://localhost:8020 URL-адрес перенаправления на локальный компьютер.
    • Замените <state> некоторой строкой обычного текста, которую можно использовать для проверки целостности кода авторизации.
    • Замените <code-challenge> вызов кода, созданный на шаге 1.
    https://accounts.azuredatabricks.net/oidc/accounts/<account-id>/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
    
  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.
    • Например<redirect-url>, замените http://localhost:8020 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"