次の方法で共有


Microsoft Entra Privileged Identity Management で管理者ロールを管理する

Power Platform 管理センターで Microsoft Entra Entra Privileged Identity Management (PIM) を使用して、権限の高い管理者ロールを管理します。

前提条件

  • 環境内の古いシステム管理者ロールの割り当てを削除します。 PowerShell スクリプトを使用して、不要なユーザーをインベントリし、1 つ以上の Power Platform 環境の システム管理者 ロールから削除できます。

機能サポートの変更

Microsoft は、システム管理者ロールを、Power Platform 管理者や Dynamics 365 管理者などのグローバル管理者やサービス レベル管理者ロールに自動的に割り当てる機能を廃止しました。

これらの管理者は、次の特権を使用して、Power Platform 管理センターに引き続きログインできます。

  • テナント レベルの設定を有効または無効にする
  • 環境の分析情報を表示する
  • キャパシティの消費を表示する

これらの管理者は、ライセンスなしで Dataverse データに直接アクセスする必要がある活動を実行できません。 これらのアクティビティの例は、次のとおりです:

  • 環境内のユーザーのセキュリティ ロールの更新
  • 環境用アプリのインストール

重要

グローバル管理者、Power Platform 管理者、Dynamics 365 サービス管理者は、Dataverse アクセスが必要な活動を実行する前に、別の手順を完了する必要があります。 アクセスを必要とする環境では、システム管理者 ロールに昇格する必要があります。 すべての昇格アクションは Microsoft Purview に記録されます。

Privileged Identity Management を使用して Microsoft Entra ID の管理ロールへのジャストインタイム アクセスを取得し、ユーザーが権限を昇格する場合、Privileged Identity Management でロールの割り当ての有効期限が切れると、通常は短期間で、マイクロソフトは システム管理者 ロールを削除します。

既知の制限

  • API を使用しているときに、呼び出し元がシステム管理者の場合、権限の昇格を呼び出すと、既に存在していることを示すのではなく、成功を返します。

  • 通話を行うユーザーには、テナント管理者ロールが割り当てられている必要があります。 テナント管理者の基準を満たすユーザーの完全なリストについては、機能サポートの変更を参照してください

  • 自分が Dynamics 365 管理者で、環境がセキュリティ グループによって保護されている場合は、セキュリティ グループのメンバーである必要があります。 このルールは、グローバル管理者または Power Platform 管理者ロールを持つユーザーには適用されません。

  • ステータスを昇格する必要があるユーザーは、昇格 API を呼び出す必要があります。 API 呼び出しによって別のユーザーのステータスを昇格させることはできません。

  • Microsoft Power Platform CoE スターター キットを使っている顧客には回避策があります。 詳しい情報については、PIM の問題と回避策 #8119 を参照してください。

  • グループによるロールの割り当てはサポートされていません。 必ずロールをユーザーに直接割り当ててください。

システム管理者ロールに自己昇格する

Power Platform 管理センターでは、PowerShell または直感的な操作による昇格をサポートしています。

注意

自己昇格を試みるユーザーは、グローバル管理者、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 クエリを作成します。
  • Power Platform API を使用して昇格を要求します。
環境 ID を見つけて追加する
  1. Power Platform 管理センター にサインインします。
  2. ナビゲーション ウィンドウで、管理 を選択します。
  3. 管理ウィンドウで環境を選択します。
  4. 環境 ページで、調節する環境を選択します。
  5. 詳細ペインで 環境 ID を検索します。
  6. 独自の <environment id> をスクリプトに追加します。
スクリプトを実行する

スクリプトをコピーし、PowerShell コンソールに貼り付けます。

# Set your environment ID
$environmentId = "<your environment id>"
$clientId = "<client id of your Microsoft Entra ID application registration>"

Import-Module MSAL.PS

# Authenticate
$AuthResult = Get-MsalToken -ClientId $clientId -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:aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb 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."
スクリプトの例
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 管理センターでの自己昇格

  1. Power Platform 管理センター にサインインします。
  2. ナビゲーション ウィンドウで、管理 を選択します。
  3. 管理ウィンドウで環境を選択します。
  4. 環境 ページで、調節する環境を選択します。
  5. コマンド バーで、メンバーシップ を選択して、権限の昇格を要求します。
  6. システム管理者ペインで自分を追加するを選択し、自分自身をシステム管理者ロールに追加します。