Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вы можете вызвать приложение Databricks, которое предоставляет HTTP-API (например, приложение FastAPI или Gradio) с помощью проверки подлинности маркера носителя OAuth 2.0. Этот метод работает из локальной среды разработки, внешних приложений и других Azure Databricks приложений.
Замечание
Этот метод применяется только к приложениям, предоставляющим API-интерфейсы или конечные точки (доступные с помощью /api/ маршрутов). Для приложений, предоставляющих только пользовательский интерфейс или фоновую обработку, нельзя использовать аутентификацию по токену.
Требования
Чтобы подключиться к приложению Databricks с помощью токен-аутентификации, необходимо соответствовать следующим требованиям:
- Приложение должно предоставлять по крайней мере одну конечную точку API, доступную с помощью
/api/маршрутов. - У вас должно быть
CAN USEразрешение на приложение. См. настройку разрешений для приложения Databricks. - Вы должны иметь возможность создать маркер доступа Azure Databricks с помощью одного из поддерживаемых методов проверки подлинности.
Методы аутентификации
Замечание
Невозможно напрямую обратиться к приложению Databricks с использованием токена Azure Entra ID. Для федерации токенов требуется выполнение обмена токенами на стороне клиента, который Azure Databricks не выполняет на стороне сервера. Чтобы использовать маркеры Azure Entra ID для проверки подлинности, необходимо сначала обменять их на токены OAuth. Произведите аутентификацию с помощью токена поставщика удостоверений.
Выберите метод проверки подлинности, соответствующий сценарию подключения:
Локальная разработка
Для подключения из локальной среды разработки используйте интерфейс командной строки Databricks или пакеты SDK с учетными данными пользователя.
Войдите в систему с помощью интерфейса командной строки:
databricks auth login --host https://<workspace-url> --profile my-envAzure Databricks рекомендует использовать проверку подлинности OAuth с помощью аутентификации пользователь-машина (U2M).
Создайте маркер доступа:
интерфейс командной строки (CLI)
databricks auth token --profile my-envPython
from databricks.sdk.core import Config config = Config(profile="my-env") token = config.oauth_token().access_token
Внешние приложения
Для программного доступа из внешних приложений используйте аутентификацию представителя услуги с учетными данными "машина-машина" (M2M). Ознакомьтесь с Авторизацией доступа учетной записи службы к Azure Databricks с помощью OAuth.
Создайте служебный принципал и получите идентификатор клиента и секретный ключ. См. Субъекты-службы.
Создайте маркер доступа с помощью пакета SDK Databricks:
from databricks.sdk import WorkspaceClient import requests # Option 1: Explicit credentials wc = WorkspaceClient( host="https://<workspace-url>", client_id="<service-principal-client-id>", client_secret="<service-principal-client-secret>" ) # Option 2: Environment variables # Set DATABRICKS_HOST, DATABRICKS_CLIENT_ID, DATABRICKS_CLIENT_SECRET wc = WorkspaceClient() # Generate Bearer token headers = wc.config.authenticate()
Из других приложений платформы Databricks
При подключении из одного приложения Databricks к другому, приложение автоматически обрабатывает аутентификацию с помощью назначенной учетной записи службы.
from databricks.sdk import WorkspaceClient
import requests
# No explicit credentials needed, uses app's service principal
wc = WorkspaceClient()
headers = wc.config.authenticate()
Из записной книжки Azure Databricks
Чтобы вызвать API приложения из записной книжки Azure Databricks, необходимо обменять внутренний токен записной книжки на токен OAuth с областью действия для аудитории, а затем использовать этот токен для запроса приложения.
Получите идентификатор клиента OAuth приложения. Получите идентификатор с помощью пакета SDK для Azure Databricks:
from databricks.sdk import WorkspaceClient w = WorkspaceClient() app_client_id = w.apps.get("<app-name>").oauth2_app_client_idОбменять токен записной книжки на аудиторно-ориентированный токен доступа.
import requests url = "https://<workspace-url>/oidc/v1/token" notebook_token = ( dbutils.notebook.entry_point.getDbutils() .notebook().getContext().apiToken().get() ) data = { "grant_type": "urn:ietf:params:oauth:grant-type:token-exchange", "subject_token": notebook_token, "subject_token_type": "urn:databricks:params:oauth:token-type:personal-access-token", "requested_token_type": "urn:ietf:params:oauth:token-type:access_token", "scope": "all-apis", "audience": app_client_id, } response = requests.post(url=url, data=data) audience_token = response.json()["access_token"]Используйте
audience_tokenкак токен типа Bearer для вызова вашего приложения. Примеры см. в разделе "Отправка запросов в приложение".
Замечание
Маркер обмена распространяется на конкретное приложение, поэтому его нельзя использовать для вызова других API-интерфейсов Azure Databricks. Параметр scope в запросе обмена маркерами должен соответствовать или быть супермножеством областей, настроенных для приложения в авторизации пользователя.
Указание областей OAuth для авторизации пользователей
Если приложение использует авторизацию пользователя, маркер доступа должен включать области, которые являются супермножеством областей, настроенных для приложения. Если токен не имеет необходимых полномочий, запросы могут завершиться ошибкой 401 или 403.
Маркер, созданный с помощью интерфейса командной строки Databricks, включает all-apis область по умолчанию, которая удовлетворяет требованиям авторизации пользователей для любого приложения:
databricks auth token --profile my-env
Чтобы запросить определенные разрешения вместо all-apis, вы можете вручную запросить токен доступа с явными разрешениями, используя настраиваемый поток OAuth. Например, следующий запрос явно запрашивает маркер доступа с областями sql, files и genie.
curl --request POST \
https://<databricks-instance>/oidc/v1/token \
--data "client_id=databricks-cli" \
--data "grant_type=authorization_code" \
--data "redirect_uri=<redirect-url>" \
--data "code_verifier=<code-verifier>" \
--data "code=<authorization-code>" \
--data "scope=sql+files+genie"
Полные инструкции см. в руководстве по созданию маркеров доступа OAuth U2M вручную.
Отправка запросов в приложение
При вызове конечных точек API вашего приложения добавьте токен Bearer в заголовок авторизации и замените <your-endpoint> реальным путем API вашего приложения.
CURL
curl "https://<app-name>-<id>.<region>.databricksapps.com/api/<your-endpoint>" \
-H "Authorization: Bearer <YOUR_TOKEN>"
Python с запросами
import requests
response = requests.get(
"https://<app-name>-<id>.<region>.databricksapps.com/api/<your-endpoint>",
headers={"Authorization": f"Bearer {token}"}
)
Python с пакетом SDK
from databricks.sdk import WorkspaceClient
import requests
wc = WorkspaceClient()
headers = wc.config.authenticate()
response = requests.get(
"https://<app-name>-<id>.<region>.databricksapps.com/api/<your-endpoint>",
headers=headers
)
Вопросы безопасности
При подключении к приложениям из локальной среды следуйте приведенным ниже рекомендациям по обеспечению безопасности.
- Никогда не встраивайте токены доступа в исходный код. Используйте переменные среды или безопасные хранилища учетных данных.
- Регулярно обновляйте маркеры, чтобы свести к минимуму риски безопасности, если они скомпрометированы.
- Избегайте регистрации маркеров доступа или конфиденциальных данных в журналах приложения.
Устранение неполадок
Если при подключении к приложению с локального компьютера возникают проблемы, попробуйте выполнить эти решения.
Сбои проверки подлинности (ошибки 401)
Проверьте выполнение следующих условий.
- Ваш токен действителен (выполните
databricks auth token --profile my-env) - Профиль правильно настроен с помощью
databricks auth login - Срок действия маркера не истек
- Ваш токен включает необходимые права доступа OAuth. Области действия токена должны быть супермножеством областей, настроенных для приложения при авторизации пользователя.
Отклонено разрешение (ошибки 403)
Проверьте выполнение следующих условий.
- У вас есть
CAN USEразрешение на приложение - Ваш токен включает необходимые права доступа OAuth. Недостаточные области действия могут привести к ошибкам 403 даже при наличии допустимых разрешений.
Приложение не найдено (ошибки 404)
Проверьте выполнение следующих условий.
- Правильные ID и URL-адрес рабочей области
- Приложение развернуто и работает
- Путь к конечной точке существует в приложении
Проблемы, связанные с подключением к сети
Проверьте выполнение следующих условий.
- Ваша сеть разрешает исходящие подключения HTTPS
- Домен
*.databricksapps.comдоступен из сети
Кроме того, проверьте, использует ли ваша организация прокси-сервер, требующий конфигурации.
Дополнительные ресурсы
Дополнительные сведения см. в следующих ресурсах:
- Руководство: подключение с локальной машины
- Руководство — подключение из внешних приложений
- Кукбука: подключение из других приложений
- Настройка разрешений для приложения Databricks
- Настройка рабочей области Databricks Apps и среды разработки
- Проверка подлинности для интерфейса командной строки Databricks
- Единая проверка подлинности Databricks