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

如何使用New-AzADServicePrincipalAppRoleAssignment授予特定应用权限

使用New-AzADServicePrincipalAppRoleAssignment授予应用权限

要将特定应用的权限分配给目标主体(通常是另一个应用的服务主体),按以下步骤操作即可:

1. 获取核心信息

首先需要拿到三个关键ID:

  • 提供权限的应用的服务主体ID
  • 目标权限的AppRoleId(该应用定义的具体权限标识)
  • 被授予权限的主体的服务主体ID(通常是客户端应用)

示例:获取提供权限的应用服务主体

假设目标应用的显示名为「内部数据API」,执行命令获取其服务主体:

$resourceSP = Get-AzADServicePrincipal -DisplayName "内部数据API"

如果知道应用的客户端ID(ApplicationId),也可以用该值查找:

$resourceSP = Get-AzADServicePrincipal -ApplicationId "xxxx-xxxx-xxxx-xxxx"

示例:提取目标权限的AppRoleId

从上述服务主体的AppRoles集合中筛选出要分配的权限,比如权限值为data.read_write的项:

$targetRole = $resourceSP.AppRoles | Where-Object { $_.Value -eq "data.read_write" }

示例:获取被授予权限的客户端应用ID

假设要给「业务管理客户端」分配权限,获取其服务主体:

$clientSP = Get-AzADServicePrincipal -DisplayName "业务管理客户端"

2. 执行权限分配命令

用拿到的三个ID运行New-AzADServicePrincipalAppRoleAssignment:

New-AzADServicePrincipalAppRoleAssignment `
    -ObjectId $clientSP.Id `
    -ResourceId $resourceSP.Id `
    -AppRoleId $targetRole.Id

参数说明

  • ObjectId:被授予权限的主体(客户端应用)的服务主体ID
  • ResourceId:提供权限的应用的服务主体ID
  • AppRoleId:要分配的具体权限的唯一标识

注意事项

  • 执行命令的账号需要拥有Application Administrator或Global Administrator权限
  • 若要给用户/组分配应用权限,应使用New-AzADUserAppRoleAssignment或New-AzADGroupAppRoleAssignment,而非本命令
  • 确认目标应用的AppRoles中确实存在要分配的权限,避免因权限不存在导致命令失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 21:42:44