Аутентификация посредством личных токенов доступа Azure Databricks (устаревшая версия)

Azure Databricks личные маркеры доступа (PATs) позволяют аутентифицироваться к ресурсам и API на уровне рабочей области. Их можно хранить в переменных среды или в профилях конфигурации Azure Databricks. Каждый PAT действителен только для одной рабочей области, и пользователь может создавать до 600 PAT для каждой рабочей области. Azure Databricks автоматически отменяет PAT, которые не использовались в течение 90 дней.

Внимание

По возможности Databricks рекомендует использовать OAuth вместо PATS для проверки подлинности учетной записи пользователя, так как OAuth обеспечивает более надежную безопасность. Сведения о проверке подлинности с помощью учетной записи пользователя Databricks с помощью OAuth см. в статье Authorize user access to Azure Databricks with OAuth.

Вы не можете использовать персональные токены доступа для автоматизации функций Azure Databricks на уровне учетной записи. Вместо этого используйте токены Microsoft Entra ID администраторов учетных записей Azure Databricks. Azure Databricks администраторы учетных записей могут быть пользователями или служебными принципалами. Дополнительные сведения см. в разделе:

Создание личных маркеров доступа для пользователей рабочей области

Чтобы создать личный маркер доступа для пользователя рабочей области Azure Databricks, сделайте следующее:

  1. В рабочей области Azure Databricks щелкните имя пользователя в верхней строке и выберите Settings.
  2. Щелкните "Разработчик".
  3. Рядом с маркерами доступа нажмите кнопку "Управление".
  4. Нажмите кнопку "Создать новый маркер".
  5. Введите имя, которое помогает определить этот маркер позже.
  6. Задайте время существования маркера в днях. См . раздел "Задать максимальное время существования новых личных маркеров доступа".
  7. Выберите тип области и добавьте области API. Выберите BI Tools для инструментов, которые подключаются к хранилищам SQL Databricks, например Tableau или Power BI, или выберите Other API, чтобы выбрать области вручную. См. Персональные токены доступа с заданной областью.
  8. Чтобы включить автоскопирование для этого токена, включите Auto-scope tokens. Автоматическое ограничение областей действия автоматически сужает область действия токена до используемых API, временно применяя область действия all-apis в период наблюдения. Этот параметр отображается только в том случае, если администратор включил предварительную версию автоскопирования для вашего рабочего пространства, а автоскопирование применяется только к токенам со сроком действия более 30 дней. См. Автоматическое ограничение области действия для персональных токенов доступа.
  9. Нажмите кнопку "Создать".
  10. Скопируйте отображаемый маркер в безопасное расположение, а затем нажмите кнопку "Готово". Безопасно сохраните маркер и не делитесь им. Если вы потеряете его, необходимо создать новый токен.

Если вы не можете создать или использовать маркеры, администратор рабочей области может отключить маркеры или не предоставить вам разрешение. Обратитесь к администратору рабочей области или следующему:

Маркеры личного доступа с областью действия

Ограниченные личные токены доступа ограничивают разрешения токена для определенных операций API. Вместо предоставления полного доступа к рабочей области вы можете назначить одну или несколько областей API, таких как sql, unity-catalog, или scim, ограничивая, какие операции REST API может вызывать токен.

Предупреждение

Токены с областью authentication могут создавать новые токены с любой областью. Предоставьте этот доступ только токенам, которым необходимо управлять другими токенами.

Чтобы создать токен с областью действия в интерфейсе рабочей области, выберите тип области действия и добавьте области действия API при создании нового токена. Выберите BI Tools для инструментов, которые подключаются к хранилищам SQL Databricks, например Tableau или Power BI, или выберите Other API, чтобы выбрать области вручную.

Полный список областей и связанных с ними операций API см. в областях API.

Автоматическое определение личных маркеров доступа

Автоматическое ограничение области действия сужает права доступа токена только теми API, которые он фактически использует. Azure Databricks отслеживает использование API токена в течение 30 дней, затем применяет предполагаемые области действия. Автоматическое определение области действия выполняется однократно для каждого токена. В течение периода наблюдения токен сохраняет полный доступ к рабочему пространству (область all-apis видимости). Azure Databricks отправляет напоминание по электронной почте за 7 дней до принудительного применения и электронное письмо о принудительном применении, когда применяются выведенные области действия.

Элементы управления автоматическим определением области

  • Предпросмотр рабочего пространства (под управлением администратора): Администратор включает или отключает предпросмотр автоматического ограничения области действия для всего рабочего пространства из консоли аккаунта или на странице Предпросмотры рабочего пространства. См. статью "Управление предварительными версиями Azure Databricks".
  • Настройка для каждого токена (autoscope_enabled): Когда включён предпросмотр, каждый токен включается или исключается по отдельности во время создания.

