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

调用Microsoft Graph API添加Azure Virtual Desktop RBAC委派权限失败

解决AAD应用注册添加Azure Virtual Desktop RBAC权限的问题

问题核心

你尝试通过Microsoft Graph API的/applications端点为AAD应用注册添加Azure Virtual Desktop(AVD)的RBAC委派权限(如Microsoft.DesktopVirtualization/hostpools/*/read),但这类权限不在Microsoft Graph权限参考列表中,调用application-update接口时也无法找到相关权限,导致无法完成添加操作。

原因说明

AVD的这类权限属于Azure资源权限(由Azure Resource Manager管理),并非Microsoft Graph权限。Microsoft Graph权限列表仅包含与Graph服务相关的权限,因此无法通过Graph的/applications或application-update接口添加AVD的RBAC权限。

正确操作方式

1. 定位应用对应的服务主体

AAD应用注册会对应一个服务主体,你可以通过Microsoft Graph API的/servicePrincipals端点,传入应用的clientId查询其服务主体的objectId:

GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=appId eq '{clientId}'

2. 通过Azure RBAC分配权限

AVD的权限需要通过Azure RBAC机制分配给服务主体,可选择以下方式:

  • Azure CLI命令示例:
    az role assignment create \
      --assignee <service-principal-objectId> \
      --role "Desktop Virtualization Reader" \
      --scope "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.DesktopVirtualization/hostpools/<hostpool-name>"
    
  • Azure PowerShell命令示例:
    New-AzRoleAssignment `
      -ApplicationId <service-principal-appId> `
      -RoleDefinitionName "Desktop Virtualization Reader" `
      -Scope "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.DesktopVirtualization/hostpools/<hostpool-name>"
    
  • ARM API调用示例:
    发送PUT请求到ARM的角色分配端点:
    PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}?api-version=2022-04-01
    
    请求体示例:
    {
      "properties": {
        "roleDefinitionId": "/subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleDefinitions/<role-definition-id>",
        "principalId": "<service-principal-objectId>"
      }
    }
    

3. 自定义权限范围处理

如果需要使用如Microsoft.DesktopVirtualization/hostpools/*/read这类自定义权限范围,需先创建自定义RBAC角色,再将该角色分配给服务主体。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 22:15:36