You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法通过Get-MgServicePrincipal获取UnifiedPolicy.User.Read角色的问题

问题分析与解决方案

核心原因

你混淆了服务主体自身定义的权限和服务主体被授予的权限:

  • Get-MgServicePrincipal返回的是目标服务主体(appId为870c4f2e-85b6-4d43-bdda-6ed9a579b725的应用)自己定义的AppRoles(应用权限)和OAuth2Permissions(委派权限)。
  • UnifiedPolicy.User.Read是Microsoft Information Protection Sync Service这个服务主体定义的权限,你的应用是被授予了该权限,所以不会出现在自身的权限列表里。

查看你的应用被授予的UnifiedPolicy.User.Read权限

执行以下PowerShell命令:

  1. 先获取你的服务主体对象:
$yourSp = Get-MgServicePrincipal -Filter "appId eq '870c4f2e-85b6-4d43-bdda-6ed9a579b725'"
  1. 查询该服务主体被授予的所有应用权限(角色):
Get-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $yourSp.Id | Where-Object { $_.AppRoleId -eq (Get-MgServicePrincipal -Filter "displayName eq 'Microsoft Information Protection Sync Service'").AppRoles.Where({$_.Value -eq 'UnifiedPolicy.User.Read'}, 'First').Id }
  1. 如果是委派权限,查询OAuth2权限授予:
Get-MgOauth2PermissionGrant -Filter "clientId eq '$($yourSp.Id)'" | Where-Object { $_.Scope -match 'UnifiedPolicy.User.Read' }

查看Microsoft Information Protection Sync Service的UnifiedPolicy.User.Read权限定义

如果你想确认该权限的具体信息,执行:

# 获取MIP Sync Service的服务主体
$mipSyncSp = Get-MgServicePrincipal -Filter "displayName eq 'Microsoft Information Protection Sync Service'"
# 查找UnifiedPolicy.User.Read应用权限
$mipSyncSp.AppRoles | Where-Object { $_.Value -eq 'UnifiedPolicy.User.Read' }
# 若为委派权限,查询此处
$mipSyncSp.Oauth2PermissionScopes | Where-Object { $_.Value -eq 'UnifiedPolicy.User.Read' }

内容的提问来源于stack exchange,提问作者user527614

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 15:25:16