Создание приложения субъекта-службы с помощью PowerShell

Аутентификация с помощью имени пользователя и пароля часто не идеальна, особенно с появлением многофакторной аутентификации. В таких случаях предпочтительна аутентификация субъекта-службы (или потока учетных данных клиента). Это можно сделать, зарегистрировав новое приложение субъекта-службы в своем собственном клиенте Microsoft Entra, а затем зарегистрировав это же приложение в Power Platform.

Регистрация приложения для управления администратором

Во-первых, клиентское приложение необходимо зарегистрировать в вашем клиенте Microsoft Entra. Чтобы установить это, прочтите статью Аутентификация для API Power Platform, поскольку для PowerShell требуется такая же настройка приложения.

После регистрации вашего клиентского приложения в Microsoft Entra ID оно также должно быть зарегистрировано в Microsoft Power Platform. Сегодня это невозможно сделать через центр администрирования Power Platform; это должно быть сделано программно через API Power Platform или PowerShell для администраторов Power Platform. Субъект-служба не может зарегистрироваться сама по себе — по замыслу, приложение должно быть зарегистрировано с помощью имени пользователя и пароля администратора. Это гарантирует, что приложение создано кем-то, кто является администратором для клиента.

Чтобы зарегистрировать новое приложение для управления, используйте следующий сценарий:

$appId = "CLIENT_ID_FROM_AZURE_APP"

# Login interactively with a tenant administrator for Power Platform
Add-PowerAppsAccount -Endpoint prod -TenantID $tenantId 

# Register a new application, this gives the SPN / client application same permissions as a tenant admin
New-PowerAppManagementApp -ApplicationId $appId

Делайте запросы в качестве субъекта-службы

Теперь, когда он был зарегистрирован в Microsoft Power Platform, вы можете пройти аутентификацию как сам субъект-служба. Используйте следующий сценарий, чтобы запросить список вашей среды:

$appId = "CLIENT_ID_FROM_AZURE_APP"
$secret = "SECRET_FROM_AZURE_APP"
$tenantId = "TENANT_ID_FROM_AZURE_APP"

Add-PowerAppsAccount -Endpoint prod -TenantID $tenantId -ApplicationId $appId -ClientSecret $secret -Verbose
Get-AdminPowerAppEnvironment

Ограничения субъектов-служб

В настоящее время аутентификация субъекта-службы работает для управления средой, настройками клиента и управления Power Apps. Командлеты, связанные с Flow, поддерживаются для проверки подлинности субъекта-службы в ситуациях, когда лицензия не требуется, поскольку невозможно назначить лицензии удостоверениям субъектов-служб в Microsoft Entra ID.

Приложения субъекта-службы обрабатываются в Power Platform так же, как и обычные пользователи с назначенной ролью администратора Power Platform. Детальные роли и разрешения не могут быть назначены для ограничения их возможностей. Приложение не получает никакой специальной роли, назначенной в Microsoft Entra ID, поскольку именно так службы платформы обрабатывают запросы, выполняемые субъектами-службами.