使用 Microsoft Entra Privileged Identity Management 对管理员角色进行管理

使用 Privileged Identity Management(PIM)在 Power Platform 管理中心管理 Microsoft Entra 高特权管理员角色。

先决条件

  • 删除环境中旧的系统管理员角色分配。 您可以使用 PowerShell 脚本在一个或多个 Power Platform 环境中清点和删除系统管理员角色中不需要的用户。

功能支持的更改

Microsoft 不再自动为具有 Power Platform 管理员和 Dynamics 365 管理员等全局或服务级别管理员角色的用户分配系统管理员角色。

这些管理员可以继续以这些权限登录 Power Platform 管理中心:

  • 启用或禁用租户级别设置
  • 查看环境的分析信息
  • 查看容量消耗

在没有许可证的情况下,这些管理员无法执行需要直接访问 Dataverse 数据的活动。 这些活动的例子包括:

  • 更新环境中用户的安全角色
  • 为环境安装应用程序

重要提示

全局管理员、Power Platform 管理员和 Dynamics 365 服务管理员必须完成另一个步骤后,才能执行需要访问 Dataverse 的活动。 他们必须在需要访问的环境中将自己提升为系统管理员角色。 所有提升操作将记录到 Microsoft Purview。

如果使用 Privileged Identity Management 获取对 ID 中 Microsoft Entra 管理员角色的实时访问权限,然后自行提升,则 Microsoft 会在 Privileged Identity Management 中的角色分配过期时(通常会在短时间后)删除 系统管理员 角色。

已知限制

  • 使用 API 时,如果调用方是系统管理员,则自提升调用将返回成功,而不是指示他们已退出。

  • 发出呼叫的用户必须分配有租户管理员角色。 有关符合租户管理标准的用户的完整列表,请参见功能支持的变化

  • 如果您是 Dynamics 365 管理员,并且环境受安全组保护,则必须是安全组的成员。 此规则不适用于具有全局管理员或 Power Platform 管理员角色的用户。

  • 需要提升其状态的用户必须调用提升 API。 它不允许 API 调用提升其他用户的状态。

  • 使用Microsoft Power Platform CoE 初学者工具包的客户可以使用一种变通方法。 有关更多信息和详情,请参阅 PIM 问题和解决方法 #8119

  • 不支持通过组分配角色。 确保您直接向用户分配角色。

自我提升为系统管理员角色

我们支持使用 PowerShell 或通过 Power Platform 管理中心的直观体验进行提升。

备注

尝试自我提升的用户必须是全局管理员、Power Platform 管理员或 Dynamics 365 管理员。具有其他 Entra ID 管理员角色的用户无法使用 Power Platform 管理中心中的用户界面,并且尝试通过 PowerShell API 进行自我提升会返回错误。

通过 PowerShell 自我提升

设置 PowerShell

安装 MSAL PowerShell 模块。 您只需安装该模块一次。

Install-Module -Name MSAL.PS

有关设置 PowerShell 的更多信息,请参阅 PowerShell 和 Visual Studio Code 快速入门 Web API

步骤 1:运行脚本进行提升

在此 PowerShell 脚本中,您可以:

  • 使用 Power Platform API 进行身份验证。
  • 使用您的环境 ID 构建 http 查询。
  • 使用 API 请求 Power Platform 提升。
找到并添加环境 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. 在“系统管理员” 窗格中,选择 “添加我 ”以将自己添加到系统管理员角色。