Проверка подлинности пользователей и компьютеров 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
Для операций на уровне рабочей области задайте следующие переменные среды:
DATABRICKS_HOST
, установите значение URL-адреса azure Databricks для каждой рабочей области, напримерhttps://adb-1234567890123456.7.azuredatabricks.net
.
Профиль
Создайте или определите профиль конфигурации 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.
--host <account-console-url> --account-id <account-id>
- Для операций на уровне рабочей области Azure Databricks.
--host <workspace-url>
После выполнения этой команды следуйте инструкциям в веб-браузере, чтобы войти в учетную запись 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
файле, см. одно из следующих элементов:
- Сведения о Python см. в разделе "Настройка свойств подключения для Python".
- Сведения о Scala см. в разделе "Настройка свойств подключения для Scala".
VS Code
Для расширения Databricks для Visual Studio Code сделайте следующее:
- В области "Конфигурация" нажмите кнопку "Настройка Databricks".
- В палитре команд для узла Databricks введите URL-адрес рабочей области, например
https://adb-1234567890123456.7.azuredatabricks.net
, и нажмите клавишуEnter
. - Выберите OAuth (пользователь на компьютер).
- Выполните инструкции на экране в веб-браузере, чтобы завершить проверку подлинности с помощью учетной записи 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_id
host
уже заданными полями, можно заменить --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, см. в следующем разделе:
- Настройка клиента Databricks Connect для Python
- Настройка проверки подлинности для расширения Databricks для VS Code
- Проверка подлинности пакета SDK Databricks для Python с помощью учетной записи Или рабочей области Azure 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_id
host
уже заданными полями, можно заменить --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, см. в следующем разделе:
- Настройка клиента Databricks Connect для Scala (клиент Databricks Connect для Scala использует включенный пакет SDK Databricks для Java для проверки подлинности)
- Проверка подлинности пакета SDK Databricks для Java с помощью учетной записи Или рабочей области Azure 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_id
host
уже заданными полями, можно заменить --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-z
0-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 или на уровне рабочей области, как показано ниже.
- Чтобы вызвать ИНТЕРФЕЙСы REST API уровня учетной записи и рабочей области на уровне рабочей области в учетных записях и рабочих областях, к которым имеет доступ учетная запись Пользователя Azure Databricks, создайте код авторизации на уровне учетной записи.
- Чтобы вызвать ИНТЕРФЕЙСы REST API в пределах одной рабочей области, к которым у учетной записи пользователя есть доступ, можно создать код авторизации на уровне рабочей области только для этой рабочей области.
Создание кода авторизации на уровне учетной записи
Войдите в консоль учетной записи с правами администратора учетных записей.
Щелкните стрелку вниз рядом с именем пользователя в правом верхнем углу.
Скопируйте идентификатор учетной записи.
В адресной строке веб-браузера перейдите по следующему 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
- Замените
При появлении запроса следуйте инструкциям на экране, чтобы войти в учетную запись Azure Databricks.
Скопируйте код авторизации в адресной строке веб-браузера. Код авторизации — это полная строка символов между
code=
url-адресом и&
символом. Например, код авторизации в следующем URL-адресе:dcod...7fe6
http://localhost:8020/?code=dcod...7fe6&state=<state>
Необходимо проверить целостность этого кода авторизации, визуально убедившись, что
<state>
значение в этом URL-адресе ответа соответствуетstate
значению, предоставленному в URL-адресе запроса. Если значения отличаются, этот код авторизации не следует использовать, так как он может быть скомпрометирован.Перейдите вперед, чтобы создать маркер доступа на уровне учетной записи.
Создание кода авторизации на уровне рабочей области
В адресной строке веб-браузера перейдите по следующему 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
- Замените
При появлении запроса следуйте инструкциям на экране, чтобы войти в рабочую область Azure Databricks.
Скопируйте код авторизации в адресной строке веб-браузера. Код авторизации — это полная строка символов между
code=
url-адресом и&
символом. Например, код авторизации в следующем URL-адресе:dcod...7fe6
http://localhost:8020/?code=dcod...7fe6&state=<state>
Необходимо проверить целостность этого кода авторизации, визуально убедившись, что
<state>
значение в этом URL-адресе ответа соответствуетstate
значению, предоставленному в URL-адресе запроса. Если значения отличаются, этот код авторизации не следует использовать, так как он может быть скомпрометирован.
Шаг 3. Создание маркера доступа OAuth с помощью кода авторизации
Код авторизации OAuth на предыдущем шаге используется для создания маркера доступа OAuth Azure Databricks, как показано ниже.
- Чтобы вызвать REST API уровня учетной записи и рабочей области в учетных записях и рабочих областях, к которым имеет доступ учетная запись пользователя Azure Databricks, используйте код авторизации на уровне учетной записи для создания маркера доступа на уровне учетной записи.
- Чтобы вызвать ИНТЕРФЕЙСы REST API в пределах одной рабочей области, к которым имеет доступ ваша учетная запись пользователя, можно использовать код авторизации на уровне рабочей области для создания маркера доступа на уровне рабочей области только для этой рабочей области.
Создание маркера доступа на уровне учетной записи
Используйте клиент, например
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>"
- Замените
В ответе скопируйте маркер доступа на уровне учетной записи 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.
Создание маркера доступа на уровне рабочей области
Используйте клиент, например
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>"
- Замените
В ответе скопируйте маркер доступа на уровне рабочей области 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"
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по