次の方法で共有


チュートリアル: サービス プリンシパルにロールを割り当てる (プレビュー)

[この記事はプレリリース ドキュメントであり、変更されることがあります]

Power Platform のロールベースのアクセス制御 (RBAC) を使用すると、管理者はテナント、環境グループ、または環境スコープでユーザー、グループ、サービス プリンシパルに組み込みのロールを割り当てることができます。 このチュートリアルでは、一般的な自動化シナリオについて説明します。Authorization API を使用して、テナント スコープで共同作成者ロールをサービス プリンシパルに割り当てます。

RBAC の概念、組み込みロール、スコープの継承の詳細については、 Power Platform 管理センターのロールベースのアクセス制御に関するページを参照してください。

Important

  • これはプレビュー機能です。
  • プレビュー機能は運用環境での使用を想定しておらず、機能が制限されている可能性があります。 これらの機能は、追加使用条件の対象であり、公式リリース前にお客様が早期にアクセスし、フィードバックを提供できるよう利用可能になっています。

このチュートリアルでは、次の方法について説明します:

  • Power Platform API を使用して認証します。
  • 使用可能なロール定義を一覧表示します。
  • テナント スコープでサービス プリンシパルのロールの割り当てを作成します。
  • ロールの割り当てを確認します。

前提条件

  • サービス プリンシパル認証用の証明書またはクライアント シークレットを使用して、Power Platform API 用に構成された Microsoft Entra アプリの登録。 ガイダンスについては、「 認証」を参照してください。
  • サービス プリンシパルの エンタープライズ アプリケーション オブジェクト ID ( Microsoft Entra ID>Enterprise アプリケーションにあります)。
  • 呼び出し元 ID には 、Power Platform 管理者 または Power Platform ロールベースのアクセス制御管理者 ロールが必要です。

組み込みのロールの定義

Power Platform には、RBAC を介して割り当てることができる 4 つの組み込みロールが用意されています。 各ロールには固定のアクセス許可セットがあり、テナント、環境グループ、または環境スコープで割り当てることができます。

役割名 ロール ID アクセス許可
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. 使用可能なロール定義を一覧表示する

まず、使用可能なロール定義を認証して取得し、共同作成者ロール ID を確認します。

# 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

Power Platform API リファレンス: Role-Based アクセス制御 - ロール定義の一覧表示

ステップ 2. 共同作成者ロールをサービス プリンシパルに割り当てる

テナント スコープでサービス プリンシパルに Power Platform 共同作成者 ロールを付与するロールの割り当てを作成します。 YOUR_TENANT_IDをテナント GUID に置き換え、YOUR_ENTERPRISE_APP_OBJECT_IDを Microsoft Entra ID のエンタープライズ アプリケーション オブジェクト ID に置き換えます。

$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

Power Platform API リファレンス: 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

Power Platform API リファレンス: ロールベースのアクセス制御 - ロールの割り当ての一覧表示