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

如何通过Graph API在Azure B2C创建用户时添加认证邮箱?

在Azure B2C中通过Graph API配置用户的密码重置认证邮箱

我来帮你搞定这个问题!在Azure AD B2C里,要给用户添加用于密码重置的认证邮箱,主要有两种场景:创建用户时直接配置,或者给已存在的用户补加认证邮箱。下面一步步给你讲清楚:

场景1:创建用户时同步设置认证邮箱

当你调用Graph API的POST /users接口创建用户时,可以在请求体里同时指定登录身份和认证邮箱,这样用户创建完成后就能直接用这个邮箱做密码重置。

请求JSON示例

{
  "accountEnabled": true,
  "displayName": "Dinusha Test",
  "mailNickname": "dinushatest",
  "userPrincipalName": "dinusha.test@yourb2ctenant.onmicrosoft.com",
  "passwordProfile": {
    "forceChangePasswordNextSignIn": true,
    "password": "YourStrongPass123!"
  },
  "identities": [
    {
      "signInType": "emailAddress",
      "issuer": "yourb2ctenant.onmicrosoft.com",
      "issuerAssignedId": "dinusha.test@example.com"
    }
  ],
  "authenticationMethods": [
    {
      "@odata.type": "#microsoft.graph.emailAuthenticationMethod",
      "emailAddress": "dinusha.test@example.com"
    }
  ]
}

关键参数解释

  • identities:这里把signInType设为emailAddress,既指定了用户的登录邮箱,同时这个邮箱也会默认成为密码重置的首选邮箱。
  • authenticationMethods:显式添加电子邮件认证方法,确保这个邮箱被系统标记为可用于密码重置的认证渠道。

划重点:调用这个接口需要User.ReadWrite.All权限,而且要确保你的Graph API应用在B2C租户里已经配置好对应权限哦。

场景2:给已创建的用户添加认证邮箱

如果用户已经创建好了,你可以单独调用专门的接口来添加密码重置用的邮箱:

请求JSON示例

{
  "@odata.type": "#microsoft.graph.emailAuthenticationMethod",
  "emailAddress": "dinusha.backup@example.com"
}

调用说明

  • 接口地址是POST /users/{userId}/authentication/emailMethods,把{userId}换成目标用户的对象ID或者用户主体名称(UPN)就行。
  • 调用成功后,这个邮箱就会被添加为用户的认证方法之一,用户后续就能用它来重置密码了。

一些需要注意的点

  • 建议使用Microsoft Graph API的v1.0版本来做生产环境的操作,beta版本虽然功能多,但稳定性不如v1.0。
  • 权限方面,除了User.ReadWrite.All,如果是单独添加认证方法,还需要UserAuthenticationMethod.ReadWrite.All权限,记得在Azure门户里给你的应用授权。
  • 配置完后可以验证一下:要么在B2C门户的用户详情页看“认证方法”,要么调用GET /users/{userId}/authentication/emailMethods接口返回的结果,确认邮箱已经被添加进去。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:37:48