Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
На этой странице объясняется, как авторизовать доступ пользователей к ресурсам Azure Databricks при использовании ИНТЕРФЕЙСА командной строки Databricks или REST API Azure Databricks.
Azure Databricks использует OAuth 2.0 в качестве предпочтительного протокола для авторизации пользователей и проверки подлинности за пределами пользовательского интерфейса. Единая проверка подлинности клиента автоматизирует создание и обновление токенов. После входа пользователя и предоставления согласия OAuth выдает маркер доступа для интерфейса командной строки, пакета SDK или другого средства, используемого от имени пользователя. Каждый маркер доступа действителен в течение одного часа, после чего новый маркер автоматически запрашивается.
На этой странице авторизация ссылается на использование OAuth для предоставления доступа к ресурсам Azure Databricks, а проверка подлинности относится к проверке учетных данных через маркеры доступа.
Дополнительные сведения см. в статье "Авторизация доступа к ресурсам Azure Databricks".
Способы авторизации доступа к ресурсам Azure Databricks
Azure Databricks поддерживает два способа авторизации учетных записей пользователей с помощью OAuth:
Автоматически (рекомендуется): Используйте единую проверку подлинности , если вы работаете с поддерживаемыми инструментами и пакетами SDK, такими как пакет SDK для Azure Databricks Terraform. Этот подход обрабатывает создание и обновление токенов автоматически.
Вручную: Создайте средство проверки кода и челлендж, а затем обменивайте их на токен OAuth. Используйте этот метод, если средство не поддерживает единую проверку подлинности. Дополнительные сведения см. в разделе "Создание маркеров доступа OAuth U2M вручную".
Автоматическая авторизация с унифицированной проверкой подлинности
Примечание.
Перед настройкой авторизации просмотрите разрешения ACL для типа операций рабочей области, которые вы планируете выполнять, и убедитесь, что у вашей учетной записи есть необходимый уровень доступа. Дополнительные сведения см. в списках управления доступом.
Чтобы выполнить авторизацию OAuth с помощью пакетов SDK Databricks и средств, поддерживающих единую проверку подлинности, интегрируйте следующие компоненты в коде:
Окружающая среда
Сведения об использовании переменных среды для определенного типа проверки подлинности Azure Databricks с помощью инструмента или пакета SDK см. в статье "Авторизация доступа к ресурсам Azure Databricks " или документации по средству или пакету SDK. См. также переменные среды и поля для единой проверки подлинности и приоритет метода проверки подлинности.
Для операций на уровне учетной записи задайте следующие переменные среды:
-
DATABRICKS_HOST, укажите значение URL-адреса консоли вашей учетной записи Azure Databricks,https://accounts.azuredatabricks.net. DATABRICKS_ACCOUNT_ID
Для операций на уровне рабочей области задайте следующие переменные среды:
, установите для значения 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 команду со следующими параметрами:
- Для операций на уровне учетной записи.
--host https://accounts.cloud.databricks.com --account-id <account-id> - Для операций на уровне рабочей области,
--host <workspace-url>.
Затем следуйте инструкциям в веб-браузере, чтобы войти в учетную запись Azure Databricks или рабочую область.
Дополнительные сведения см. в Databricks CLI для OAuth авторизации.
VS Code
Для расширения Databricks для Visual Studio Code выполните действия, описанные в разделе "Настройка авторизации для расширения Databricks для Visual Studio Code".
Соединить
Проверка подлинности OAuth U2M поддерживается в Databricks Connect для Python, начиная с Databricks Runtime 13.1 и для Scala, начиная с Databricks Runtime 13.3 LTS.
Для Databricks Connect можно выполнить следующие действия:
-
Используйте профиль конфигурации: Задайте значения уровня рабочей области в
.databrickscfgфайле, как описано на вкладке "Профиль ". Также задайте URL-адрес экземпляраcluster_idрабочей области. -
Используйте переменные среды: Задайте те же значения, что и на вкладке "Среда ". Также задайте URL-адрес экземпляра
DATABRICKS_CLUSTER_IDрабочей области.
Значения в .databrickscfg имеют приоритет перед переменными среды.
Сведения об инициализации Databricks Connect с этими параметрами см. в разделе "Конфигурация вычислений для Databricks Connect".
Терраформирование
Перед применением конфигурации Terraform необходимо выполнить одну из databricks auth login команд на вкладке CLI в зависимости от того, использует ли конфигурация рабочую область или операции учетной записи. Эти команды создают и кэшируют необходимый маркер .databricks/token-cache.json OAuth в домашней папке пользователя.
Операции на уровне учетной записи
Для проверки подлинности по умолчанию:
provider "databricks" {
alias = "account"
}
Для прямой конфигурации:
provider "databricks" {
alias = "account"
host = <retrieve-account-console-url>
account_id = <retrieve-account-id>
}
Замените заполнители retrieve- собственной реализацией, чтобы получить значения из консоли или другого хранилища конфигурации, например HashiCorp Vault. См. также поставщик хранилища. В этом примере можно задать account_id URL-адрес консоли учетной записи Azure Databricks.
Операции уровня рабочей области
Для проверки подлинности по умолчанию:
provider "databricks" {
alias = "workspace"
}
Для прямой конфигурации:
provider "databricks" {
alias = "workspace"
host = <retrieve-workspace-url>
}
Питон
Перед запуском кода необходимо выполнить команду databricks auth login на вкладке CLI с параметрами операций рабочей области или учетной записи. Эти команды создают и кэшируют необходимый маркер .databricks/token-cache.json OAuth в домашней папке пользователя.
Операции на уровне учетной записи
Для проверки подлинности по умолчанию:
from databricks.sdk import AccountClient
a = AccountClient()
# ...
Для прямой конфигурации:
from databricks.sdk import AccountClient
a = AccountClient(
host = retrieveAccountConsoleUrl(),
account_id = retrieveAccountId()
)
# ...
Замените заполнители retrieve собственной реализацией, чтобы извлечь значения из консоли или другого хранилища конфигурации, например, Azure KeyVault.
Операции уровня рабочей области
Для проверки подлинности по умолчанию:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
# ...
Для прямой конфигурации:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient(host = retrieve_workspace_url())
# ...
Дополнительные сведения о проверке подлинности с помощью средств Azure Databricks и пакетов SDK, использующих Python и реализующих унифицированную проверку подлинности Databricks, см. в следующем разделе:
- Настройка клиента Databricks Connect для Python
- Настройка авторизации расширения Databricks для Visual Studio Code
- Аутентификация SDK Databricks для Python с помощью учетной записи или рабочей области Azure Databricks
Ява
Перед запуском кода необходимо выполнить команду databricks auth login на вкладке CLI с параметрами операций рабочей области или учетной записи. Эти команды создают и кэшируют необходимый маркер .databricks/token-cache.json OAuth в домашней папке пользователя.
Операции на уровне учетной записи
Для проверки подлинности по умолчанию:
import com.databricks.sdk.AccountClient;
// ...
AccountClient a = new AccountClient();
// ...
Для прямой конфигурации:
import com.databricks.sdk.AccountClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
.setHost(retrieveAccountConsoleUrl())
.setAccountId(retrieveAccountId());
AccountClient a = new AccountClient(cfg);
// ...
Замените заполнители retrieve собственной реализацией, чтобы извлечь значения из консоли или другого хранилища конфигурации, например, Azure KeyVault.
Операции уровня рабочей области
Для проверки подлинности по умолчанию:
import com.databricks.sdk.WorkspaceClient;
// ...
WorkspaceClient w = new WorkspaceClient();
// ...
Для прямой конфигурации:
import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
.setHost(retrieveWorkspaceUrl())
WorkspaceClient w = new WorkspaceClient(cfg);
// ...
Дополнительные сведения об авторизации и проверке подлинности с помощью средств Azure Databricks и пакетов SDK, использующих Java и реализующих унифицированную проверку подлинности Databricks, см. в следующем разделе:
- Настройка клиента Databricks Connect для Scala (использует пакет SDK Databricks для Java для проверки подлинности)
- Авторизуйте Databricks SDK для Java с помощью вашей учетной записи или рабочей области Azure Databricks
Вперёд
Перед запуском кода необходимо выполнить команду databricks auth login на вкладке CLI с параметрами операций рабочей области или учетной записи. Эти команды создают и кэшируют необходимый маркер .databricks/token-cache.json OAuth в домашней папке пользователя.
Операции на уровне учетной записи
Для проверки подлинности по умолчанию:
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient())
// ...
Для прямой конфигурации:
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
Host: retrieveAccountConsoleUrl(),
AccountId: retrieveAccountId(),
}))
// ...
Замените заполнители retrieve собственной реализацией, чтобы извлечь значения из консоли или другого хранилища конфигурации, например, Azure KeyVault.
Операции уровня рабочей области
Для проверки подлинности по умолчанию:
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient())
// ...
Для прямой конфигурации:
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 . Если вам нужно вручную создавать, обновлять или использовать маркеры OAuth Azure Databricks для проверки подлинности OAuth U2M, выполните действия, описанные в этом разделе.
Шаг 1. Создание средства проверки кода и вызов
Чтобы создать маркеры доступа OAuth U2M вручную, начните с создания code verifier и соответствующего code challenge. Вам нужно будет использовать задание на шаге 2, чтобы получить код авторизации, и средство проверки на шаге 3, чтобы обменять этот код на токен доступа.
Примечание.
Следуйте стандарту OAuth PKCE:
- Верификатор кода — это криптографически случайная строка (43–128 символов), использующая символы
A–Z,a–z,0–9,-._~. - Проблема кода — это хэш SHA256 в кодировке Base64 проверяющего сервера.
Дополнительные сведения см. в разделе "Запрос авторизации".
Следующий скрипт Python генерирует верификатор и запрос. Хотя их можно использовать несколько раз, Azure Databricks рекомендует создавать новую пару каждый раз при создании маркеров доступа вручную.
import hashlib, base64, secrets, string
# Allowed characters for the code verifier, per PKCE spec
allowed_chars = string.ascii_letters + string.digits + "-._~"
# Generate a secure code verifier (43–128 characters)
code_verifier = ''.join(secrets.choice(allowed_chars) for _ in range(64))
# Create the SHA256 hash of the code verifier
sha256_hash = hashlib.sha256(code_verifier.encode()).digest()
# Base64-url-encode the hash and strip any trailing '=' padding
code_challenge = base64.urlsafe_b64encode(sha256_hash).decode().rstrip("=")
# Output values
print(f"code_verifier: {code_verifier}")
print(f"code_challenge: {code_challenge}")
Шаг 2. Создание кода авторизации
Чтобы получить маркер доступа OAuth Для Azure Databricks, сначала необходимо создать код авторизации OAuth. Этот код истекает сразу после использования. Код можно создать на уровне учетной записи или рабочей области:
- Уровень учетной записи: Используйте для вызова REST API уровня учетной записи и рабочей области во всех рабочих областях, к которым может получить доступ пользователь.
- Уровень рабочей области: Используется для вызова REST API в одной рабочей области.
Примечание.
Эти примеры используются databricks-cli в качестве идентификатора клиента. Если вы не используете встроенные инструменты Azure Databricks, такие как CLI или пакеты SDK, необходимо активировать пользовательское приложение OAuth и использовать его client_id в ваших запросах. См. статью "Включить или отключить партнерские приложения OAuth".
Создание кода авторизации на уровне учетной записи
Найдите идентификатор учетной записи.
В браузере перейдите по URL-адресу со следующими заменами:
-
<account-id>: идентификатор учетной записи Azure Databricks -
<redirect-url>: URI локального перенаправления (например,http://localhost:8020) -
<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-
Войдите при появлении запроса на доступ к учетной записи Azure Databricks.
После входа браузер перейдет по URL-адресу перенаправления. Если на данном узле и порту (например,
http://localhost:8020) ничего не прослушивает, то на странице будет показана ошибка подключения, что является ожидаемым. Скопируйте код авторизации из адресной строки. Это подстрока послеcode=и до следующего&в строке запроса.http://localhost:8020/?code=dcod...7fe6&state=<state>Убедитесь, что
stateзначение соответствует первоначально предоставленному значению. Если это не так, удалите код.Продолжайте создавать маркер доступа на уровне учетной записи.
Создание кода авторизации на уровне рабочей области
В браузере перейдите по URL-адресу со следующими заменами:
-
<databricks-instance>: ваше<databricks-instance>имя экземпляра пространства Azure Databricks, например -
<redirect-url>: локальное перенаправление (например,http://localhost:8020) -
<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.
После входа браузер перейдет по URL-адресу перенаправления. Если на данном узле и порту (например,
http://localhost:8020) ничего не прослушивает, то на странице будет показана ошибка подключения, что является ожидаемым. Скопируйте код авторизации из адресной строки. Это подстрока послеcode=и до следующего&в строке запроса.http://localhost:8020/?code=dcod...7fe6&state=<state>Убедитесь, что
stateзначение соответствует первоначально предоставленному значению. Если это не так, удалите код.Перейдите к созданию маркера доступа на уровне рабочей области.
Шаг 3: Обменяйте код авторизации на токен доступа
Чтобы обменять код авторизации на токен доступа OAuth для Azure Databricks, выберите соответствующий уровень доступа:
- Уровень учетной записи: Используйте для вызова интерфейсов REST API уровня учетной записи и рабочей области во всех рабочих областях, к которые пользователь может получить доступ.
- Уровень рабочей области: Используется для вызова REST API в одной рабочей области.
Создать маркер доступа на уровне учетной записи
Используйте
curlдля преобразования кода авторизации на уровне учетной записи в токен доступа OAuth.Замените следующее в запросе:
-
<account-id>: идентификатор учетной записи Azure Databricks -
<redirect-url>: URL-адрес перенаправления из предыдущего шага -
<code-verifier>: средство проверки, созданное ранее -
<authorization-code>: код авторизации из предыдущего шага
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>"-
access_tokenСкопируйте значение из ответа. Рассмотрим пример.{ "access_token": "eyJr...Dkag", "refresh_token": "doau...f26e", "scope": "all-apis offline_access", "token_type": "Bearer", "expires_in": 3600 }Маркер действителен в течение одного часа.
Перейдите к шагу 4. Вызов REST API Azure Databricks.
Создание маркера доступа на уровне рабочей области
Используйте
curlдля обмена кодом авторизации уровня рабочей области на маркер доступа OAuth.Замените следующее в запросе:
-
<databricks-instance>: ваше<databricks-instance>имя экземпляра пространства Azure Databricks, например -
<redirect-url>: URL-адрес перенаправления из предыдущего шага -
<code-verifier>: средство проверки, созданное ранее -
<authorization-code>: код авторизации на уровне рабочей области
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>"-
access_tokenСкопируйте значение из ответа. Рассмотрим пример.{ "access_token": "eyJr...Dkag", "refresh_token": "doau...f26e", "scope": "all-apis offline_access", "token_type": "Bearer", "expires_in": 3600 }Маркер действителен в течение одного часа.
Шаг 4. Вызов REST API Azure Databricks
Используйте токен доступа для вызова REST API уровня учетной записи или уровня рабочей области в зависимости от его области действия. Чтобы вызвать API уровня учетной записи, пользователь Azure Databricks должен быть администратором учетной записи.
Пример запроса 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"
Управление согласием OAuth
Во время потока авторизации OAuth U2M браузер может отобразить экран согласия с просьбой утвердить области, запрошенные приложением. Вы можете просмотреть или отозвать согласие, уже предоставленное.
Чтобы просмотреть или отозвать согласие, вам потребуется идентификатор интеграции приложения. Если приложение является приложением Databricks, получите идентификатор из поля oauth2_app_client_id, вызвав REST API "Получить приложение". Сведения о настройке областей для приложений Databricks см. в статье "Добавление областей в приложение". Для других приложений обратитесь к администратору учетной записи.
Чтобы просмотреть области, утвержденные для приложения, выполните следующие действия.
curl --request GET \
--header "Authorization: Bearer $OAUTH_TOKEN" \
"https://<databricks-instance>/api/2.0/oauth-app-integrations/<app-integration-id>/user-consent/me"
Чтобы отозвать согласие, предоставленное приложению, выполните следующие действия.
curl --request DELETE \
--header "Authorization: Bearer $OAUTH_TOKEN" \
"https://<databricks-instance>/api/2.0/oauth-app-integrations/<app-integration-id>/user-consent/me"
Замените следующее: