如何将Get-AzADAppPermission返回的权限GUID转换为英文名称?
将Azure AD应用权限GUID转换为英文名称的方法
要把Get-AzADAppPermission返回的权限GUID转换成对应的英文名称,核心是通过查询权限所属API的服务主体,将GUID与服务主体中定义的权限元数据进行匹配,以下是具体操作步骤:
1. 明确权限所属的API
多数场景下这类权限属于Microsoft Graph,其固定服务主体AppId为00000003-0000-0000-c000-000000000000。如果是Exchange Online等其他API,需先找到对应API的服务主体AppId。
2. 用PowerShell脚本自动匹配权限名称
将你的应用注册ObjectId替换到指定位置,执行以下脚本即可直接输出权限GUID对应的英文名称及详细信息:
# 替换为你的应用注册ObjectId $targetAppObjectId = "cbXXXX80-c841-XXXX-XXXX-0eXXXXXXX6d6" # 获取目标应用的权限列表 $appPerms = Get-AzADAppPermission -ObjectId $targetAppObjectId # 获取Microsoft Graph服务主体(若为其他API,替换此处的AppId) $apiSp = Get-AzADServicePrincipal -Filter "AppId eq '00000003-0000-0000-c000-000000000000'" # 匹配GUID与权限名称 $result = foreach ($perm in $appPerms) { # 优先匹配委派权限(OAuth2Permissions),再匹配应用权限(AppRoles) $matchedPerm = $apiSp.OAuth2Permissions | Where-Object Id -eq $perm.PermissionId if (-not $matchedPerm) { $matchedPerm = $apiSp.AppRoles | Where-Object Id -eq $perm.PermissionId } [PSCustomObject]@{ 权限GUID = $perm.PermissionId 权限英文名称 = $matchedPerm.Value 权限显示名称 = $matchedPerm.DisplayName 权限描述 = $matchedPerm.Description 权限类型 = if ($perm.PermissionType -eq "Application") { "应用权限" } else { "委派权限" } } } # 输出匹配结果 $result
3. 适配其他API的情况
如果权限不属于Microsoft Graph,先执行Get-AzADServicePrincipal列出所有服务主体,找到目标API的AppId,替换脚本中Get-AzADServicePrincipal命令的AppId值即可。
内容的提问来源于stack exchange,提问作者Geezer
相关产品推荐
相关产品推荐

