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

如何通过Graph API或其他方式读写Azure B2C MFA电话号码

编程检索/修改Azure B2C账户MFA电话号码的实用方案

嘿,现在确实有比你提到的旧方案更直接可靠的办法了,我给你整理下目前最推荐的实现方式,都是基于微软现在主推的工具:

一、检索MFA电话号码

1. 优先用Microsoft Graph API(官方推荐)

这是当前最标准的方式,Azure B2C已经完全适配了Graph API的用户身份验证方法管理:

  • 第一步得给你的应用注册配置权限:如果是管理员批量操作,需要UserAuthenticationMethod.Read.All权限;如果是用户自己查自己的MFA号码,用委托权限UserAuthenticationMethod.Read就行,记得要在Azure B2C租户下完成应用注册并授予管理员同意(部分权限需要手动确认)。
  • 调用GET /users/{userId}/authentication/phoneMethods端点,就能拿到用户所有用于MFA的电话验证方法,返回结果里的phoneNumber就是你要找的号码,phoneType会标注是移动电话还是固定电话。
  • 给你个PowerShell快速测试的例子:
# 连接到Graph,指定你的B2C租户ID
Connect-MgGraph -TenantId "你的B2C租户ID" -Scopes "UserAuthenticationMethod.Read.All"
# 查询指定用户的MFA电话方法
Get-MgUserAuthenticationPhoneMethod -UserId "用户的Object ID"

2. 旧版B2C Graph API(不推荐,仅兼容旧项目)

如果你的项目还在依赖旧的B2C Graph API,也能查到,但这个方式微软已经停止维护了,尽量迁移。MFA号码会存在扩展属性里,格式是extension_<你的B2C扩展应用客户端ID>_phoneNumber,调用用户详情端点就能拿到,但还是建议尽快转用上面的Graph API。

二、修改MFA电话号码

同样用Microsoft Graph API来操作,步骤很清晰:

  • 权限需要UserAuthenticationMethod.ReadWrite.All(管理员操作)或者UserAuthenticationMethod.ReadWrite(用户自助修改),同样要完成权限配置和同意。
  • 操作分两步:先删掉旧的电话验证方法,再添加新号码:
    1. 删除旧方法:调用DELETE /users/{userId}/authentication/phoneMethods/{phoneMethodId},这里的phoneMethodId可以从之前的查询结果里拿到。
    2. 添加新号码:调用POST /users/{userId}/authentication/phoneMethods,请求体示例如下:
    {
      "phoneNumber": "+1234567890",
      "phoneType": "mobile"
    }
    
  • PowerShell示例:
# 删除旧的MFA电话方法,替换为实际的method ID和用户ID
Remove-MgUserAuthenticationPhoneMethod -UserId "用户Object ID" -PhoneAuthenticationMethodId "旧方法的ID"

# 添加新的MFA电话号码
New-MgUserAuthenticationPhoneMethod -UserId "用户Object ID" -PhoneNumber "+1987654321" -PhoneType "mobile"

几个关键提醒

  • 一定要确保应用注册是在你的Azure B2C租户下创建的,跨租户的应用可能会有权限问题。
  • 如果是做用户自助修改的场景,除了编程调用API,也可以直接集成Azure B2C的自定义用户流或者自助服务密码重置(SSPR)功能,让用户在前端界面自行修改,这样更符合用户习惯。
  • 旧的Azure AD Graph API已经被弃用了,别再用了,微软后续不会再更新,容易出兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:11:42