Аутентификация

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

Регистрация клиентского приложения в Microsoft Entra ID

Обзор общего создания клиентских приложений Microsoft Entra см. здесь: Краткое руководство. Регистрация приложения на платформе удостоверений Майкрософт. Однако для Microsoft Power Platform есть некоторые особенности, о которых стоит упомянуть в разделах ниже.

Дополнительные параметры аутентификации

На портале Azure перейдите к только что созданному клиентскому приложению и выберите вкладку Управление — аутентификация. В разделе Дополнительные параметры установите для Общедоступный клиент значение Да. Это гарантирует, что вы можете получить JSON Web Token (JWT), используя простую аутентификацию по имени пользователя и паролю. Этот тип аутентификации требуется для интерактивных приложений, которые вы можете создать, и для регистрации записи субъекта-службы в Microsoft Power Platform.

Разрешения API

На портале Azure перейдите на вкладку Управление — разрешения API. В разделе Настройка разрешений выберите Добавить разрешение. В открывшемся диалоговом окне выберите вкладку Используемые в моей организации API, а затем найдите Служба Power Apps (или служба PowerApps). Вы можете увидеть несколько записей с таким же именем, поэтому убедитесь, что вы используете запись с GUID 475226c6-020e-4fb2-8a90-7a972cbfc1d4. Включите все делегированные разрешения, такие как параметр Разрешения пользователя — доступ к API службы Power Apps.

После добавления в клиентское приложение выберите Предоставить согласие администратора, чтобы завершить настройку. Это необходимо в тех случаях, когда вы хотите начать использовать такой инструмент, как REST API, у которых нет графического пользовательского интерфейса (GUI), который может запрашивать согласие для каждого использования.

Сертификаты и секреты

На портале Azure перейдите на вкладку Управление — Сертификаты и секреты. В разделе Сертификаты отправьте сертификат x509, который можно использовать для аутентификации. При желании вы можете использовать раздел Секреты для генерации секрета клиента. Сохраните секрет в безопасном месте для использования с учетом ваших потребностей в автоматизации. Параметры сертификата или секрета позволят вам аутентифицироваться с помощью Microsoft Entra и получить токен для этого клиента, который вы передадите либо в REST API, либо командлетам PowerShell.

Получите токен для аутентификации по имени пользователя и паролю

Отправьте запрос 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://service.powerapps.com//.default&username={USER_EMAIL_ADDRESS}&password={PASSWORD}&grant_type=password

Приведенный выше пример содержит заполнители, которые вы можете получить из своего клиентского приложения в Microsoft Entra ID. Вы получите ответ, который можно использовать для последующих вызовов в Power Platform API.

{
  "token_type": "Bearer",
  "scope": "https://service.powerapps.com//User https://service.powerapps.com//.default",
  "expires_in": 3599,
  "ext_expires_in": 3599,
  "access_token": "eyJ0eXAiOi...UBkeW5hbWljc2F4ZGVtby5vbm1pY3Jvc29mdC5jb20iLCJ1dGkiOiI1Q1Fnb25PR0dreWlTc1I2SzR4TEFBIiwidmVyIjoiMS4wIn0.N_oCJiEz2tRU9Ls9nTmbZF914MyU_u7q6bIUJdhXd9AQM2ZK-OijiKtMGfvvVmTYZp4C6sgkxSt0mOGcpmvTSagSRDY92M2__p-pEuKqva5zxXXXmpC-t9lKYDlXRcKq1m5xv-q6buntnLrvZIdd6ReD3n3_pnGAa6OxU0s82f7DqAjSQgXR3hwq_NZOa0quCUN9X-TvpIYrJfVgQfVu0R189hWmUzbYpuoPrUMj2vQI_19gEHz_FryXolM4RMStugYrC0Z72ND5vFlGgvYhZfbWJRC6hGvQQin_eAASmmjLwhRBGMJd6IdbgEXAkFF2rFITFFtFY_4hrN3bvHsveg"
}

Используйте значение 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://service.powerapps.com//.default&client_secret={SECRET_FROM_AZURE_CLIENT_APP}&grant_type=client_credentials

Приведенный выше пример содержит заполнители, которые вы можете получить из своего клиентского приложения в Microsoft Entra ID. Вы получите ответ, который можно использовать для последующих вызовов в Power Platform API.

{
  "token_type": "Bearer",
  "scope": "https://service.powerapps.com//User https://service.powerapps.com//.default",
  "expires_in": 3599,
  "ext_expires_in": 3599,
  "access_token": "eyJ0eXAiOi...UBkeW5hbWljc2F4ZGVtby5vbm1pY3Jvc29mdC5jb20iLCJ1dGkiOiI1Q1Fnb25PR0dreWlTc1I2SzR4TEFBIiwidmVyIjoiMS4wIn0.N_oCJiEz2tRU9Ls9nTmbZF914MyU_u7q6bIUJdhXd9AQM2ZK-OijiKtMGfvvVmTYZp4C6sgkxSt0mOGcpmvTSagSRDY92M2__p-pEuKqva5zxXXXmpC-t9lKYDlXRcKq1m5xv-q6buntnLrvZIdd6ReD3n3_pnGAa6OxU0s82f7DqAjSQgXR3hwq_NZOa0quCUN9X-TvpIYrJfVgQfVu0R189hWmUzbYpuoPrUMj2vQI_19gEHz_FryXolM4RMStugYrC0Z72ND5vFlGgvYhZfbWJRC6hGvQQin_eAASmmjLwhRBGMJd6IdbgEXAkFF2rFITFFtFY_4hrN3bvHsveg"
}

Используйте значение access_token в последующих вызовах API Power Platform с помощью заголовка HTTP Авторизация.

См. также

Предварительная версия: создание приложения субъекта-службы через API