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

如何通过显示名从Microsoft Graph API获取Azure B2C用户Object ID?

解决方案:通过邮箱获取Azure B2C用户Object ID并更新自定义属性

方法1:用Microsoft Graph API直接查询邮箱匹配的用户

Azure AD连接器依赖UPN查询的限制可以通过直接调用Graph API绕过,支持按邮箱字段精准过滤:

  • 在Power Automate中添加HTTP动作:
    • 请求方法:GET
    • 请求URI:https://graph.microsoft.com/v1.0/users?$filter=mail eq '{用户邮箱}'&$select=id
    • 身份验证选择「Azure AD OAuth」,配置项:
      • 租户:你的B2C租户ID
      • 受众:https://graph.microsoft.com
      • 权限需提前分配User.Read.All或Directory.Read.All(确保流的服务主体已获得管理员同意)
  • 解析返回的JSON响应,提取value[0].id即为目标用户的Object ID
  • 携带该Object ID调用Patch请求https://graph.microsoft.com/v1.0/users/{object-id}完成自定义属性更新

注:若存在极罕见的多用户同邮箱场景,可追加额外过滤条件(如givenName或surname)缩小范围

方法2:使用Azure AD B2C专用连接器

若你的Power Automate环境已部署Azure AD B2C连接器,可直接利用其适配B2C租户的特性:

  • 添加Azure AD B2C连接器的「Get user by email」动作
  • 输入目标用户邮箱,返回结果中直接提取Object ID字段
  • 后续流程同方法1的Patch请求步骤

方法3:Power App内直接完成查询与更新(跳过Power Automate)

若无需中间流处理逻辑,可在Power App内直接操作:

  1. 给Power App注册Graph API权限:User.Read.All、User.ReadWrite.All并完成管理员同意
  2. 使用Office365Users连接器的SearchUserV2方法查询用户:
    Set(varTargetUser, First(Office365Users.SearchUserV2({searchQuery: "mail:" & txtUserEmail.Text}).value));
    Set(varObjectID, varTargetUser.Id);
    
  3. 调用Graph API的Patch接口完成属性更新,或使用Office365Users.UpdateUser方法直接修改

权限核心注意事项

  • 查询用户需User.Read.All/Directory.Read.All权限,更新用户需User.ReadWrite.All/Directory.ReadWrite.All权限
  • 需在B2C租户的应用注册中,给对应服务主体(Power Automate应用或Power App)分配上述权限并授予管理员同意

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 16:06:41