Azure AD B2C API连接器无法修改自定义用户属性且注册页强制显示该属性问题
问题1:注册流程弹出role属性输入框的原因和解决
原因:用户流的「用户属性」配置项的作用是声明注册阶段需要向用户收集的字段,只要你勾选了某个属性作为用户属性,注册流程就会生成对应的输入表单要求用户填写,这就是你看到role输入页的原因。
解决:进入对应用户流的配置页,在「用户属性」板块取消勾选role自定义属性,仅保留「应用声明」里的role勾选即可,不需要用户输入的属性不要放到「用户属性」列表中。
问题2:API连接器返回值未覆盖用户输入、审计日志无属性变更记录的原因和解决
按优先级排查以下配置项:
- 属性名大小写匹配校验:Azure AD B2C对扩展属性名的大小写敏感,你需要保证函数返回的扩展属性字段名,和B2C请求发送给你的扩展属性字段名完全一致,包括大小写。比如你收到的是
extension_xxx_Role,返回就必须写完全一样的字符串,不能写成extension_xxx_role,否则B2C会认为是两个不同的属性,不会做覆盖。 - 返回协议格式校验:你需要确保返回的HTTP响应状态码是200 OK,响应体里的
version、action、status字段的取值和大小写完全符合规范,只要任意一个字段不符合要求,B2C会直接忽略你返回的所有扩展属性。 - API连接器权限校验:进入API连接器的配置页面,确认你已经授予了连接器读写该自定义扩展属性的权限,权限不足时B2C会正常调用接口,但不会接收返回的属性修改请求,审计日志也不会记录变更。
- 扩展应用ID校验:返回的扩展属性名中携带的B2C扩展应用ID,必须和你租户下
b2c-extensions-app.xxx应用的应用ID完全一致,写错ID会导致B2C无法匹配到对应的自定义属性,自然不会更新。
建议先完成问题1的配置调整,排除用户输入的干扰后再测试API返回值的写入效果,能更快定位问题。
内容的提问来源于stack exchange,提问作者user1227445
相关产品推荐
相关产品推荐

