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

使用Microsoft Graph PowerShell SDK获取服务主体API权限遇问题求助

解决服务主体API权限不全的问题

你使用的Get-MgServicePrincipalOAuth2PermissionGrant -ServicePrincipalId <Id>仅能获取委托类型的API权限,而服务主体的权限分为两种类型,要拿到全部权限,需要结合以下操作:

1. 继续获取委托权限

保留你原有的命令,它返回的是管理员或用户授予的、允许服务主体代表用户访问的权限:

Get-MgServicePrincipalOAuth2PermissionGrant -ServicePrincipalId <你的服务主体ID>

2. 获取应用权限

应用权限是直接授予服务主体的、无需用户参与的权限,需要执行以下命令:

Get-MgServicePrincipalAppRoleAssignment -ServicePrincipalId <你的服务主体ID>

返回结果里的AppRoleId和ResourceDisplayName可对应具体的权限名称及所属API。

额外优化:匹配直观的权限名称

如果需要更清晰的权限展示,可以结合目标API的服务主体信息,匹配权限名称:

# 示例:获取Microsoft Graph的服务主体信息
$targetSp = Get-MgServicePrincipal -Filter "displayName eq 'Microsoft Graph'"
# 获取当前服务主体的应用权限
$appRoleAssignments = Get-MgServicePrincipalAppRoleAssignment -ServicePrincipalId <你的服务主体ID>
# 输出带名称的权限详情
$appRoleAssignments | ForEach-Object {
    $matchedRole = $targetSp.AppRoles | Where-Object Id -eq $_.AppRoleId
    [PSCustomObject]@{
        权限类型 = "应用权限"
        API名称 = $_.ResourceDisplayName
        权限名称 = $matchedRole.Value
        权限描述 = $matchedRole.Description
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 23:42:01