Поділитися через


Створення програми принципала служби за допомогою PowerShell

Автентифікація за допомогою імені користувача та паролю часто не є ідеальною, особливо з поширенням багатофакторної автентифікації. У таких випадках бажано використовувати автентифікацію принципалу служби (або циклу облікових даних клієнта). Це можна зробити, зареєструвавши нову заяву на основну послугу у власного Microsoft Entra орендаря, а потім зареєструвавши цю саму програму Power Platform.

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

По-перше, клієнтську заявку потрібно зареєструвати у вашого Microsoft Entra орендаря. Щоб налаштувати це, перегляньте статтю Автентифікація для API Power Platform, тому що для PowerShell потрібні такі самі настройки програми.

Після того, як ваша клієнтська заявка зареєстрована в Microsoft Entra ID, її також потрібно зареєструвати Microsoft Power Platform. Зараз це не можна зробити в центрі адміністрування Power Platform, це необхідно зробити за допомогою програмного налаштування в Power Platform API або 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 ідентифікаторі.

Основні програми служб обробляються так само Power Platform , як і звичайні користувачі з Power Platform призначеною роллю адміністратора. Детальні ролі та дозволи не можна призначати, щоб обмежити їхні можливості. Додатку не відводиться якась особлива роль в Microsoft Entra ID, оскільки саме так сервіси платформи обробляють запити, зроблені керівниками сервісів.