Навчальний посібник. Призначення ролей принципалам служби (підготовча версія)

[Ця стаття стосується інструкції до попередньої версії, і її буде змінено.]

Керування доступом на основі ролей (RBAC) на платформі Power Platform дає змогу адміністраторам призначати вбудовані ролі користувачам, групам і принципалам послуг у клієнті, групі середовища або області середовища. У цьому посібнику описано типовий сценарій автоматизації: призначення ролі співавтора принципалу служби в області клієнта за допомогою API авторизації.

Докладні відомості про концепції RBAC, вбудовані ролі та успадкування областей див. в статті Керування доступом на основі ролей у Центрі адміністрування Power Platform.

Important

  • Це функція попереднього перегляду.
  • Підготовчі функції призначені для невиробничого використання. Їх можливості можуть бути обмеженими. Ці функції підпадають під додаткові умови використання і доступні до офіційного релізу, щоб клієнти могли отримати раннє access та залишити відгуки.

У цьому уроці ви дізнаєтесь:

  • Автентифікуйте за допомогою API платформи Power Platform.
  • Список доступних визначень ролей.
  • Створіть призначення ролі для принципала служби в області клієнта.
  • Перевірте призначення ролі.

вимоги

  • Реєстрація програми Microsoft Entra, налаштована для API Платформи Power Platform, з сертифікатом або секретом клієнта для автентифікації основної служби. Інструкції див. в статті Автентифікація.
  • Ідентифікатор корпоративного об'єкта застосунку для принципала служби (знайдено впрограмах> Enterprise).
  • Посвідчення виклику має мати роль адміністратора Power Platform або адміністратора керування доступом на основі ролей платформи Power Platform .

Вбудовані визначення ролей

Платформа Power Platform надає чотири вбудовані ролі, які можна призначити за допомогою RBAC. Кожна роль має фіксований набір дозволів і може бути призначена в області клієнта, середовища або середовища.

Ім'я ролі Ідентифікатор ролі Дозволи
Власник Power Platform 0cb07c69-1631-4725-ab35-e59e001c51ea Всі дозволи
Учасник Power Platform ff954d61-a89a-4fbe-ace9-01c367b89f87 Керування всіма ресурсами та їх читання, але не вдається виконати або змінити призначення ролей
Читач Power Platform c886ad2e-27f7-4874-8381-5849b8d8a090 Доступ лише для читання до всіх ресурсів
Адміністратор контролю доступу на основі ролей Power Platform 95e94555-018c-447b-8691-bdac8e12211e Читання всіх ресурсів + керування призначеннями ролей

Нотатка

Коли ви натиснете API на наступному кроці, ви можете побачити додаткові, більш деталізовані визначення ролей за цими чотирма. Ці ролі зарезервовано для подальшого використання та ще не підтримуються для призначення. Докладні відомості див. в статті Додаткові визначення ролей.

Крок 1. Список доступних визначень ролей

Спочатку автентифікуйте та отримуйте доступні визначення ролей, щоб підтвердити ідентифікатор ролі співавтора.

# Install the Az.Accounts module if not already installed
Install-Module -Name Az.Accounts

# Set your tenant ID
$TenantId = "YOUR_TENANT_ID"

# Authenticate and obtain an access token
Connect-AzAccount
$secureToken = (Get-AzAccessToken -TenantId $TenantId -ResourceUrl "https://api.powerplatform.com/").Token
$AccessToken = [System.Net.NetworkCredential]::new("", $secureToken).Password

$headers = @{ 'Authorization' = 'Bearer ' + $AccessToken }
$headers.Add('Content-Type', 'application/json')

# List all role definitions
$roleDefinitions = Invoke-RestMethod -Method Get -Uri "https://api.powerplatform.com/authorization/roleDefinitions?api-version=2024-10-01" -Headers $headers

$roleDefinitions.value | Format-Table roleDefinitionName, roleDefinitionId

Очікуваний вивід:

roleDefinitionName                                          roleDefinitionId
------------------                                          ----------------
Power Platform owner                                        0cb07c69-1631-4725-ab35-e59e001c51ea
Power Platform contributor                                  ff954d61-a89a-4fbe-ace9-01c367b89f87
Power Platform reader                                       c886ad2e-27f7-4874-8381-5849b8d8a090
Power Platform role-based access control administrator      95e94555-018c-447b-8691-bdac8e12211e

Довідка з API платформи Power Platform: Role-Based Access Control – визначення ролей списку

Крок 2. Призначення ролі співавтора принципалу служби

Створіть призначення ролі, яке надає роль співавтора Power Platform принципалу служби в області клієнта. Замініть YOUR_TENANT_ID ідентифікатором guid клієнта та YOUR_ENTERPRISE_APP_OBJECT_ID ідентифікатором об'єкта корпоративного застосунку з ідентифікатора Microsoft Entra.

$TenantId = "YOUR_TENANT_ID"
$EnterpriseAppObjectId = "YOUR_ENTERPRISE_APP_OBJECT_ID"

$body = @{
    roleDefinitionId = "ff954d61-a89a-4fbe-ace9-01c367b89f87"
    principalObjectId = $EnterpriseAppObjectId
    principalType = "ApplicationUser"
    scope = "/tenants/$TenantId"
} | ConvertTo-Json

$roleAssignment = Invoke-RestMethod -Method Post -Uri "https://api.powerplatform.com/authorization/roleAssignments?api-version=2024-10-01" -Headers $headers -Body $body

$roleAssignment

Очікуваний вивід:

roleAssignmentId   : a1b2c3d4-e5f6-7890-abcd-ef1234567890
principalObjectId  : <your-enterprise-app-object-id>
roleDefinitionId   : ff954d61-a89a-4fbe-ace9-01c367b89f87
scope              : /tenants/<your-tenant-id>
principalType      : ApplicationUser
createdOn          : 2026-03-02T12:00:00.0000000+00:00

Довідка з API платформи Power Platform: Role-Based Access Control – створення призначення ролі

Крок 3. Перевірка призначення ролі

Отримати всі призначення ролей, щоб підтвердити, що нове призначення існує.

$roleAssignments = Invoke-RestMethod -Method Get -Uri "https://api.powerplatform.com/authorization/roleAssignments?api-version=2024-10-01" -Headers $headers

# Filter for the service principal's assignments
$roleAssignments.value | Where-Object { $_.principalObjectId -eq $EnterpriseAppObjectId } | Format-Table roleAssignmentId, roleDefinitionId, scope, principalType

Очікуваний вивід:

roleAssignmentId                        roleDefinitionId                        scope                          principalType
----------------                        ----------------                        -----                          -------------
a1b2c3d4-e5f6-7890-abcd-ef1234567890    ff954d61-a89a-4fbe-ace9-01c367b89f87    /tenants/<your-tenant-id>      ApplicationUser

Довідка з API платформи Power Platform: керування доступом на основі ролей – призначення ролей списку