Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
На этой странице объясняется, как авторизовать доступ пользователей к ресурсам 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 команду на вкладке ИНТЕРФЕЙСА командной строки с параметрами рабочих областей или учетных записей. Эти команды создают и кэшируют необходимый маркер .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 команду на вкладке ИНТЕРФЕЙСА командной строки с параметрами рабочих областей или учетных записей. Эти команды создают и кэшируют необходимый маркер .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 команду на вкладке ИНТЕРФЕЙСА командной строки с параметрами рабочих областей или учетных записей. Эти команды создают и кэшируют необходимый маркер .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 вручную, начните с создания средства проверки кода и соответствующего запроса кода. Чтобы получить код авторизации, приведенный на шаге 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.
Скопируйте код авторизации из адресной строки браузера. Это значение после
code=и до&в URL-адресе перенаправления:http://localhost:8020/?code=dcod...7fe6&state=<state>Убедитесь, что
stateзначение соответствует первоначально предоставленному значению. Если это не так, удалите код.Продолжайте создавать маркер доступа на уровне учетной записи.
Создание кода авторизации на уровне рабочей области
В браузере перейдите по URL-адресу со следующими заменами:
-
<databricks-instance>: ваше<databricks-instance>имя экземпляра рабочей области Azure Databricks, напримерadb-1234567890123456.7.azuredatabricks.net -
<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.
Скопируйте код авторизации из адресной строки браузера. Это значение после
code=и до&в URL-адресе перенаправления: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, напримерadb-1234567890123456.7.azuredatabricks.net -
<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"