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

使用Graph REST API在Entra ID中为应用注册创建用户范围

正确更新Entra ID应用注册用户范围的Graph API方式

你遇到的问题是因为直接使用了已废弃的顶级oauth2Permissions字段,当前Graph API v1.0中,应用注册的用户范围(对应应用清单里的oauth2Permissions)实际对应application资源的api.oauth2PermissionScopes属性,需通过该路径进行更新。

以下是两种可行的更新方式:

1. 替换整个权限范围数组(需包含所有现有范围)

这种方式会覆盖原有所有用户范围,因此需要将现有范围和新范围一起提交:

PATCH https://graph.microsoft.com/v1.0/applications/{applicationId}
Authorization: Bearer <your-access-token>
Content-Type: application/json

{
    "api": {
        "oauth2PermissionScopes": [
            // 保留所有已存在的用户范围
            {
                "adminConsentDescription": "原权限的管理员授权描述",
                "adminConsentDisplayName": "原权限的管理员授权名称",
                "id": "原权限的唯一GUID",
                "isEnabled": true,
                "type": "User",
                "userConsentDescription": "原权限的用户授权描述",
                "userConsentDisplayName": "原权限的用户授权名称",
                "value": "原权限的标识值"
            },
            // 添加新的用户范围
            {
                "adminConsentDescription": "Read access to user profiles",
                "adminConsentDisplayName": "Read user profiles",
                "id": "生成的唯一新GUID", // 必须自行生成不重复的GUID
                "isEnabled": true,
                "type": "User",
                "userConsentDescription": "Read access to your user profile",
                "userConsentDisplayName": "Read your user profile",
                "value": "User.Read"
            }
        ]
    }
}

2. 增量添加单个用户范围(推荐,避免覆盖原有数据)

使用JSON Patch格式进行增量更新,仅添加新的范围,无需修改现有数据:

PATCH https://graph.microsoft.com/v1.0/applications/{applicationId}
Authorization: Bearer <your-access-token>
Content-Type: application/json-patch+json

[
    {
        "op": "add",
        "path": "/api/oauth2PermissionScopes/-",
        "value": {
            "adminConsentDescription": "Read access to user profiles",
            "adminConsentDisplayName": "Read user profiles",
            "id": "生成的唯一新GUID",
            "isEnabled": true,
            "type": "User",
            "userConsentDescription": "Read access to your user profile",
            "userConsentDisplayName": "Read your user profile",
            "value": "User.Read"
        }
    }
]

关键注意事项:

  • 每个用户范围的id必须是全局唯一的GUID,不能与其他范围重复,需自行生成
  • 调用该API需要具备Application.ReadWrite.All或Directory.AccessAsUser.All权限
  • 若需更新现有范围,可将op设为replace,并指定具体范围的索引路径(如/api/oauth2PermissionScopes/0),同时提交修改后的字段内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 22:19:55