Microsoft Entra Privileged Identity Management で管理者ロールを管理する
Microsoft Entra Privileged Identity Management (PIM) を使用して、Power Platform 管理センターで権限の高い管理者ロールを管理します。
前提条件
- 環境内の古いシステム管理者ロールの割り当てを削除します。 PowerShell スクリプトを使用して、不要なユーザーをインベントリし、1 つ以上の Power Platform 環境の システム管理者 ロールから削除できます。
機能サポートの変更
Microsoft システム 管理者 ロールが、 Power Platform 管理者 やDynamics 365管理者 などのグローバルまたはサービス レベルの管理者ロールを持つユーザーに自動的に割り当てられなくなりました。
これらの管理者は、引き続き次の権限で Power Platform 管理センター にログインできます。
- テナント レベルの設定を有効または無効にする
- 環境の分析情報を表示する
- キャパシティの消費を表示する
これらの管理者は、ライセンスなしでデータに直接アクセスする必要があるアクティビティを実行することはできません。 Dataverse これらのアクティビティの例は、次のとおりです:
- 環境内のユーザーのセキュリティ ロールの更新
- 環境用アプリのインストール
重要
グローバル管理者、 Power Platform 管理者、およびDynamics 365サービス管理者は、アクセスを必要とするアクティビティを実行する前に、別の 手順 を完了する必要があります Dataverse。 アクセスを必要とする環境では、システム管理者 ロールに昇格する必要があります。 すべての昇格アクションは Microsoft Purviewに記録されます。
既知の制限
APIを使用する場合、呼び出し元がシステム 管理者 である場合、自己昇格呼び出しは、システム 管理者 がすでに存在することを呼び出し元に通知するのではなく、成功を返すことがわかります。
通話を行うユーザーには、テナント管理者ロールが割り当てられている必要があります。 テナント管理者の基準を満たすユーザーの完全なリストについては、機能サポートの変更を参照してください
Dynamics 365管理者 であり、環境 がセキュリティ グループによって保護されている場合は、セキュリティ グループのメンバーである必要があります。 このルールは、グローバル 管理者 または Power Platform 管理者 ロールを持つユーザーには適用されません。
昇格 API は、ステータスを昇格する必要があるユーザーによってのみ呼び出すことができます。 昇格を目的として、別のユーザーに代わって API 呼び出しを行うことはサポートされていません。
自己昇格によって割り当てられたシステム 管理者 ロールは、Privileged Identity Managementでロールの割り当ての有効期限が切れても削除されません。 システムの 管理者 ロールからユーザーを手動で削除する必要があります。 清掃活動を見る
Microsoft Power Platform CoE スターター キットを使っている顧客には回避策があります。 詳しい情報については、PIM の問題と回避策 #8119 を参照してください。
グループによるロールの割り当てはサポートされていません。 必ずロールをユーザーに直接割り当ててください。
システム管理者ロールに自己昇格する
Power Platform 管理センターでは、PowerShell または直感的な操作による昇格をサポートしています。
注意Note
自己昇格を試みるユーザーは、グローバル管理者、Power Platform 管理者、または Dynamics 365 管理者である必要があります。 Power Platform 管理センターのユーザー インターフェイスは、他の Entra ID 管理者ロールを持つユーザーには利用できず、PowerShell API を介して自己昇格を試みると、エラーが返されます。
PowerShell による自己昇格
PowerShell の設定
MSAL PowerShell モジュールをインストールします。 モジュールのインストールは 1 度だけ必要です。
Install-Module -Name MSAL.PS
PowerShell の設定の詳細については、PowerShell と Visual Studio コードを使用した Web API のクイックスタート を参照してください。
ステップ 1: スクリプトを実行して昇格する
この PowerShell スクリプトで、次のことを行います:
- Power Platform API を使用して認証します。
- 環境 ID で
http
クエリを作成します。 - API エンドポイントを呼び出して昇格をリクエストします。
自分の環境 ID を追加します。
Power Platform 管理センター の 環境 タブから 環境 ID を取得します。
独自の
<environment id>
をスクリプトに追加します。
スクリプトを実行する
スクリプトをコピーし、PowerShell コンソールに貼り付けます。
# Set your environment ID
$environmentId = "<your environment id>"
Import-Module MSAL.PS
# Authenticate
$AuthResult = Get-MsalToken -ClientId '49676daf-ff23-4aac-adcc-55472d4e2ce0' -Scope 'https://api.powerplatform.com/.default'
$Headers = @{
Authorization = "Bearer $($AuthResult.AccessToken)"
'Content-Type' = "application/json"
}
$uri = "https://api.powerplatform.com/usermanagement/environments/$environmentId/user/applyAdminRole?api-version=2022-03-01-preview";
try {
$postRequestResponse = Invoke-RestMethod -Method Post -Headers $Headers -Uri $uri
}
catch {
# Dig into the exception to get the Response details.
Write-Host "Response CorrelationId:" $_.Exception.Response.Headers["x-ms-correlation-id"]
Write-Host "StatusCode:" $_.Exception.Response.StatusCode.value__
Write-Host "StatusDescription:" $_.Exception.Response.StatusDescription
$result = $_.Exception.Response.GetResponseStream()
$reader = New-Object System.IO.StreamReader($result)
$reader.BaseStream.Position = 0
$reader.DiscardBufferedData()
$responseBody = $reader.ReadToEnd();
Write-Host $responseBody
}
$output = $postRequestResponse | ConvertTo-Json -Depth 2
Write-Host $output
ステップ 2: 結果を確認する
成功すると、次のような出力が表示されます。 自分のロールの昇格に成功した証拠として、"Code": "UserExists"
を探します。
{
"errors": [],
"information": [
{
"Subject": "Result",
"Description": "[\"SyncMode: Default\",\"Instance df12c345-7b56-ee10-8bc5-6045bd005555 exists\",\"Instance df85c664-7b78-ee11-8bc5-6045bd005555 in enabled state\",\"Instance Url found https://orgc1234567.crm.dynamics.com\",\"User found in AD tenant\",\"User in enabled state in AD tenant\",\"SystemUser with Id:11fa11ab-4f75-ee11-9999-6045bd12345a, objectId:d111c55c-aab2-8888-86d4-ece1234f11e6 exists in instance\"]",
"Code": "UserExists"
},
{ ... }
}
エラー
適切なアクセス許可がない場合は、エラー メッセージが表示される場合があります。
"Unable to assign System Administrator security role as the user is not either a Global admin, Power Platform admin, or Dynamics 365 admin. Please review your role assignments in Entra ID and try again later. For help, please reach out to your administrator."
手順3: クリーンアップ活動
PIM で割り当てが期限切れになった後、Remove-RoleAssignmentFromUsers を実行して、システム管理者セキュリティ ロールからユーザーを削除します。
-roleName
:「システム 管理者」または別のロール-usersFilePath
: ユーザープリンシパル名のリストを含むCSVファイルへのパス (1行に1つずつ)-environmentUrl
: admin.powerplatform.microsoft.comにあります-processAllEnvironments
: (オプション) すべての環境を処理する-geo
: 有効なGEO-outputLogsDirectory
: ログファイルが書き込まれるパス
スクリプトの例
Remove-RoleAssignmentFromUsers
-roleName "System Administrator"
-usersFilePath "C:\Users\<My-Name>\Desktop\<names.csv>"
-environmentUrl "<my-name>-environment.crm.dynamics.com"
# Or, include all your environments
-processAllEnvironments $true
-geo "NA"
-outputLogsDirectory "C:\Users\<My-Name>\Desktop\<log-files>"
Power Platform 管理センターでの自己昇格
Power Platform 管理センターにサインインします。
左側のパネルで 環境 を選択します。
環境の横にあるチェックマークを選択します。
コマンドバーでメンバーシップを選択して、自己昇格を要求します。
システム管理者 ペインが表示されます。 システムの管理者ロールに自分を追加するには、私を追加してくださいを選択します。