Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
В этом разделе описывается, как вручную получить маркеры идентификатора Microsoft Entra для субъектов-служб.
Управляемые объекты услуг Azure Databricks непосредственно управляются в Azure Databricks. Управляемые объекты службы Microsoft Entra ID управляются в Microsoft Entra ID, для чего требуются дополнительные разрешения. Databricks рекомендует использовать управляемые служебные учетные записи Azure Databricks для большинства вариантов использования. Однако Databricks рекомендует использовать управляемые сервисные принципы Microsoft Entra ID в случаях, когда необходимо аутентифицироваться с Azure Databricks и другими ресурсами Azure одновременно.
Для создания управляемого объекта-службы Azure Databricks вместо управляемого объекта-службы Microsoft Entra ID см. раздел «Субъекты-службы».
Databricks не рекомендует вручную создавать токены Microsoft Entra ID для учетных записей служб Microsoft Entra. Это связано с тем, что каждый токен идентификатора Microsoft Entra имеет короткий срок действия и обычно истекает в течение одного часа. После этого необходимо вручную создать заменяющий маркер идентификатора Microsoft Entra. Вместо этого используйте один из участвующих средств или пакетов SDK, реализующих стандарт унифицированной аутентификации клиента Databricks. Эти инструменты и пакеты SDK автоматически создают и заменяют истекшие токены Microsoft Entra ID, используя следующие типы аутентификации Databricks:
- Идентификация управляемых идентичностей Azure
- Аутентификация принципала службы MS Entra
- Проверка подлинности Azure CLI
Если у вас нет субъекта-службы, можно подготовить один из следующих наборов инструкций:
В этой статье описывается, как субъект-служба, определенный в идентификаторе Microsoft Entra, также может выступать в качестве субъекта, в котором политики проверки подлинности и авторизации могут применяться в Azure Databricks. В отличие от обычных пользователей (субъектов-пользователей) субъекты-службы в рабочей области Azure Databricks могут иметь разный уровень контроля доступа.
Субъект-служба выступает в качестве роли клиента и использует поток учетных данных клиента OAuth 2.0 для авторизации доступа к ресурсам Azure Databricks.
Субъекты-службы можно управлять в Databricks или с помощью следующей процедуры из портал Azure.
Вы также можете использовать библиотеку проверки подлинности Майкрософт (MSAL) для программного получения маркера доступа идентификатора Microsoft Entra для пользователя вместо субъекта-службы. См. получение токенов идентификатора Microsoft Entra для пользователей с помощью MSAL.
Подготовка субъекта-службы на портале Azure
Войдите на портал Azure.
Замечание
Используемый портал отличается в зависимости от того, работает ли ваше приложение идентификатора Microsoft Entra в общедоступном облаке Azure или в национальном или независимом облаке. Дополнительную информацию см. в разделе Национальные облака.
Если у вас есть доступ к нескольким клиентам, подпискам или каталогам, щелкните значок Каталоги + подписки (каталог с фильтром) в верхнем меню, чтобы переключиться на каталог, в котором вы хотите создать основной объект службы.
В ресурсах, службах и документах поиска найдите и выберите идентификатор Microsoft Entra.
Нажмите кнопку +Добавить и выберите регистрацию приложения.
В поле Имя введите название для приложения.
В разделе Поддерживаемые типы учетных записей выберите учетные записи в этом каталоге организации (только один клиент).
Нажмите кнопку "Зарегистрировать".
На странице обзора страницы приложения в разделе Essentials скопируйте следующие значения:
- Идентификатор приложения (клиента)
- Идентификатор каталога (клиента)
Чтобы создать секрет клиента, в меню "Управление" щелкните " Сертификаты" и "Секреты".
Замечание
Этот секрет клиента используется для создания маркеров идентификатора Microsoft Entra для проверки подлинности субъектов-служб Microsoft Entra ID с помощью Azure Databricks. Чтобы определить, может ли средство Azure Databricks или пакет SDK использовать маркеры идентификатора Microsoft Entra, ознакомьтесь с документацией по инструменту или пакету SDK.
В разделе Секреты клиента выберите Новый секрет клиента.
В области Добавление секрета клиента в поле Описание введите описание секрета клиента.
Для Срок действия выберите срок действия секрета клиента и нажмите Добавить.
Скопируйте и сохраните значение секрета клиента в безопасном месте, так как этот секрет клиента является паролем для приложения.
Подготовка субъекта-службы к работе с помощью Azure CLI
Получение маркера доступа идентификатора Microsoft Entra с помощью REST API платформа удостоверений Майкрософт
Это важно
В этом разделе описывается, как вручную получить маркер идентификатора Microsoft Entra для субъекта-службы с помощью REST API платформа удостоверений Майкрософт.
Databricks не рекомендует вручную создавать токены Microsoft Entra ID для учетных записей служб Microsoft Entra. Это связано с тем, что каждый токен идентификатора Microsoft Entra имеет короткий срок действия и обычно истекает в течение одного часа. После этого необходимо вручную создать заменяющий маркер идентификатора Microsoft Entra. Вместо этого используйте один из участвующих средств или пакетов SDK, реализующих стандарт унифицированной аутентификации клиента Databricks. Эти инструменты и пакеты SDK автоматически создают и заменяют истекшие токены Microsoft Entra ID, используя следующие типы аутентификации Databricks:
Чтобы получить доступ к REST API Databricks с субъектом-службой, вы получите и используете маркер доступа идентификатора Microsoft Entra для субъекта-службы. Дополнительные сведения см. первый случай: запрос маркера доступа с общим секретом.
Подсказка
Вы также можете использовать Azure CLI для получения маркера доступа к идентификаторам Microsoft Entra. См. статью «Получение маркера доступа Microsoft Entra ID с помощью Azure CLI».
Соберите следующие сведения:
Параметр Описание Tenant ID
Directory (tenant) ID
для связанного приложения, зарегистрированного в Microsoft Entra ID.Client ID
Application (client) ID
для связанного приложения, зарегистрированного в Microsoft Entra ID.Client secret
Секрет Value
клиента для соответствующего приложения, зарегистрированного в Microsoft Entra ID.Используйте приведенные выше сведения вместе с curl чтобы получить токен доступа к идентификатору Microsoft Entra.
curl -X POST -H 'Content-Type: application/x-www-form-urlencoded' \ https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token \ -d 'client_id=<client-id>' \ -d 'grant_type=client_credentials' \ -d 'scope=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d%2F.default' \ -d 'client_secret=<client-secret>'
Замените:
-
<tenant-id>
с идентификатором клиента зарегистрированного приложения. -
<client-id>
с идентификатором клиента зарегистрированного приложения. -
<client-secret>
значение секрета клиента зарегистрированного приложения.
Не изменяйте значение параметра
scope
. Он представляет собой программный идентификатор для Azure Databricks (2ff814a6-3304-4ab8-85cb-cd0e6f879c1d
) вместе с областью по умолчанию (/.default
, в кодировке URL-адреса в виде%2f.default
).Рассмотрим пример.
curl -X POST -H 'Content-Type: application/x-www-form-urlencoded' \ https://login.microsoftonline.com/a1bc2d34-5e67-8f89-01ab-c2345d6c78de/oauth2/v2.0/token \ -d 'client_id=12a34b56-789c-0d12-e3fa-b456789c0123' \ -d 'grant_type=client_credentials' \ -d 'scope=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d%2F.default' \ -d 'client_secret=abc1D~Ef...2ghIJKlM3'
Маркер доступа к идентификатору Microsoft Entra находится в
access_token
значении в выходных данных вызова.-
Получение маркера доступа идентификатора Microsoft Entra с помощью Azure CLI
Это важно
В этом разделе описывается, как вручную получить маркер идентификатора Microsoft Entra для субъекта-службы с помощью Azure CLI.
Databricks не рекомендует вручную создавать токены Microsoft Entra ID для учетных записей служб Microsoft Entra. Это связано с тем, что каждый токен идентификатора Microsoft Entra имеет короткий срок действия и обычно истекает в течение одного часа. После этого необходимо вручную создать заменяющий маркер идентификатора Microsoft Entra. Вместо этого используйте один из участвующих средств или пакетов SDK, реализующих стандарт унифицированной аутентификации клиента Databricks. Эти инструменты и пакеты SDK автоматически создают и заменяют истекшие токены Microsoft Entra ID, используя следующие типы аутентификации Databricks:
- Идентификация управляемых идентичностей Azure
- Аутентификация принципала службы MS Entra
- Проверка подлинности Azure CLI
Чтобы получить доступ к REST API Databricks с субъектом-службой, вы получите и используете маркер доступа идентификатора Microsoft Entra для субъекта-службы.
Соберите следующие сведения:
Параметр Описание Tenant ID
Directory (tenant) ID
для связанного приложения, зарегистрированного в Microsoft Entra ID.Client ID
Application (client) ID
для связанного приложения, зарегистрированного в Microsoft Entra ID.Client secret
Секрет Value
клиента для соответствующего приложения, зарегистрированного в Microsoft Entra ID.Получите правильный идентификатор подписки Azure для учетной записи службы Microsoft Entra ID, если вы еще не знаете его, выполнив одно из следующих действий:
В верхней панели навигации рабочей области Azure Databricks щелкните имя пользователя и выберите портал Azure. На открывшейся странице ресурса рабочей области Azure Databricks щелкните Обзор в навигационной панели. Затем найдите поле "Идентификатор подписки ", содержащее идентификатор подписки.
Используйте Azure CLI для выполнения команды az databricks workspace list, используя параметры
--query
,-o
или--output
для сужения результатов. Заменитеadb-0000000000000000.0.azuredatabricks.net
названием экземпляра рабочей области, не включаяhttps://
. В этом примере00000000-0000-0000-0000-000000000000
после/subscriptions/
в выходных данных — это идентификатор подписки.az databricks workspace list --query "[?workspaceUrl==\`adb-0000000000000000.0.azuredatabricks.net\`].{id:id}" -o tsv # /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-rg/providers/Microsoft.Databricks/workspaces/my-ws
Если появится следующее сообщение, вы вошли в неправильного арендатора:
The subscription of '<subscription-id>' doesn't exist in cloud 'AzureCloud'.
Чтобы войти в правильного арендатора, необходимо выполнить командуaz login
еще раз, используя параметр-t
или--tenant
, чтобы указать правильный идентификатор арендатора.Вы можете получить идентификатор клиента для рабочей области Azure Databricks, выполнив команду
curl -v <per-workspace-URL>/aad/auth
, и посмотрев на вывод< location: https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000
, где00000000-0000-0000-0000-000000000000
является идентификатором клиента. См. также получение идентификаторов подписок и клиентов в портале Azure.az login -t <tenant-id>
После получения правильного идентификатора арендатора Azure, идентификатора клиента, секрета клиента и идентификатора подписки для учетной записи Microsoft Entra ID, войдите в Azure, используя Azure CLI для выполнения команды az login. Используйте параметр
--service-principal
вместе с указанием значений параметровTenant ID
(Directory (tenant) ID
),Client ID
(Application (client) ID
) иClient secret
(Value
) для связанного приложения, зарегистрированного в идентификаторе Microsoft Entra.az login \ --service-principal \ -t <Tenant-ID> \ -u <Client-ID> \ -p <Client-secret>
Убедитесь, что вы вошли в правильную подписку для субъекта-службы идентификатора Microsoft Entra ID. Для этого выполните команду az account set, используя
-s
или--subscription
параметр, чтобы указать правильный идентификатор подписки.az account set -s <subscription-id>
Создайте токен доступа Microsoft Entra ID для учетной записи службы Microsoft Entra ID, выполнив команду az account get-access-token. Используйте
--resource
опцию, чтобы указать уникальный ID ресурса для службы Azure Databricks, который является2ff814a6-3304-4ab8-85cb-cd0e6f879c1d
. Значение маркера идентификатора Microsoft Entra можно отобразить в выходных данных команды, используя параметры--query
и-o
или--output
.az account get-access-token \ --resource 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d \ --query "accessToken" \ -o tsv
Используйте токен доступа сервисного принципала Microsoft Entra для доступа к REST API Databricks
Это важно
В этом разделе описывается, как использовать curl
и токен доступа Microsoft Entra ID субъекта-службы для доступа к REST API Databricks.
Вместо этого curl
можно использовать один из участвующих средств или пакетов SDK, реализующих стандарт унифицированной проверки подлинности клиента Databricks. Эти средства и пакеты SDK также автоматически создают и заменяют истекшие маркеры идентификатора Microsoft Entra ID для вас, используя следующие типы проверки подлинности Databricks:
Субъект-служба, который является пользователем Databricks, может пройти проверку подлинности в REST API Databricks с помощью маркеров идентификатора Microsoft Entra.
Субъект-служба также может добавить себя в качестве администратора рабочей области в рабочую область, если она имеет роль участника или владельца в целевом ресурсе рабочей области в Azure. Если главный объект службы является участником или владельцем целевой рабочей области, и вы хотите добавить его в рабочую область с помощью токена идентификатора Microsoft Entra, перейдите к API уровня рабочей области для главных объектов служб, которые не являются пользователями Azure Databricks.
В противном случае перейдите к доступу к API для субъектов-служб, которые являются пользователями и администраторами Azure Databricks.
Доступ к API для субъектов-служб, которые являются пользователями и администраторами Azure Databricks
Чтобы выполнить эту процедуру, необходимо сначала добавить субъект-службу в учетную запись Azure Databricks или рабочую область. Субъект-службу можно добавить непосредственно в учетную запись без предоставления доступа к рабочей области с помощью API SCIM (учетная запись).
Вы можете добавить сервисный принципал в рабочую область, используя конечную точку API сервисных принципалов. Это также добавит субъект-службу в учетную запись Azure Databricks. Рассмотрим пример.
С помощью Интерфейса командной строки Databricks версии 0.205 или более поздней (рекомендуется):
Добавьте субъект-службу:
databricks service-principals create --application-id 12a34b56-789c-0d12-e3fa-b456789c0123 --display-name "My Service Principal" -p <profile-name-that-references-calling-users-access-token>
Обновите права рабочей области субъекта-службы:
databricks service-principals patch 1234567890123456 --json @update-service-principal.json -p <profile-name-that-references-access-token>
update-service-principal.json
:
{
"Operations": [
{
"op": "add",
"path": "entitlements",
"value": {
"value": "workspace-acccess",
"value": "allow-cluster-create",
"value": "databricks-sql-access"
}
}
],
"schema": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"]
}
См. Аутентификация для интерфейса командной строки Databricks.
С помощью curl
:
curl -X POST \
-H 'Authorization: Bearer <access-token>' \
https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/preview/scim/v2/ServicePrincipals \
-H 'Content-type: application/scim+json' \
-d @create-service-principal.json
create-service-principal.json
:
{
"displayName": "My Service Principal",
"applicationId": "12a34b56-789c-0d12-e3fa-b456789c0123",
"entitlements": [
{
"value": "allow-cluster-create"
}
],
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:ServicePrincipal"],
"active": true
}
Пропустите раздел Доступ к API уровня рабочей области для учетных записей служб, которые не являются пользователями Azure Databricks, если выполняется одно из следующих условий:
- REST API Azure Databricks, который требуется вызвать, требует доступа администратора рабочей области, а субъект-служба является членом рабочей области, но в настоящее время не имеет доступа администратора к рабочей области.
- Субъект-служба еще не добавлен в целевую рабочую область Azure Databricks.
Соберите следующие сведения:
Параметр Описание Маркер доступа идентификатора Microsoft Entra Маркер доступа Microsoft Entra ID, полученный из запроса в получение маркера доступа Microsoft Entra ID с помощью REST API платформы удостоверений Microsoft или получение маркера доступа Microsoft Entra ID с помощью Azure CLI. Используйте маркер доступа к идентификатору Microsoft Entra вместе с
curl
вызовом REST API Databricks. Рассмотрим пример.С помощью Интерфейса командной строки Databricks версии 0.205 или более поздней (рекомендуется):
databricks clusters list -p <profile-name-that-references-azure-ad-access-token>
См. Аутентификация для интерфейса командной строки Databricks.
С помощью
curl
:curl -X GET \ -H 'Authorization: Bearer <access-token>' \ https://<databricks-instance>/api/2.0/clusters/list
Замените:
-
<access-token>
с маркером доступа идентификатора Microsoft Entra. -
<databricks-instance>
с URL-адресом рабочей области развертывания Azure Databricks. -
GET
и/api/2.0/clusters/list
с соответствующей операцией HTTP и конечной точкой для целевых REST API Databricks.
Рассмотрим пример.
curl -X GET \ -H 'Authorization: Bearer <access-token>' \ https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/clusters/list
-
Доступ к API уровня рабочей области для субъектов-служб, которые не являются пользователями Azure Databricks
Выполните следующую процедуру, если одно из следующих значений имеет значение true:
- REST API Azure Databricks, который требуется вызвать, требует доступа администратора рабочей области, а субъект-служба является членом рабочей области, но в настоящее время не имеет доступа администратора к рабочей области.
- Субъект-служба еще не добавлен в целевую рабочую область Azure Databricks.
- Субъект-служба создает или обновляет хранилище каталога Unity или учетные данные службы.
Требования:
- Субъект-служба требует роль участника или владельца в целевом ресурсе рабочей области в Azure.
Соберите следующие сведения:
Параметр Описание Идентификатор арендатора Идентификатор каталога (клиента) для связанного приложения, зарегистрированного в Microsoft Entra ID, в создании субъекта-службы в портале Azure. Идентификатор клиента Идентификатор приложения (клиента) для связанного приложения, зарегистрированного в идентификаторе Microsoft Entra. Секрет клиента Значение секрета клиента для связанного приложения, зарегистрированного в Microsoft Entra ID, который вы создали в создание субъекта-службы в портале Azure. Маркер доступа идентификатора Microsoft Entra Маркер доступа Microsoft Entra ID, полученный из запроса в получение маркера доступа Microsoft Entra ID с помощью REST API платформы удостоверений Microsoft или получение маркера доступа Microsoft Entra ID с помощью Azure CLI. ID подписки Идентификатор (а не имя) подписки Azure, связанной с целевой рабочей областью Azure Databricks. Сведения об этом и следующих сведениях см. в разделе "Открыть ресурсы". Чтобы открыть целевой ресурс, можно выполнить поиск по типу службы Azure Databricks и любой другой информации в Azure, известной о целевой рабочей области Azure Databricks. Имя группы ресурсов Имя группы ресурсов Azure, связанной с целевой рабочей области Azure Databricks. Имя рабочей области Имя целевой рабочей области Databricks в Azure. Используйте некоторые из предыдущих сведений вместе с
curl
получением маркера доступа к конечной точке управления идентификаторами Майкрософт.curl -X POST -H 'Content-Type: application/x-www-form-urlencoded' \ https://login.microsoftonline.com/<tenant-id>/oauth2/token \ -d 'client_id=<client-id>' \ -d 'grant_type=client_credentials' \ -d 'resource=https%3A%2F%2Fmanagement.core.windows.net%2F' \ -d 'client_secret=<client-secret>'
Замените:
-
<tenant-id>
с идентификатором клиента зарегистрированного приложения. -
<client-id>
с идентификатором клиента зарегистрированного приложения. -
<client-secret>
значение секрета клиента зарегистрированного приложения.
Не изменяйте значение параметра
resource
. Он представляет конечную точку управления идентификаторами Microsoft Entra (https://management.core.windows.net/
url-кодирование какhttps%3A%2F%2Fmanagement.core.windows.net%2F
).Рассмотрим пример.
curl -X POST -H 'Content-Type: application/x-www-form-urlencoded' \ https://login.microsoftonline.com/a1bc2d34-5e67-8f89-01ab-c2345d6c78de/oauth2/token \ -d 'client_id=12a34b56-789c-0d12-e3fa-b456789c0123' \ -d 'grant_type=client_credentials' \ -d 'resource=https%3A%2F%2Fmanagement.core.windows.net%2F' \ -d 'client_secret=abc1D~Ef...2ghIJKlM3'
Маркер доступа к конечной точке управления идентификаторами Майкрософт находится в
access_token
значении в выходных данных вызова.-
Используйте маркер доступа к конечной точке управления идентификаторами Microsoft Entra вместе с остальной частью предыдущей информации и
curl
вызовите REST API Databricks, например:curl -X GET \ -H 'Authorization: Bearer <access-token>' \ -H 'X-Databricks-Azure-SP-Management-Token: <management-access-token>' \ -H 'X-Databricks-Azure-Workspace-Resource-Id: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Databricks/workspaces/<workspace-name>' \ https://<databricks-instance>/api/2.0/clusters/list
Замените:
<access-token>
с маркером доступа идентификатора Microsoft Entra.-
<management-access-token>
с маркером доступа к конечной точке управления идентификаторами Майкрософт. -
<subscription-id>
с идентификатором подписки, связанной с целевой рабочей областью Azure Databricks. -
<resource-group-name>
с именем группы ресурсов, связанной с целевой рабочей области Azure Databricks. -
<workspace-name>
с именем целевой рабочей области Databricks. -
<databricks-instance>
с URL-адресом рабочей области развертывания Azure Databricks. -
GET
и/api/2.0/clusters/list
с соответствующей операцией HTTP и конечной точкой для целевых REST API Databricks.
Рассмотрим пример.
curl -X GET \ -H 'Authorization:Bearer <access-token>' \ -H 'X-Databricks-Azure-SP-Management-Token: abC1dE...ghIj23kl' \ -H 'X-Databricks-Azure-Workspace-Resource-Id: /subscriptions/12a345...bcd6789e/resourceGroups/my-resource-group/providers/Microsoft.Databricks/workspaces/my-workspace' \ https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/clusters/list
-
После проверки подлинности в рабочей области субъект-служба становится администратором рабочей области Azure Databricks и больше не требует роли участника или владельца для доступа к рабочей области.