Автоматическое ограничение области действия применяется только к токенам, срок службы которых превышает 30 дней. Это включает новые токены, созданные с включенным автоматическим ограничением области действия, и существующие долгоживущие токены. Для существующего соответствующего требованиям токена 30-дневный период наблюдения начинается с момента, когда администратор включает предпросмотр. Azure Databricks применяет определенные области действия в конце этого периода и отправляет напоминательное письмо за 7 дней до вступления в силу, по тому же расписанию, что и недавно созданный токен с автоограничением.

Отказаться от автоматического определения области

  • Один токен до вступления в силу: установите для токена определённые области действия в интерфейсе рабочего пространства (Настройки>Developer>Токены доступа>Управление, затем нажмите Обновить токен) или с помощью Token API (см. Обновить области действия личного токена доступа). Установка определённых областей действия навсегда прекращает автоматическую настройку областей действия для этого токена. Установка токена обратно к области видимости all-apis (пустой scopes массив) — это no-op и не прекращает автоскопирование. Чтобы сохранить токен с полным all-apis доступом, для которого никогда не применяется автоматическое назначение области действия, создайте новый токен с отключённым автоскопированием.
  • Всё рабочее пространство: попросите администратора отключить предварительную версию автоматического ограничения области действия на странице Previews. См. статью "Управление предварительными версиями Azure Databricks".

После завершения принудительного применения, автоскопирование для этого токена не запускается снова, поэтому вы можете свободно задавать его область действия, включая обратно к all-apis.

Примечание.

Отключение интерфейса рабочего пространства работает только для токена, который у вас есть. Чтобы исключить токен субъект-службы, вместо этого задайте для него области действия с помощью запроса PATCH /api/2.0/token/{token_id_sha256}.

Чтобы проверить статус автоматического определения областей действия и определённые области действия для ваших токенов, смотрите раздел «Проверка статуса автоматического определения областей действия токенов».

Создание личных маркеров доступа для субъектов-служб

Субъект-служба может самостоятельно создавать личные маркеры доступа.

  1. Выполните следующую команду, чтобы создать маркер доступа:

    databricks tokens create \
      --lifetime-seconds <lifetime-seconds> \
      -p <profile-name>
    

    Замените следующие значения:

    • <lifetime-seconds>: время существования токена в секундах, например 86400 в течение 1 дня. По умолчанию максимальное значение рабочей области (обычно 730 дней).
    • <profile-name>: профиль конфигурации с информацией об аутентификации. По умолчанию — DEFAULT.
  2. Скопируйте token_value из ответа — это маркер доступа для вашего служебного субъекта. Безопасно сохраните маркер и не делитесь им. Если вы потеряете его, необходимо создать новый токен.

Если вы не можете создать или использовать маркеры, администратор рабочей области может отключить маркеры или не предоставить вам разрешение. Обратитесь к администратору рабочей области или следующему:

Аутентификация личного токена доступа

Чтобы настроить проверку подлинности маркера личного доступа Azure Databricks, задайте следующие связанные переменные среды, .databrickscfg поля, поля Terraform или Config поля:

  • Узел Azure Databricks, указанный в качестве URL-адреса для каждой рабочей области Azure Databricks , например .
  • Маркер личного доступа Azure Databricks для учетной записи пользователя Azure Databricks.

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

Окружающая среда

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

Задайте следующие переменные среды:

  • DATABRICKS_HOST задайте для URL-адреса Azure Databricks per-workspace, например https://adb-1234567890123456.7.azuredatabricks.net.
  • DATABRICKS_TOKEN, задайте строку токена.

Профиль

Создайте или определите профиль конфигурации Azure Databricks со следующими полями в вашем файле . При создании профиля замените заполнители соответствующими значениями. Сведения об использовании профиля с инструментом или пакетом SDK см. в разделе Authorize access to Azure Databricks resources или в документации по инструменту или пакету SDK. См. также переменные среды и поля для единой проверки подлинности и приоритет метода проверки подлинности.

Задайте следующие значения в файле .databrickscfg. В этом случае хостом является URL-адрес Azure Databricks для каждой рабочей области, например https://adb-1234567890123456.7.azuredatabricks.net:

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

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

Примечание.

Следующая процедура использует Databricks CLI для создания профиля Azure Databricks configuration с именем DEFAULT. Если у вас уже есть DEFAULT профиль конфигурации, эта процедура перезапишет ваш существующий DEFAULT профиль конфигурации.

Чтобы убедиться в наличии профиля конфигурации и просмотреть его параметры, если он существует, используйте Databricks CLI для выполнения команды DEFAULT.

Чтобы создать профиль конфигурации с именем, отличным от DEFAULT, замените часть DEFAULT в --profile DEFAULT следующей команды databricks configure другим именем для профиля конфигурации.

  1. Используйте интерфейс командной строки Databricks CLI для создания профиля конфигурации Azure Databricks с именем , использующего проверку подлинности с помощью персонального токена доступа Azure Databricks. Для этого выполните следующую команду:

    databricks configure --profile DEFAULT
    
  2. Для запроса Databricks Host введите URL-адрес Azure Databricks per-workspace, например https://adb-1234567890123456.7.azuredatabricks.net.

  3. В поле запроса Просональный маркер доступа введите Azure Databricks личный маркер доступа для рабочей области.

