자습서: 서비스 주체에 역할 할당(미리 보기)

[이 문서는 시험판 설명서이며 변경될 수 있습니다.]

Power Platform의 RBAC(역할 기반 액세스 제어)를 사용하면 관리자가 테넌트, 환경 그룹 또는 환경 범위의 사용자, 그룹 및 서비스 주체에 기본 제공 역할을 할당할 수 있습니다. 이 자습서에서는 권한 부여 API를 사용하여 테넌트 범위의 서비스 주체에 기여자 역할을 할당하는 일반적인 자동화 시나리오를 안내합니다.

RBAC 개념, 기본 제공 역할 및 범위 상속에 대한 자세한 내용은 Power Platform 관리 센터의 역할 기반 액세스 제어를 참조하세요.

Important

  • 미리 보기 기능입니다.
  • 프리뷰 기능은 프로덕션용이 아니며 기능이 제한될 수 있습니다. 이러한 기능은 추가 이용 약관의 적용을 받으며, 정식 출시 전에 제공되므로 고객이 조기에 사용해 보고 피드백을 제공할 수 있습니다.

이 자습서에서는 다음 작업을 수행하는 방법을 알아봅니다.

  • Power Platform API를 사용하여 인증합니다.
  • 사용 가능한 역할 정의를 나열합니다.
  • 테넌트 범위에서 서비스 주체에 대한 역할 할당을 만듭니다.
  • 역할 할당을 확인합니다.

Prerequisites

  • 서비스 주체 인증을 위한 인증서 또는 클라이언트 암호를 사용하여 Power Platform API에 대해 구성된 Microsoft Entra 앱 등록입니다. 지침은 인증을 참조 하세요.
  • 서비스 주체의 엔터프라이즈 애플리케이션 개체 ID 입니다( Microsoft Entra ID>Enterprise 애플리케이션에서 찾을 수 있습니다).
  • 호출 ID에는 Power Platform 관리자 또는 Power Platform 역할 기반 액세스 제어 관리자 역할이 있어야 합니다.

기본 제공 역할 정의

Power Platform은 RBAC를 통해 할당할 수 있는 네 가지 기본 제공 역할을 제공합니다. 각 역할에는 고정된 사용 권한 집합이 있으며 테넌트, 환경 그룹 또는 환경 범위에서 할당할 수 있습니다.

역할 이름 역할 ID 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 모든 리소스 읽기 + 역할 할당 관리

Note

다음 단계에서 API를 호출하면 이러한 4개 이상의 더 세부적인 역할 정의가 추가로 표시될 수 있습니다. 이러한 역할은 나중에 사용하도록 예약되어 있으며 아직 할당에 지원되지 않습니다. 자세한 내용은 추가 역할 정의를 참조하세요.

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
$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

Power Platform API 참조: Role-Based 액세스 제어 - 역할 정의 나열

2단계. 서비스 주체에 기여자 역할 할당

테넌트 범위의 서비스 주체에게 Power Platform 기여자 역할을 부여하는 역할 할당을 만듭니다. 테넌트 GUID와 YOUR_TENANT_ID Microsoft Entra ID의 엔터프라이즈 애플리케이션 개체 ID로 바꿉 YOUR_ENTERPRISE_APP_OBJECT_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 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

Power Platform API 참조: 역할 기반 액세스 제어 - 역할 할당 나열