You need to enable JavaScript to run this app. Azure AD B2C自定义策略双模式登录报凭证无效问题排查
优惠活动
大模型
产品
解决方案
定价
更多

Azure AD B2C自定义策略双模式登录报凭证无效问题排查

项目背景与登录流程设计
  • 迁移目标:将现有遗留系统升级迁移至Azure AD B2C平台,业务要求支持用户使用用户名或邮箱完成登录
  • 改造基础:因遗留系统架构存在多个用户绑定同一邮箱的设计,基于官方提供的用户名注册/登录自定义策略样例完成改造,新增邮箱登录支持能力
  • 登录流转逻辑:用户在登录页输入的内容会传递至自建API,根据输入内容分场景返回结果:
    • 若输入内容为仅绑定单个用户的邮箱,API返回对应用户名
    • 若输入的邮箱关联多个用户,API返回409错误,提示用户需使用专属用户名登录以完成身份校验
核心异常表现
  • 主异常场景:当API返回映射后的用户名,将该用户名传递至login-NonInteractive技术配置文件时,系统返回“请求中提供的用户名或密码无效”的错误
  • 对照验证结果:如果直接使用API返回的同一用户名手动在登录页输入,流程可以正常完成认证
排查过程与已验证结论

为定位问题根因,已开展多轮测试:

  • 硬编码对照测试:在策略中硬编码指定登录用户名(跳过API调用环节)开展验证
    • 当用户输入邮箱完成登录时,流程触发报错
    • 当用户输入不存在的虚拟用户名登录时,系统能正常使用硬编码的用户名完成认证
    • 即使全程使用相同的硬编码用户名逻辑,只要用户输入的登录内容为邮箱就会触发报错
  • 当前声明传递逻辑:通过声明转换机制(调用singInNameCopyText技术配置文件)将硬编码值赋值给signInNamePlainText声明,供login-NonInteractive技术配置文件引用
  • 关键关联触发点:触发报错的逻辑与为调用自建API申请bearer token的流程直接相关——自建API受bearer token保护,通过SecureREST-AccessToken技术配置文件以client_credentials模式申请访问令牌
    • 实测验证结果:只要移除SecureREST-AccessToken的调用、直接进入login-NonInteractive流程,就不会再出现“请求中提供的用户名或密码无效”的错误
    • 当前待解决问题:暂未明确该调用触发异常的具体根因,需定位问题根源并获取可行解决方案

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.08 12:15:04