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

Azure AD B2C 如何构造内置自助密码重置功能的直接访问链接

Azure AD B2C新版登录流自助密码重置直接链接构造方案

首先明确:你看到的带动态tx、csrf_token参数的密码重置页面是会话级临时链接,确实无法提前预生成放在邮件中使用,有两种可行的替代方案:

方案1:静态授权请求链接(适用所有密码重置场景)

直接构造带触发参数的标准OAuth2授权请求链接即可,无需动态参数,Azure AD B2C会在用户访问时自动生成会话凭证并直接跳转至密码重置页面:
链接格式如下:

https://<租户名>.b2clogin.com/<租户名>.onmicrosoft.com/oauth2/v2.0/authorize?p=B2C_1_<登录用户流名称>&client_id=<应用客户端ID>&nonce=defaultNonce&redirect_uri=<应用回调地址>&scope=openid&response_type=id_token&prompt=forgot_password

参数说明:

  • 替换<租户名>为你的Azure AD B2C租户实际名称
  • 替换<登录用户流名称>为你启用了内置自助密码重置的新版用户流名称
  • 替换<应用客户端ID>为你对应应用注册的客户端ID
  • 替换<应用回调地址>为你在应用注册中预配置的回调地址,必须完全匹配

这个链接是完全静态的,可以直接预置在欢迎邮件模板中,用户点击后会直接进入密码重置流程,无需先访问登录页再点击忘记密码按钮。

方案2:Graph API生成一次性链接(适用新用户初始密码设置场景)

如果你的需求是给新创建的用户发送初始密码设置链接,更安全的方案是调用Microsoft Graph API生成一次性有效链接:

  • 调用接口:POST https://graph.microsoft.com/v1.0/users/<用户ID>/authentication/methods/28c10230-6103-485e-b985-444c60001490/resetPassword
  • 请求头添加:return-server-redirect-url: true
  • 权限要求:调用接口的应用需要提前申请UserAuthenticationMethod.ReadWrite.All应用权限并获得租户管理员同意

接口会返回有效期1小时的一次性密码设置链接,直接放在欢迎邮件中即可,用户访问时无需额外身份验证即可直接设置初始密码。

注意事项

  • 如果你使用的是自定义策略而非官方预置用户流,需要在用户旅程中配置ForgotPassword声明交换的触发逻辑,才能支持prompt=forgot_password参数的自动跳转
  • 方案1中的回调地址必须和应用注册中配置的地址完全一致,包括协议、路径、末尾斜杠都要匹配,否则会触发跳转错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 02:06:05