关于通过脚本上传文件到SharePoint所需应用角色的咨询
你遇到的AccessDenied错误是因为客户端凭据模式下必须使用应用权限(对应应用角色),委派权限的scp声明不会出现在该模式生成的令牌中,必须确保令牌包含roles声明才能通过权限校验。
针对上传文件到SharePoint并获取站点ID、驱动器ID的场景,需要配置以下两个Microsoft Graph应用权限(即应用角色):
- Files.ReadWrite.All:允许应用读写所有SharePoint站点文档库内的文件,满足上传、修改文件的核心需求
- Sites.ReadWrite.All:允许应用读写所有SharePoint站点的内容,包含获取站点ID、驱动器ID的操作权限
配置步骤:
- 登录Azure Active Directory,进入你的应用注册页面
- 切换到「API权限」选项卡
- 点击「添加权限」,选择「Microsoft Graph」后切换到「应用权限」分类
- 搜索并添加上述两个权限,完成后点击「授予管理员同意」(必须执行此步骤,否则权限无法生效)
配置完成后重新获取访问令牌,令牌中会包含对应的roles声明,即可正常调用获取站点ID、驱动器ID以及上传文件的接口。
内容的提问来源于stack exchange,提问作者Brijesh Khanna
相关产品推荐
相关产品推荐

