共用方式為


使用 Microsoft Entra Privileged Identity Management 管理管理員角色

使用 Microsoft Entra Privileged Identity Management (PIM) 管理 Power Platform 系統管理中心中的高特殊權限管理員角色。

先決條件

  • 移除環境中的舊系統管理員角色指派。 您可以使用 PowerShell 指令碼來清查並從一個或多個 Power Platform 環境中的系統管理員角色中移除不需要的使用者。

功能支援的變更

Microsoft 不會自動為具有以下 Microsoft Entra ID 角色的使用者 (也稱為租用戶管理員) 指派系統管理員角色:

  • 全域管理員
  • Power Platform系統管理員
  • Dynamics 365 管理員

租用戶管理員可以繼續使用以下權限登入 Power Platform 系統管理中心:

  • 啟用或停用租用戶層級設定
  • 查看環境的分析資訊
  • 查看容量使用量

租用戶管理員無法執行需要直接存取 Dataverse 資料的活動。 這些活動的例子包括:

  • 更新環境中使用者的資訊安全角色
  • 為環境安裝應用程式

重要

租用戶管理員必須先執行另一個步驟,然後才能執行需要存取 Dataverse 的活動。 他們必須在需要存取的環境中將自己提升為系統管理員角色。 所有提升動作都會記錄到 Microsoft Purview。

已知限制

  • 使用 API 時,您會發現如果呼叫者是系統管理員,則自行提升呼叫將傳回成功,而不是通知呼叫者系統管理員已存在。

  • 進行呼叫的使用者必須獲指派租用戶管理員角色。 有關滿足租用戶管理員條件的使用者完整清單,請參閱功能支援的變更

  • 如果您是 Dynamics 365 系統管理員,並且環境受安全組保護,則必須是安全組的成員。 此規則不適用於具有全域系統管理員或 Power Platform 系統管理員角色的使用者。

  • 提升 API 只能由需要提升狀態的使用者呼叫。 它不支援代表其他使用者進行 API 呼叫以進行提升。

  • 使用 Microsoft Power Platform CoE 入門套件的客戶可以使用解決方法。 有關詳細資訊,請參閱 PIM 問題和解決方法 #8119

  • 不支援透過群組進行角色指派。 請確保將角色直接指派給使用者。

自我提升至系統管理員角色

我們支援使用 PowerShell 或透過 Power Platform 系統管理中心的直觀體驗進行提升。

注意

嘗試自行提升的使用者必須是全域管理員、Power Platform 管理員或 Dynamics 365 管理員。Power Platform 系統管理中心中的使用者介面不適用於具有其他 Entra ID 管理員角色的使用者,嘗試透過 PowerShell API 自行提升會返回錯誤。

透過 PowerShell 自行提升

設定 PowerShell

安裝 MSAL PowerShell 模組。 您只需要安裝模組一次。

Install-Module -Name MSAL.PS

有關設定 PowerShell 的詳細資訊,請參閱使用 PowerShell 和 Visual Studio Code 快速啟動 Web API

步驟 1:執行指令碼進行提升

在此 PowerShell 指令碼中,您:

  • 使用 Power Platform API 進行驗證。
  • 使用您的環境識別碼建置 http 查詢。
  • 呼叫 API 端點以要求提升。
新增您的環境識別碼
  1. Power Platform 系統管理中心環境索引標籤中取得環境識別碼

    顯示可在何處取得環境識別碼的螢幕擷取畫面。

  2. 將您唯一的 <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 檔案路徑 (每行一個)
  • -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 系統管理中心自行提升

  1. 登入 Power Platform 系統管理中心

  2. 在左側面板中,選取環境

  3. 選擇環境旁邊的核取標記。

  4. 在命令列中選擇成員資格以要求自行提升。

  5. 系統管理員窗格隨即顯示。 選擇新增我,將自己新增到系統管理員角色。

    使用「成員資格」功能表選項要求自行提升。