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

如何检查Azure应用注册的API权限是否需要管理员同意?

解决Azure应用注册权限管理员同意状态检查问题

问题分析

az ad app permission list命令仅会列出已配置的权限,不会返回该权限是否已获得管理员同意的状态,这就是你每次执行都得到相同结果的原因。要检查权限是否已被同意,需要结合az ad app permission grant list命令来对比已授予的权限。

解决方案步骤

  • 先获取应用注册上配置的所有权限(分为应用权限Role和委派权限Scope)
  • 获取已被管理员授予的权限列表
  • 对比两者,找出尚未获得同意的权限

示例PowerShell脚本

$appId = "你的应用注册ID"

# 获取配置的所有权限
$configuredPermissions = az ad app permission list --id $appId --output json | ConvertFrom-Json

# 获取已授予的权限
$grantedPermissions = az ad app permission grant list --id $appId --output json | ConvertFrom-Json

# 检查应用权限(Role类型)的同意状态
foreach ($resource in $configuredPermissions) {
    foreach ($access in $resource.resourceAccess) {
        if ($access.type -eq "Role") {
            $permissionId = $access.id
            $resourceAppId = $resource.resourceAppId
            # 查找是否存在对应的已授予权限
            $isGranted = $grantedPermissions | Where-Object {
                $_.resourceId -eq $resourceAppId -and $_.permissionId -eq $permissionId -and $_.grantType -eq "Application"
            }
            if (-not $isGranted) {
                Write-Host "应用权限 $permissionId (资源ID: $resourceAppId) 未获得管理员同意"
            }
        }
    }
}

# 检查委派权限(Scope类型)的管理员同意状态
foreach ($resource in $configuredPermissions) {
    foreach ($access in $resource.resourceAccess) {
        if ($access.type -eq "Scope") {
            $permissionId = $access.id
            $resourceAppId = $resource.resourceAppId
            # 查找是否存在管理员同意的委派权限(consentType为AllPrincipals表示管理员同意所有用户)
            $isGranted = $grantedPermissions | Where-Object {
                $_.resourceId -eq $resourceAppId -and $_.permissionId -eq $permissionId -and $_.consentType -eq "AllPrincipals"
            }
            if (-not $isGranted) {
                Write-Host "委派权限 $permissionId (资源ID: $resourceAppId) 未获得管理员同意"
            }
        }
    }
}

关键说明

  • 应用权限的同意状态通过grantType = Application判断,代表已授予应用级别的权限
  • 委派权限的管理员同意通过consentType = AllPrincipals判断,代表管理员已同意所有用户使用该权限
  • 如果是仅针对特定用户的委派同意,consentType会是Principal,这种情况不属于管理员全局同意

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 18:00:06