Интерфейс командной строки (CLI)

Выполните команду databricks configure для CLI Databricks. В подсказках введите следующие настройки:

  • Узел Azure Databricks, указанный в качестве URL-адреса для каждой рабочей области Azure Databricks , например .
  • Маркер личного доступа Azure Databricks для учетной записи пользователя Azure Databricks.

Дополнительные сведения см. в разделе "Проверка подлинности маркера личного доступа" (устаревшая версия).

Подключить

Примечание.

Аутентификация с использованием токена личного доступа Azure Databricks поддерживается в следующих версиях Databricks Connect:

  • Для Python Databricks Connect совместим с Databricks Runtime 13.3 LTS и выше.
  • Для Scala, используйте Databricks Connect с Databricks Runtime версии 13.3 LTS и выше.

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

Следующая процедура создает профиль конфигурации Azure Databricks с именем DEFAULT, который перезаписывает любой существующий профиль DEFAULT. Чтобы проверить, существует ли DEFAULT профиль, выполните databricks auth env --profile DEFAULT. Если он существует, используйте другое имя профиля.

  1. Выполните следующую команду, чтобы создать профиль конфигурации Azure Databricks с именем DEFAULT, использующий аутентификацию личным токеном доступа.

    databricks configure \
      --configure-cluster \
      --profile DEFAULT
    
  2. Для запроса Databricks Host введите URL-адрес Azure Databricks per-workspace, например https://adb-1234567890123456.7.azuredatabricks.net.

  3. В поле "Персональный токен доступа" введите персональный токен доступа для вашей рабочей области.

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

Использование REST API Azure Databricks для выдачи личных маркеров доступа

Azure Databricks предоставляет конечную точку REST /api/2.0/token/create для выдачи PAT. Дополнительные сведения об API см. в разделе "Создание маркера пользователя".

В следующем примере задайте следующие значения:

  • <databricks-instance>: URL-адрес рабочей области Databricks. Например, dbc-abcd1234-5678.cloud.databricks.com.
  • <your-existing-access-token>: существующий действительный PAT (строка), имеющий разрешения на создание новых токенов.
  • <lifetime-seconds>: время существования токена в секундах.
  • <scopes>: Список областей для назначения токену или пустой массив ([]) для предоставления полного доступа к рабочему пространству (область действия all-apis). См. Персональные токены доступа с заданной областью.
curl -X POST https://<databricks-instance>/api/2.0/token/create \
-H "Authorization: Bearer <your-existing-access-token>" \
-H "Content-Type: application/json" \
-d '{
  "lifetime_seconds": <lifetime-seconds>,
  "scopes": [
    "sql",
    "authentication"
  ],
  "autoscope_enabled": true
}'

При успешном выполнении это приведёт к полезной нагрузке ответа, похожей на следующую:

{
  "token_value": "<your-newly-issued-pat>",
  "token_info": {
    "token_id": "<token-id>",
    "creation_time": <creation-timestamp>,
    "expiry_time": <expiry-timestamp>,
    "comment": "<comment>",
    "scopes": ["authentication", "sql"],
    "last_accessed_time": 0
  }
}

Укажите новый токен, полученный из ответа, в заголовке Authorization при последующих вызовах REST API Databricks. Например:

# This example uses a simple GET. For POST or other REST verbs, you may need to provide additional parameters.
curl -X GET "https://<databricks-instance>/api/2.0/<path-to-endpoint>" \
     -H "Authorization: Bearer <your-new-pat>"
import requests

headers = {
    'Authorization': 'Bearer <your-new-pat>'
}
# This example is for an HTTP GET operation.
response = requests.get('https://<databricks-instance>/api/2.0/<path-to-endpoint>', headers=headers)

Обновление разрешений личного токена доступа

Если в маркере с заданной областью отсутствует необходимая область для вызова API, запрос завершается с ошибкой, указывающей на недостающую область. Чтобы обновить области маркера, используйте конечную точку /api/2.0/token/<token_id>REST. Вызывающий токен должен иметь область действия authentication, которая позволяет управлять другими токенами. Используйте поле update_mask, чтобы указать, какие поля токена необходимо обновить.

curl -X PATCH https://<databricks-instance>/api/2.0/token/<token_id> \
-H "Authorization: Bearer <your-existing-access-token>" \
-H "Content-Type: application/json" \
-d '{
  "token": {
    "scopes": ["sql", "unity-catalog"]
  },
  "update_mask": "scopes"
}'

Чтобы предоставить токену полный доступ к рабочему пространству (all-apis scope), установите scopes на пустой массив ("scopes": []). Литеральная строка all-apis не является принятым значением области действия.

Примечание.

Azure Databricks рекомендует назначать конкретные области видимости вместо предоставления all-apis доступа. См. Автоматическое ограничение области действия для персональных токенов доступа.

Изменения области могут занять до десяти минут для распространения.

Чтобы просмотреть все доступные области, используйте GET /api/2.0/token-scopes.