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

Azure AD应用读取SharePoint文件夹所需权限及403错误排查

问题解答

一、读取SharePoint根文件夹所需权限

读取SharePoint站点根文件夹,满足以下任一权限配置即可:

  • Microsoft Graph应用权限:Files.ReadWrite.All 或 Sites.ReadWrite.All(需管理员同意),这两个权限均允许应用以自身身份访问所有站点的文件/文件夹(包括根路径)。
  • Microsoft Graph委托权限:Files.ReadWrite.All 或 Sites.ReadWrite.All(需用户登录并授权),适用于依赖用户上下文的场景,但后台服务类应用更推荐使用应用权限。
  • Sites.Selected权限:若依赖该权限,必须额外完成站点绑定配置——需站点管理员在SharePoint管理中心或通过Graph API,将目标站点与你的Azure AD应用关联,并为应用分配该站点的读写权限,否则该权限无法生效。

二、排查403错误的日志及验证手段

  1. 确认权限授予状态
    登录Azure门户进入应用注册页面,查看「API权限」标签,确认所需权限的状态为「已授予管理员同意」,而非「需要管理员同意」。
  2. 解码访问令牌
    使用jwt.ms工具解码应用获取的访问令牌,检查roles(应用权限)或scp(委托权限)声明中是否包含所需权限。若缺失,说明权限未正确同步到令牌中。
  3. Azure AD审核日志
    进入Azure AD -> 企业应用 -> 你的应用 -> 「日志」-> 「审核日志」,筛选「令牌颁发」相关记录,查看权限是否被正确授予,是否存在异常拦截。
  4. Microsoft Graph调用日志
    若调用的是Graph API,进入应用注册 -> 「监控」-> 「日志」,查看具体API请求的错误详情,日志中的errorCode和message字段会明确403的具体原因(如权限不足、站点未绑定等)。
  5. SharePoint日志
    若直接调用SharePoint REST API,可通过SharePoint管理中心的统一日志系统(ULS)查看错误,或使用PowerShell命令Get-SPOTenantLogEntry获取租户级别日志记录,定位权限拦截的具体场景。

另外,对比正常运行的旧应用:检查两者的权限类型(应用/委托)、是否启用Sites.Selected及站点绑定配置、令牌中的权限声明,这些差异往往是导致403的关键。

内容的提问来源于stack exchange,提问作者THX-1138

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 01:46:19