Аутентификация (предварительная версия)
В этой статье представлен обзор настройки Microsoft Entra для вызова API Power Platform (предварительная версия). Чтобы получить доступ к ресурсам, доступным через Power Platform API, вы должны получить токен носителя от Microsoft Entra и отправить его в виде заголовка вместе с каждым запросом. В зависимости от типа удостоверения, который вы поддерживаете (пользователь или субъект-служба), существуют разные потоки для получения этого токена носителя, как описано в этой статье.
Чтобы получить токен носителя с правильными разрешениями, необходимо выполнить следующие шаги:
- Создайте регистрацию приложения в своем клиенте Microsoft Entra
- Конфигурация разрешений API
- Настроить общедоступный клиент (необязательно)
- Настройте сертификаты и секреты (необязательно)
- Запросите маркер доступа
Шаг 1. Создайте регистрацию приложения
Перейдите на страницу Регистрация приложения Microsoft Entra и создайте новую регистрацию. Дайте приложению имя и убедитесь, что выбран параметр Один клиент. Вы можете пропустить настройку URI перенаправления.
Шаг 2. Конфигурация разрешений API
При регистрации нового приложения перейдите на вкладку Управление. Разрешения API. В разделе Конфигурация разрешений выберите Добавить разрешение. В открывшемся диалоговом окне выберите вкладку Используемые в моей организации API, а затем найдите Power Platform API. Вы можете увидеть несколько записей с таким же именем, поэтому убедитесь, что вы используете запись с GUID 8578e004-a5c6-46e7-913e-12f58912df43.
Если вы не видите Power Platform API в списке при поиске по GUID, возможно, у вас все еще есть к нему доступ, но видимость не обновляется. Чтобы принудительно обновить, запустите приведенный ниже сценарий PowerShell:
#Install the Microsoft Entra the module
Install-Module AzureAD
Connect-AzureAD
New-AzureADServicePrincipal -AppId 8578e004-a5c6-46e7-913e-12f58912df43 -DisplayName "Power Platform API"
Отсюда вы должны выбрать необходимые разрешения. Они сгруппированы по Пространствам имен. Например, в пространстве имен вы увидите типы ресурсов и действия AppManagement.ApplicationPackages.Read, которые дают разрешения на чтение для пакетов приложений. Для получения более подробной информации прочтите статью Справочник по разрешениям.
Заметка
Power Platform API использует делегированные разрешения только в это время. Для приложений, работающих в контексте пользователя, вы запрашиваете делегированные разрешения, используя параметр область. Эти разрешения делегируют привилегии вошедшего пользователя вашему приложению, позволяя ему действовать как пользователь при вызове конечных точек Power Platform API.
Для удостоверений субъектов-служб разрешения приложений не используются. Вместо этого субъекты-службы сегодня рассматриваются как администраторы Power Platform и должны быть зарегистрированы путем PowerShell — создание субъекта-службы.
После того, как необходимые разрешения будут добавлены в приложение, выберите Предоставить согласие администратора для завершения настройки. Это необходимо в тех случаях, когда вы хотите разрешить пользователям доступ к вашему приложению сразу, вместо того, чтобы требовать интерактивного взаимодействия с согласием. Если вы можете поддерживать интерактивное согласие, мы рекомендуем платформу Microsoft Identity и поток кода авторизации OAuth 2.0.
Шаг 3. Настроить общедоступный клиент (необязательно)
Если вашему приложению потребуются ресурсы для чтения и записи от имени пользователя, вам нужно будет включить параметр «Общедоступный клиент». Это единственный способ, при котором Microsoft Entra ID примет свойства имени пользователя и пароля в тексте запроса токена. Также обратите внимание, что если вы планируете использовать эту функцию, она не будет работать для учетных записей с включенной многофакторной проверкой подлинности.
Чтобы включить, откройте вкладку Управление — Аутентификация. В разделе Расширенные параметры, установите переключатель Общедоступный клиент на Да.
Шаг 4. Настройте сертификаты и секреты (необязательно)
Если вашему приложению потребуются ресурсы для чтения и записи самому, также называемые субъектом-службой, существует два способа аутентификации. Чтобы использовать сертификаты, перейдите на вкладку Управление - Сертификаты и секреты. В разделе Сертификаты отправьте сертификат x509, который можно использовать для аутентификации. Другой способ заключается в использовании раздела Секреты для создания секрета клиента. Сохраните секрет в безопасном месте для использования с учетом ваших потребностей в автоматизации. Параметры сертификата или секрета позволят вам аутентифицироваться с помощью Microsoft Entra и получить токен для этого клиента, который вы передадите либо в REST API, либо командлетам PowerShell.
Шаг 5. Запросите маркер доступа
Есть два способа получить токен носителя доступа. Один предназначен для имени пользователя и пароля, а другой — для субъектов-служб.
Поток имени пользователя и пароля
Обязательно прочитайте раздел Общедоступный клиент выше. Затем отправьте запрос POST по HTTP в Microsoft Entra ID с именем пользователя и паролем в качестве полезных данных.
Content-Type: application/x-www-form-urlencoded
Host: login.microsoftonline.com
Accept: application/json
POST https://login.microsoftonline.com/YOUR_TENANT.COM/oauth2/v2.0/token
BODY:
client_id={CLIENT_ID_FROM_AZURE_CLIENT_APP}&scope=https://api.powerplatform.com/.default&username={USER_EMAIL_ADDRESS}&password={PASSWORD}&grant_type=password
Приведенный выше пример содержит заполнители, которые вы можете получить из своего клиентского приложения в Microsoft Entra ID. Вы получите ответ, который можно использовать для последующих вызовов в Power Platform API.
{
"token_type": "Bearer",
"scope": "https://api.powerplatform.com/AppManagement.ApplicationPackages.Install https://api.powerplatform.com/AppManagement.ApplicationPackages.Read https://api.powerplatform.com/.default",
"expires_in": 4747,
"ext_expires_in": 4747,
"access_token": "eyJ0eXAiOiJKV1QiLCJu..."
}
Используйте значение access_token в последующих вызовах API Power Platform с помощью заголовка HTTP Авторизация.
Поток субъекта-службы
Обязательно прочитайте раздел Сертификаты и секреты выше. Затем отправьте запрос POST по HTTP в Microsoft Entra ID с секретом клиента в качестве полезных данных. Это часто называют аутентификацией субъекта-службы.
Внимание
Это можно использовать только после того, как вы зарегистрируете этот идентификатор клиентского приложения с помощью Microsoft Power Platform в соответствии с документацией по PowerShell или REST.
Content-Type: application/x-www-form-urlencoded
Host: login.microsoftonline.com
Accept: application/json
POST https://login.microsoftonline.com/YOUR_TENANT.COM/oauth2/v2.0/token
BODY:
client_id={CLIENT_ID_FROM_AZURE_CLIENT_APP}&scope=https://api.powerplatform.com/.default&client_secret={SECRET_FROM_AZURE_CLIENT_APP}&grant_type=client_credentials
Приведенный выше пример содержит заполнители, которые вы можете получить из своего клиентского приложения в Microsoft Entra ID. Вы получите ответ, который можно использовать для последующих вызовов в Power Platform API.
{
"token_type": "Bearer",
"expires_in": 3599,
"ext_expires_in": 3599,
"access_token": "eyJ0eXAiOiJKV1..."
}
Используйте значение access_token в последующих вызовах API Power Platform с помощью заголовка HTTP Авторизация. Как отмечалось выше, поток субъекта-службы не использует разрешения приложения и вместо этого на данный момент рассматривается как администратор Power Platform для всех вызовов, которые он делает.
См. также
Создание приложения субъекта-службы через API (предварительная версия)
PowerShell — Создание субъекта-службы