Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Иногда выполнять интерактивную аутентификацию или вход от имени пользователя нецелесообразно (например, если вы хотите отправлять задания из веб-службы, другой рабочей роли или автоматизированной системы). Один из вариантов — настройка управляемого удостоверения. Другой вариант — использование принципала службы, об этом расскажет эта статья.
Предварительное условие: создайте учетную запись службы и секрет приложения
Чтобы выполнять аутентификацию от имени субъекта-службы, сначала нужно создать этот субъект-службу.
Чтобы создать субъект-службу, назначить права доступа и создать учетные данные, выполните следующие действия:
-
Примечание.
Вам не нужно устанавливать URI перенаправления.
- После создания запишите значения Идентификатор приложения (клиент) и Идентификатор каталога (арендатор).
Создайте учетные данные, чтобы войти в приложение:
- В разделе параметров приложения выберите Сертификаты и секреты.
- В разделе Секреты клиента выберите Создать секрет.
- Предоставьте описание и период действия, затем щелкните Добавить.
- Скопируйте значение этого секрета и немедленно сохраните его в надежном месте, ведь больше вы его не увидите.
Предоставьте служебной учетной записи разрешения на доступ к рабочему пространству.
- Откройте портал Azure.
- В поле поиска введите имя группы ресурсов, в которой вы создали рабочую область. Выберите группу ресурсов, когда она появится в результатах.
- В разделе обзор сведений для группы ресурсов выберите Управление доступом (IAM).
- Выберите Добавить назначение ролей.
- Найдите и выберите служебный принципал.
- Присвойте ему роль Участник или Владелец.
Примечание.
Чтобы создать назначение роли в группе ресурсов или рабочей области, необходимо быть владельцем или администратором доступа пользователей на уровне назначения роли. Если у вас нет разрешений на создание главного объекта службы в подписке, вам потребуется запросить разрешение у владельца или администратора подписки Azure.
Если у вас есть разрешения только на уровне группы ресурсов или рабочей области, можно создать субъект-службу с ролью участника следующим образом:
az ad sp create-for-rbac --role Contributor --scopes /subscriptions/<SUBSCRIPTION-ID>
Аутентифицируйтесь как служебный принципал
Вариант 1. Использование переменных среды. Учетные данные по умолчанию, используемые при создании объекта Workspace, — это DefaultAzureCredential, который будет пытаться выполнить несколько типов проверки подлинности.
Первый из них — EnvironmentCredential, с помощью которого вы передаете учетные данные сервисного аккаунта через следующие переменные среды:
- AZURE_TENANT_ID — идентификатор арендатора субъекта-службы. Также называется идентификатором каталога.
- AZURE_CLIENT_ID — идентификатор клиента субъекта-службы.
- AZURE_CLIENT_SECRET — один из секретов клиента субъекта-службы.
Вариант 2. Использование ClientSecretCredential. Передайте ClientSecretCredential во время создания объекта Workspace или задайте свойство credentials.
from azure.identity import ClientSecretCredential
tenant_id = os.environ["AZURE_TENANT_ID"]
client_id = os.environ["AZURE_CLIENT_ID"]
client_secret = os.environ["AZURE_CLIENT_SECRET"]
credential = ClientSecretCredential(tenant_id=tenant_id, client_id=client_id, client_secret=client_secret)
workspace.credentials = credential
Примечание.
Метод workspace.login() является нерекомендуемым и больше не требуется. При первом вызове службы проверка подлинности будет предпринята с помощью учетных данных, переданных в Workspace конструкторе или его credentials свойстве. Если учетные данные не были переданы, DefaultAzureCredential попробует использовать несколько методов проверки подлинности.