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

AAD B2C调用Microsoft Graph API筛选identities返回空数组求助

解决AAD B2C通过Graph API按手机号身份筛选用户无结果的问题

核心问题分析

你遇到的无结果返回问题,主要由两个细节错误导致:

  • URL中+号未编码:HTTP请求里,+号会被解析为空格,直接用+55444444444会导致服务器匹配不到存储的带+号的手机号
  • Beta API路径错误:错误在users前添加了租户域名,正确路径无需额外指定租户域名(认证时已通过令牌指定租户)

正确请求示例

V1.0版本API

https://graph.microsoft.com/v1.0/users?$select=id,displayName,identities&$filter=identities/any(c:c/issuerAssignedId eq '%2B55444444444' and c/issuer eq 'ourtenant.onmicrosoft.com' and c/signInType eq 'phoneNumber')

Beta版本API

https://graph.microsoft.com/beta/users?$filter=identities/any(i:i/issuer eq 'ourtenant.onmicrosoft.com' and i/issuerAssignedId eq '%2B55444444444' and i/signInType eq 'phoneNumber')

关键说明

  1. URL编码处理:必须将手机号中的+号编码为%2B,确保服务器收到的字符串与用户身份存储的格式完全一致
  2. 添加signInType筛选:明确指定c/signInType eq 'phoneNumber'可以避免误匹配其他类型的身份(如UPN),同时提升查询效率
  3. 路径正确性:无论V1.0还是Beta版本,用户资源路径都是/users,不需要在路径中追加租户域名

验证步骤

  1. 先通过用户ID获取身份信息,确认存储的手机号格式:
    GET https://graph.microsoft.com/v1.0/users/{userId}/identities
    
  2. 使用Postman、Insomnia等工具发送请求,这类工具会自动处理URL编码,减少手动编码出错概率

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 23:32:01