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

如何通过PowerShell脚本为Azure AD应用添加自定义API权限

给Azure AD应用添加自定义API权限的PowerShell脚本更新方法

要给AAD应用添加指定API的权限,核心是正确构造-RequiredResourceAccess参数的内容,下面是具体步骤和脚本示例:

1. 获取目标API的关键信息

首先得拿到你要授权的API的应用ID(Application ID),以及该API提供的权限ID(可在Azure门户的API权限页面查看,或用PowerShell查询)。

比如用PowerShell查询你的API服务主体信息:

# 替换为你的API的显示名称
$apiDisplayName = "你的自定义API显示名称"
$apiServicePrincipal = Get-AzADServicePrincipal -DisplayName $apiDisplayName
$apiAppId = $apiServicePrincipal.AppId

2. 构造权限配置对象

根据需要的权限类型(委派权限/应用权限),构造ResourceAccess对象,再包装成RequiredResourceAccess数组:

示例:添加委派权限(Delegated Permissions)

# 替换为你需要的委派权限ID
$delegatedPermissionId = "xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

# 构造单个权限项
$delegatedAccess = [Microsoft.Azure.Commands.ActiveDirectory.PSADResourceAccess]@{
    Id = $delegatedPermissionId
    Type = "Scope" # 委派权限用Scope,应用权限用Role
}

# 关联到目标API
$requiredResourceAccess = [Microsoft.Azure.Commands.ActiveDirectory.PSADRequiredResourceAccess]@{
    ResourceAppId = $apiAppId
    ResourceAccess = @($delegatedAccess)
}

示例:添加应用权限(Application Permissions)

# 替换为你需要的应用权限ID
$appPermissionId = "yyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"

$appAccess = [Microsoft.Azure.Commands.ActiveDirectory.PSADResourceAccess]@{
    Id = $appPermissionId
    Type = "Role"
}

$requiredResourceAccess = [Microsoft.Azure.Commands.ActiveDirectory.PSADRequiredResourceAccess]@{
    ResourceAppId = $apiAppId
    ResourceAccess = @($appAccess)
}

若需添加多个权限,直接在ResourceAccess数组里追加更多对象即可。

3. 更新创建应用的脚本

把构造好的$requiredResourceAccess传入New-AzADApplication命令,完整脚本示例:

# 定义基础参数
$uiAppDisplayName = "你的应用显示名称"
$replyUrls = @("https://your-app-url.com/auth/callback")
$apiDisplayName = "你的自定义API显示名称"

# 获取目标API的AppId
$apiServicePrincipal = Get-AzADServicePrincipal -DisplayName $apiDisplayName
$apiAppId = $apiServicePrincipal.AppId

# 构造权限(这里以委派权限为例,可替换为应用权限)
$delegatedPermissionId = "xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
$delegatedAccess = [Microsoft.Azure.Commands.ActiveDirectory.PSADResourceAccess]@{
    Id = $delegatedPermissionId
    Type = "Scope"
}

$requiredResourceAccess = [Microsoft.Azure.Commands.ActiveDirectory.PSADRequiredResourceAccess]@{
    ResourceAppId = $apiAppId
    ResourceAccess = @($delegatedAccess)
}

# 创建带指定API权限的AAD应用
$uiApp = New-AzADApplication -DisplayName $uiAppDisplayName `
                             -AvailableToOtherTenants $false `
                             -ReplyUrls $replyUrls `
                             -RequiredResourceAccess $requiredResourceAccess

4. 补充:若应用已创建,更新权限

如果AAD应用已经存在,用Update-AzADApplication命令更新权限:

# 替换为已创建应用的ObjectId或AppId
$existingAppObjectId = "zzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz"

Update-AzADApplication -ObjectId $existingAppObjectId `
                       -RequiredResourceAccess $requiredResourceAccess

注意:权限添加后,还需根据权限类型完成管理员同意(应用权限必须由管理员同意,委派权限可由用户或管理员同意),才能实际生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 03:05:12