解决Microsoft Graph PowerShell查询Entra ID服务主体OAuth2权限授予返回null问题
解决服务主体OAuth2权限授予查询返回$null的问题
问题原因
Get-MgServicePrincipal默认请求的属性集合不包含oauth2PermissionGrants关联数据,所以直接获取的对象里该字段自然是$null。
解决方案
方法1:查询时直接展开关联权限
在获取服务主体的同时,通过-ExpandProperty参数加载关联的OAuth2权限授予数据:
$servicePrincipal = Get-MgServicePrincipal -ServicePrincipalId c3c1919a-eb0e-4664-96c7-3a4112345678 -ExpandProperty "oauth2PermissionGrants" # 查看具体权限授予信息 $servicePrincipal.Oauth2PermissionGrants
方法2:单独查询目标服务主体的权限授予
如果只需要权限授予数据,也可以直接调用Get-MgOauth2PermissionGrant并通过clientId筛选目标服务主体:
$oauthGrants = Get-MgOauth2PermissionGrant -Filter "clientId eq 'c3c1919a-eb0e-4664-96c7-3a4112345678'" $oauthGrants
关键注意点
- 执行命令前必须通过
Connect-MgGraph完成身份验证,且登录账号需要拥有Directory.Read.All或更高权限(比如Directory.ReadWrite.All) - 如果返回结果仍然为空,说明该服务主体确实没有被授予任何OAuth2委托权限,可以在Azure门户的应用注册中确认权限配置情况
内容的提问来源于stack exchange,提问作者Shuzheng
相关产品推荐
相关产品推荐

