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

Azure AD访客用户调用Microsoft Graph API返回404无法获取数据

针对Azure AD访客用户调用Microsoft Graph返回404的排查检查项

1. 身份标识参数校验

  • 确认调用Graph时指定的用户ID/用户主体名(UPN)是否为访客用户在Tenant A的标识,而非Tenant B的原生标识:访客用户在Tenant A的UPN通常会带有#EXT#后缀,例如user_domain.com#EXT#@tenantA.onmicrosoft.com,如果直接用Tenant B原生的user@domain.com在Tenant A的Graph端点查询,会直接返回404。
  • 可以先调用GET https://graph.microsoft.com/v1.0/users(用Tenant A的全局管理员token)搜索该访客的显示名,确认其在Tenant A中的正确id和userPrincipalName值后再代入查询。

2. Access Token受众与权限校验

  • 解码访客用户的access token,确认aud声明值为https://graph.microsoft.com,tid声明值为Tenant A的租户ID,如果token的租户是Tenant B,直接调用Tenant A资源会返回404。
  • 确认token中存在你调用站点列表接口所需的权限,例如Sites.Read.All或Sites.ReadWrite.All,如果是委派权限场景,需要确认访客用户在Tenant A中已被授予对应权限的管理员同意。

3. 租户侧访客权限配置校验

  • 检查Tenant A的Azure AD外部身份设置:确认「外部用户的访问权限限制」未设置为完全限制外部用户访问目录信息,若该配置开启,Graph会拦截外部用户的目录查询请求返回404而非401。
  • 检查Tenant A的SharePoint Online外部共享设置:确认你要拉取的站点所属的站点集/租户级外部共享开关已开启,且该访客用户已被允许访问对应SharePoint资源,部分场景下SharePoint会对无访问权限的外部用户返回404而非空列表。

4. Graph端点与查询参数校验

  • 确认你调用的接口路径是否正确:如果是拉取当前登录用户的站点列表,委派权限场景建议用GET https://graph.microsoft.com/v1.0/me/sites而非指定用户ID的路径,避免用户标识传错的问题。
  • 如果你使用的是应用权限调用指定用户的站点列表,需要确认你已在Tenant A中对应用注册授予了Sites.Read.All的应用权限且完成管理员同意,同时查询时使用的用户ID是Tenant A中访客的正确ID。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 06:24:00