Azure B2C注册自定义流程中生物特征验证的实现方案咨询
Azure B2C注册流程自定义身份核验实现方案
原方案可行性结论
你提到的「劫持注册链接+Graph API创建用户」方案不可行,核心问题:
- 劫持B2C原生页面链接会触发平台安全防护,直接中断流程
- Graph API创建的用户无法关联到当前注册会话,验证完成后无法正常获取B2C身份令牌,也无法衔接后续登录流程
- 跳过B2C原生注册逻辑会丢失会话上下文,导致身份验证链路断裂
官方支持的合规实现思路
方案一:自定义策略(Custom Policy)+ 跳转技术配置文件
这是最灵活且符合B2C规范的实现方式:
- 编写B2C自定义策略,在注册用户旅程中插入一个
RedirectUri类型的技术配置文件,指定你的独立Web应用地址作为跳转目标 - 你的Web应用接收B2C自动传递的
state参数(必须全程保留,用于会话校验) - 完成自拍、证件采集及API验证后,携带
state参数+用户注册必填信息(邮箱、姓名等),重定向回B2C指定的回调地址 - B2C验证
state有效性后,自动调用内置的用户创建技术配置文件完成账号注册,最后发放身份令牌并跳转至业务应用
方案二:用户流(User Flow)+ 自定义页面+API连接器
如果不想编写复杂的自定义策略,可采用简化方案:
- 启用B2C用户流的自定义页面功能,将默认注册页替换为你的自定义页面(需托管在HTTPS服务器,且加入B2C可信域名)
- 在自定义页面内完成照片采集与验证逻辑
- 验证通过后,调用B2C用户流的内置接口提交注册信息,由B2C完成账号创建及会话处理
- 注意:自定义页面必须遵循B2C的内容安全策略,需集成平台提供的页面控件脚本
核心注意点
- 所有跳转必须保留B2C生成的
state参数,这是防止CSRF攻击、关联会话的关键 - 独立Web应用必须使用HTTPS,且域名需添加至B2C的可信域名列表
- 身份核验结果需通过自定义声明传递给B2C,确保只有核验通过的用户才能完成注册
内容的提问来源于stack exchange,提问作者chummy
相关产品推荐
相关产品推荐

