调用MS Graph Sites.Selected权限接口POST返回403,所需角色是什么?
接口权限要求
针对 https://graph.microsoft.com/v1.0/sites/{siteId}/permissions 接口的两类请求,官方明确的权限规则如下:
POST请求(为应用分配指定站点的Sites.Selected权限)
仅支持应用权限模式调用,要求发起请求的应用已获得管理员授予的Sites.FullControl.All应用权限。
不支持委托权限模式(即使用用户身份在Graph Explorer中调用属于委托权限模式,官方不支持该场景)。
GET请求(查询指定站点的已分配权限列表)
仅支持应用权限模式调用,要求发起请求的应用已获得管理员授予的以下任意一项应用权限:
Sites.FullControl.AllSites.Manage.AllSites.Read.AllSites.ReadWrite.All
异常现象说明
- 开发者沙箱环境中主账号可正常调用属于沙箱的特殊兼容逻辑,不是生产环境的标准规则,不能用于生产环境的方案参考。
- 全局管理员、SharePoint管理员账号在Graph Explorer调用返回403属于正常情况:委托权限下该接口不对外开放,哪怕是最高权限的管理员用户也没有调用权限。
- 权限列表中的对勾如果属于「需要管理员同意」列,仅代表该权限需要管理员审批才能授予,不代表当前账号/应用已经获得该权限,只有标记为「已同意」的权限才是有效权限。
- 所有公开渠道提到的可在Graph Explorer中调用该接口的方案,均是仅在沙箱环境测试得到的结果,无法在生产环境复现。
- 通过PowerShell以用户身份调用该接口授予站点权限的方案,在生产环境同样会返回报错。
内容的提问来源于stack exchange,提问作者WalkingDadJokes
相关产品推荐
相关产品推荐

