OneDrive API令牌未获取到请求的权限范围问题求助
问题原因及解决办法
- v1.0端点的权限处理限制:你使用的是Azure AD v1.0的OAuth2端点,这类端点处理Microsoft Graph权限的逻辑和v2.0存在差异。在v1.0环境下请求Graph权限时,必须搭配
resource=https://graph.microsoft.com参数,否则Files.ReadWrite.All这类权限无法被正确识别,最终返回的是已存在的低权限Files.Read.All,而User.Read是默认自动附带的基础权限。 - 权限同意流程未完成:
- 如果未完成管理员同意操作,用户之前可能仅授权过
Files.Read.All,浏览器缓存了同意状态,此次授权直接沿用了旧权限配置。 - 登录Azure门户进入应用的API权限页面,确认
Files.ReadWrite.All的状态为“已授予租户管理员同意”;如果走用户同意流程,需清除浏览器缓存后重新发起授权,确保授权弹窗中明确勾选Files.ReadWrite.All权限。
- 如果未完成管理员同意操作,用户之前可能仅授权过
- 请求参数缺失:在获取令牌的POST请求中,除指定
scope=Files.ReadWrite.All外,必须添加resource=https://graph.microsoft.com参数,v1.0端点依赖该参数定位Graph资源。 - 权限类型配置错误:检查Azure门户中添加的
Files.ReadWrite.All是否为委托权限,若误添加为应用权限(供后台服务使用),则在用户上下文场景下无法生效,自然返回低权限。
内容的提问来源于stack exchange,提问作者Prasanna
相关产品推荐
相关产品推荐

