B2C模拟策略异常:手动用户模拟SSO用户失败及AADB2C99002报错
问题分析与配置修正方案
针对非SSO用户模拟SSO用户时的「用户ID找不到」错误
这个问题核心是模拟逻辑未正确关联Entra ID用户源,或用户标识格式不匹配:
- 模拟策略默认可能仅从B2C本地用户存储查找用户,但SSO用户主数据在Entra ID,导致非SSO用户发起模拟时系统找不到对应ID的用户
- 传入的目标用户ID可能是B2C本地用户格式,而非Entra用户的
objectId(两者格式完全不同,混用必然查找失败)
修正步骤:
- 调整模拟策略的用户查找逻辑,确保同时包含B2C本地存储和Entra ID两个用户源的查询,不要局限于本地存储
- 模拟时必须传入目标SSO用户的
objectId(可通过Graph API获取),而非邮箱或其他非唯一标识 - 检查模拟策略中的用户读取技术profile,替换为能跨源查询的自定义profile,或分别配置针对本地和Entra用户的读取逻辑
针对SSO用户使用模拟策略时的「用户不存在」错误
报错里的AAD-UserReadUsingEmailAddress是B2C针对本地用户存储设计的技术profile,它只会去B2C本地库查用户,而SSO用户信息存在Entra ID,所以必然找不到:
修正步骤:
- 替换模拟策略中的用户读取profile:把
AAD-UserReadUsingEmailAddress换成适用于Entra ID的profile,比如AAD-UserReadUsingObjectId,或自定义一个专门读取Entra用户信息的技术profile - 调整模拟策略的用户旅程,确保在执行用户读取操作前,识别当前用户的来源(Entra/本地),动态选择对应的用户源和读取逻辑
- 确认Entra ID身份提供者在模拟策略中已正确配置,且具备读取用户信息的权限
通用配置检查点
- 检查模拟策略的
<ClaimsProviders>节点,是否同时添加了B2C本地账号和Entra ID的身份提供者,且都开启了用户读取权限 - 验证模拟策略中验证用户组的步骤,是否能正确读取Entra组的成员数据(而非仅读取B2C本地用户的组关联)
- 确保模拟流程中传递的用户标识(如
objectId)在目标用户源中唯一且存在
内容的提问来源于stack exchange,提问作者IriaAM
相关产品推荐
相关产品推荐

