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

Azure B2C中MS Graph API查询用户报错,如何按邮箱+其他属性查询或同步邮箱至mail?

解决方案:Azure B2C 本地账户按邮箱+其他属性查询及邮箱属性存储问题

一、按邮箱+其他属性查询用户的替代方案

由于Microsoft Graph API不支持同时对identities属性和其他属性(如姓名、姓氏)进行复合过滤,你可以采用以下两种可行方式:

  • 分步查询+客户端二次筛选:
    1. 先仅通过identities过滤出匹配目标邮箱的用户:
      GET https://graph.microsoft.com/v1.0/users?$filter=identities/any(id:id/issuer eq 'mytenant.onmicrosoft.com' and id/issuerAssignedId eq 'user@email.com') and creationType eq 'LocalAccount'
      
    2. 在客户端从返回的用户列表中,手动筛选出符合姓名、姓氏等其他属性条件的用户。
  • 批量ID过滤(限15个ID以内):
    1. 先获取所有匹配邮箱的用户ID,整理成ID列表。
    2. 再结合id in语法和其他属性做精准过滤:
      GET https://graph.microsoft.com/v1.0/users?$filter=id in ('user-id-1','user-id-2') and givenName eq '张三' and surname eq '李四'
      
      注意:id in最多支持15个ID的批量查询,超出数量需分批处理。

二、强制用户流将邮箱存储到mail属性

可以通过Azure B2C内置用户流的配置实现:

  1. 登录Azure门户,进入你的B2C租户,打开用户流页面。
  2. 选中正在使用的“注册并登录”用户流,点击属性和声明。
  3. 在用户属性中,确保已勾选“电子邮件地址”(默认已开启)。
  4. 在应用程序声明中,添加mail作为输出声明,并将其映射到用户属性里的“电子邮件地址”。
  5. 保存配置后,新注册用户的邮箱会自动同步到mail属性中。

如果使用自定义策略,可在对应TechnicalProfile中添加以下输出声明映射:

<OutputClaim ClaimTypeReferenceId="mail" PartnerClaimType="signInNames.emailAddress" />

内容的提问来源于stack exchange,提问作者Adam Łepkowski

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 19:52:08