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

Azure AD B2C自定义密码更改策略在Angular SPA中报错“用户名或密码无效”

Azure AD B2C 密码更改自定义策略Angular SPA调用失败排查

问题场景

Azure AD B2C环境中混合使用用户流与自定义策略,注册、登录、重置密码、模拟用户等功能均正常。密码更改自定义策略在Azure门户中执行完全正常,但已登录的Angular单页应用(SPA)调用该策略时,返回400错误:Invalid username or password.。自定义策略基于官方starterpack搭建,仅该密码更改场景异常。

排查方向

  • 检查SPA请求的身份上下文传递
    已登录状态下调用密码更改策略,需确保请求携带有效会话信息或用户标识:
    • 确认Angular端(如使用MSAL库)是否传递了login_hint参数,且参数值与当前登录用户的用户名/UPN完全匹配。若参数缺失或不匹配,B2C无法识别当前用户,会触发凭证错误。
    • 检查是否正确传递了id_token_hint,让B2C复用现有会话身份,避免重复验证用户名。
  • 验证自定义策略的密码更改流程配置
    • 查看策略的UserJourney,确认是否要求用户输入旧密码,且SPA端是否将旧密码以正确的Claim名称(如oldPassword)传递给策略。参数名称不匹配会导致验证失败。
    • 检查会话管理配置,确认已登录用户的会话是否被正确复用,若会话配置错误,策略会要求重新输入用户名密码,而SPA未完整提供时就会报错。
  • 排查SPA端的请求配置
    • 确认调用密码更改策略的请求范围包含openid,且SPA应用在B2C中已被授权使用该自定义策略。
    • 检查认证库(如MSAL)的authority配置,确保指向密码更改自定义策略的正确地址,而非用户流的authority。
  • 查看B2C诊断日志的详细错误
    开启Azure AD B2C诊断日志,定位具体失败原因:
    • 查看日志中的错误代码与详细描述,确认是旧密码不匹配、用户身份无法识别还是其他规则验证失败。
    • 核对日志中记录的用户身份与SPA当前登录用户是否一致,排查身份传递错误。
  • 检查自定义策略的TechnicalProfile与Claim规则
    • 查看处理旧密码验证的TechnicalProfile,确认是否正确关联用户存储(Azure AD B2C),且验证逻辑无错误。
    • 检查自定义Claim转换规则,确认用户身份或密码参数未被错误修改、丢弃。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 06:12:13