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

[Эта статья является предварительной документацией и может быть изменена.]

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

Дополнительные сведения о концепциях RBAC, встроенных ролях и наследовании областей см. в разделе "Управление доступом на основе ролей" для Центра администрирования Power Platform.

Important

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

Из этого руководства вы узнаете, как выполнять следующие задачи:

  • Проверка подлинности с помощью API Power Platform.
  • Список доступных определений ролей.
  • Создайте назначение ролей для субъекта-службы в области клиента.
  • Проверьте назначение роли.

Prerequisites

  • Регистрация приложения Microsoft Entra, настроенная для API Power Platform, с сертификатом или секретом клиента для проверки подлинности субъекта-службы. Инструкции см. в разделе "Проверка подлинности".
  • Идентификатор объекта корпоративного приложения для субъекта-службы (найден в приложениях Microsoft Entra ID>Enterprise).
  • Вызывающее удостоверение должно иметь роль администратора Power Platform или администратора управления доступом на основе ролей Power Platform .

Определения встроенных ролей

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

Имя роли Идентификатор роли Permissions
Владелец 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 Чтение всех ресурсов и управление назначениями ролей

Шаг 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
$AccessToken = Get-AzAccessToken -TenantId $TenantId -ResourceUrl "https://api.powerplatform.com/"

$headers = @{ 'Authorization' = 'Bearer ' + $AccessToken.Token }
$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 управление доступом — определения ролей списка

Шаг 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 управление доступом — создание назначения ролей

Шаг 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: управление доступом на основе ролей — перечисление назначений ролей