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

如何通过Graph API实现跨租户用户委托访问SharePoint?

跨租户用户委托Graph API访问SharePoint可行性及实现要点

你的需求完全可行,以下是关键配置和实现要点:

租户A应用配置

  • 租户A的前端(Angular/Node.js/Express)和后端(C# Web API)对应的Azure AD应用,需配置跨租户支持:
    • 将应用的账户类型设置为「任何组织目录中的账户」,或「特定组织目录中的账户」并添加租户B的ID到允许列表。
    • 添加针对Microsoft Graph的用户委托权限(如Sites.Read.All、Sites.ReadWrite.All等,按需选择),权限的目标租户为租户B。
  • 确保应用已获得权限同意:可由租户B的管理员进行管理员同意,或由租户A的来宾用户在首次访问时完成用户同意。

租户B侧配置

  • 确认租户A的来宾用户已拥有目标SharePoint站点的对应权限(如站点成员、编辑权限),用户委托令牌会直接沿用该用户的实际站点权限。
  • 无需单独使用租户B创建的AD应用,所有权限请求和令牌获取都通过租户A的应用完成。

令牌获取流程

  • 前端通过MSAL登录租户A后,在请求访问租户B的Graph API时,需指定租户B的ID作为请求参数(或使用common),同时携带所需的Graph API权限范围。
  • 若后端需要调用Graph API,需使用On-Behalf-Of (OBO) 流程:前端将授权码或ID Token传给租户A的后端,后端以此向Azure AD请求租户B的Graph API访问令牌,实现用户委托的权限传递。

常见问题排查

  • 若令牌获取失败,检查租户A的应用是否已添加正确的跨租户用户委托权限,且已完成权限同意。
  • 验证来宾用户在租户B中是否能直接访问目标SharePoint站点,权限不足会导致Graph API调用被拒绝。
  • 确认MSAL请求中的租户ID、权限范围参数是否正确,避免因参数错误导致令牌无效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 04:25:20