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

如何查询Azure AD Graph获取SignInName以定位用户对象?

解决Azure AD Graph中通过SignInName查询用户的问题

你猜的完全正确!问题根源就在于signInNames是一个集合类型的属性,而非单个值,直接用eq做等值匹配自然会触发那个错误。在Azure AD Graph里,针对集合类属性的过滤,必须用any操作符来遍历集合内的元素进行匹配。

正确的查询请求应该写成这样:

https://graph.windows.net/myB2Ctenant.onmicrosoft.com/users?api-version=1.6&$filter=signInNames/any(s:s/value eq 'spottedmahn')

给你拆解一下这个语法:

  • signInNames/any():表示要遍历signInNames集合中的每一个元素
  • s:s/value eq 'spottedmahn':给集合里的元素起一个临时别名s,然后判断这个元素的value属性是否等于你要查找的登录名字符串

另外还有几个小细节要注意:

  • 匹配的字符串值必须用单引号包裹
  • 要确保你的请求拥有足够的权限(比如User.Read.All这类用户读取权限)
  • 这个语法完全适配B2C租户场景,因为B2C用户的登录信息本来就存储在signInNames集合中

赶紧试试这个请求,应该就能顺利定位到对应的用户对象了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:48:39