使用自定义IEF策略配置MFA时遇AADB2C90154错误的技术问询
关于AADB2C错误AADB2C90154的详解
错误本质含义
AADB2C90154这个错误直白点说:Azure AD B2C在处理多因素验证(MFA)请求时,无法从对应的MFA后端服务(比如Microsoft Authenticator、短信验证服务)获取有效的会话ID。这意味着B2C和MFA服务之间的流程衔接出现了断裂,没法跟踪当前用户的MFA验证状态。
缺失的会话类型
这里缺失的是MFA服务端交互会话——它是B2C与MFA服务之间的临时上下文会话,用来绑定当前用户的MFA请求,确保验证流程是连续、合法的,避免重复验证请求或恶意攻击。没有这个会话ID,MFA服务无法识别当前请求属于哪个用户的验证流程,自然无法继续处理。
需要建立会话的环节
这个会话必须在MFA流程的初始化阶段建立,具体时机和要求:
- 当用户完成第一因素验证(比如用户名+密码登录)后,B2C会触发MFA流程分支。此时B2C需要先向MFA服务发起初始化请求,提交用户的关键标识信息(比如注册的手机号、邮箱),由MFA服务生成并返回会话ID。
- 如果你的自定义IEF策略存在以下问题,就会导致会话无法创建:
- 跳过了MFA初始化的关键步骤,直接进入验证环节
- MFA相关的
<TechnicalProfile>配置错误,比如MetadataUrl指向无效端点,或者缺失必要的输入声明(如phoneNumber、email) - 自定义策略中修改了官方MFA技术配置的核心参数,破坏了会话创建逻辑
快速排查方向
- 检查自定义策略中MFA提供者的
<ClaimsProvider>配置,确保MetadataUrl指向正确的Azure AD B2C端点(格式类似https://login.microsoftonline.com/{your-tenant-id}/v2.0/.well-known/openid-configuration) - 确认MFA步骤的
<InputClaims>包含了用户的有效联系方式(手机号或邮箱),这些是MFA服务创建会话的必要依据 - 尽量复用官方提供的MFA技术profile(比如
PhoneFactor-InputOrVerify),不要随意修改其核心流程节点
内容的提问来源于stack exchange,提问作者Marc
相关产品推荐
相关产品推荐

