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

关于选择正确MS Graph API接口URL的技术咨询

接口选择建议:优先使用Microsoft Graph,排查异常用户问题

核心结论

优先选择Microsoft Graph(https://graph.microsoft.com/v1.0),旧的Azure AD Graph(https://graph.windows.net)已被官方弃用,不再提供维护和功能更新,长期依赖存在服务关停风险。你遇到的2个用户查询失败问题,可通过调整Microsoft Graph的调用方式解决。

为什么不建议依赖旧接口

  • 旧接口属于Azure AD Graph范畴,微软已明确终止维护,后续无安全更新和功能迭代,服务稳定性无法保障
  • 所有Azure AD相关的新能力都会在Microsoft Graph上发布,旧接口不会再新增任何支持

解决2个用户查询失败的具体方案

你用/v1.0/users/{EmailAddress}查询失败,通常是因为该接口仅支持匹配用户的userPrincipalName、mail或objectId。如果这两个用户的邮箱是存放在proxyAddresses属性里的别名(比如共享邮箱、自定义别名),直接用邮箱作为路径参数就会查不到。可以改用带多条件过滤的Microsoft Graph接口,覆盖更多场景:

var httpClient = new HttpClient
{
    BaseAddress = new Uri("https://graph.microsoft.com/")
};
// 同时匹配userPrincipalName、mail、proxyAddresses中的邮箱
string URI = $"/v1.0/users?$filter=userPrincipalName eq '{EmailAddress}' or mail eq '{EmailAddress}' or proxyAddresses/any(p:p eq 'smtp:{EmailAddress}')";

额外排查方向:

  • 核对用户属性:在Azure AD后台查看这两个用户的userPrincipalName、mail、proxyAddresses字段,确认你用来查询的邮箱对应哪个属性
  • 检查权限:确保应用已配置User.Read.All或Directory.Read.All的应用权限(委托权限可能无法访问所有用户)

临时兼容方案(不推荐长期使用)

如果短期内无法调整Microsoft Graph调用逻辑,可临时用旧接口救急,但必须尽快完成迁移。旧接口的调用逻辑你已掌握,注意保持api-version参数正确,同时关注官方弃用进度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 05:25:13