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

MS Graph接口https://graph.microsoft.com/v1.0/me/followedSites调用异常求助

针对MS Graph权限问题的排查与解决方案

可能的原因分析

  • 权限范围请求不完整:即使应用注册了Sites.ReadWrite.All,但获取令牌时未正确包含该权限,或API存在隐式的User.Read依赖。部分Graph API端点在处理用户上下文请求时,会默认校验用户基本信息权限,即使文档未明确标注。
  • Graph Explorer的默认行为:Graph Explorer会自动将User.Read作为基础权限包含在令牌中,这是它能正常调用的原因,而你的自定义应用未显式请求该权限时就会触发错误。
  • 权限类型不匹配:要区分应用权限(无用户上下文)和委派权限(有用户上下文):
    • 若使用应用权限,需确保Sites.ReadWrite.All是应用权限类型且已完成管理员同意;
    • 若使用委派权限,API可能需要User.Read来验证用户会话合法性。

解决步骤

  1. 验证权限配置与令牌内容

    • 检查应用注册中的权限类型:确认Sites.ReadWrite.All的类型(应用/委派)正确,且已完成对应的同意流程(应用权限需管理员同意)。
    • 用JWT解码工具解析令牌,查看scp(委派权限)或roles(应用权限)字段,确认Sites.ReadWrite.All已包含在内。如果缺失,调整令牌请求的scope参数:
      • 应用权限请求使用https://graph.microsoft.com/.default作为scope;
      • 委派权限请求显式指定Sites.ReadWrite.All,若仍报错,添加User.Read到scope中。
  2. 排查API端点的隐藏依赖

    • 确认你调用的具体Graph API端点,部分涉及用户与站点关联的端点(如获取用户所属站点),会隐式要求User.Read权限,即使文档未说明。
  3. 兼容处理:显式添加User.Read权限

    • 既然添加User.Read后问题解决,可将该权限作为必要权限添加到应用中。委派权限下用户同意成本低,应用权限下User.Read无需额外管理员同意,不影响权限合规性。

内容的提问来源于stack exchange,提问作者ZM Question

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 03:55:03