Azure AD B2C注册流程中API连接器添加自定义属性异常排查
问题分析与解决方案
你的问题核心在于Azure AD B2C「创建用户前」API连接器返回的自定义属性未被正确写入用户对象,而DisplayName作为内置属性能被自动处理。以下是可能的原因和对应解决方法:
1. 未配置API响应与自定义属性的映射
Azure AD B2C不会自动识别API返回的完整扩展属性名(如extension_5#############################9_CustomId),需要在用户流程中明确映射:
- 登录Azure AD B2C门户,进入目标注册用户流程
- 转到「API连接器」-> 找到「创建用户前」的API配置
- 在「响应映射」部分,添加映射规则:将API返回的字段名映射到B2C中定义的自定义属性友好名称(如CustomId)
- 保存配置后重新测试
2. 自定义属性未设置为「需要存储」
如果自定义属性未在用户流程中标记为需要存储,B2C不会将API返回的值写入用户对象:
- 进入用户流程的「属性」设置
- 在「自定义属性」列表中找到你的CustomId属性,确保勾选「需要存储此属性」选项
- 保存并发布流程
3. 扩展属性名称拼写错误
确认API返回的扩展属性全名与Azure AD中实际生成的完全一致:
- 可通过Graph API查询B2C扩展应用的属性,确认CustomId对应的扩展属性名是否与API返回的一致
- 若存在拼写错误(如大小写、字符缺失),修正API返回的字段名即可
额外验证
测试时,确保Graph API查询用户时显式指定自定义属性(如GET /users/{userId}?$select=extension_5#############################9_CustomId,displayName),默认查询不会返回自定义属性。
内容的提问来源于stack exchange,提问作者Thor
相关产品推荐
相关产品推荐

