You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Azure B2C自定义策略实现支持密码重置的安全问卷?

Azure AD B2C自定义策略实现安全问卷身份校验的落地方案

1. 前期基础属性配置

  • 在Azure AD B2C的自定义架构中,创建适配安全问卷存储的自定义用户属性,所有属性直接绑定本地账户的用户对象:
    • 针对每道预设的安全问题,单独创建一个字符串类型的答案存储属性,比如securityAnsQ1、securityAnsQ2、securityAnsQ3,用于持久化存储用户注册时填写的答案
    • 配套创建对应问题文本的存储属性,比如secQ1、secQ2、secQ3,用来记录用户选定的安全问题内容,避免核验时出现问题和答案的错位匹配
    • 给所有存储答案的属性配置访问权限:仅允许自定义策略的流程节点做内部读写,禁止对终端用户开放读取,从权限层面防止答案明文泄露

2. 注册流程嵌入问卷收集环节

  • 调整本地账户注册的用户旅程编排顺序,在用户完成邮箱验证、设置初始密码的节点后,新增自断言页面步骤:
    • 该步骤的页面展示项,绑定前面创建的问题、答案属性:引导用户从预设问题列表中选择3个安全问题,并逐一填写对应答案
    • 给该步骤配置基础校验规则:所有问题选项、答案输入项为必填,可自定义设置答案的最少字符长度
    • 在自断言步骤后新增持久化声明写入节点,把收集到的所有问题、答案值写入用户账户对象;同时配置声明的持久化标记,跳过后续用户确认页的明文展示,避免答案在前端页面透传
  • 配置细节:给持久化步骤增加默认空值的声明规则,避免新注册用户被预加载其他用户的残留问卷值

3. 忘记密码流程嵌入问卷核验逻辑

  • 调整密码重置的用户旅程顺序,在用户完成联系方式验证的节点后,插入安全问卷核验步骤:
    • 第一步先通过目录读取接口,拉取当前待重置账户已存储的所有安全问题、答案值,把预存的问题文本展示给用户,引导用户输入对应问题的答案
    • 配置内置的声明比对逻辑:逐字段将用户本次输入的答案值,和目录中存储的对应用户的已存答案做匹配:
      • 所有答案完全匹配时,流程自动放行,进入设置新密码的环节
      • 任意一道题的答案不匹配时,抛出自定义的错误提示,直接终止本次密码重置流程
    • 比对逻辑的实现:在自定义策略中使用CompareClaims类型的声明转换完成逐值校验,只有所有比对结果为真时,才将流程状态声明标记为校验通过,否则标记为校验失败

4. 配套安全加固配置

  • 所有存储答案的自定义属性,关闭Graph API的应用读取权限,防止第三方应用通过接口拉取用户的答案明文
  • 把自断言页面上的所有答案输入框,配置为密码类型的输入控件,避免答案被浏览器自动保存、或被前端脚本抓取
  • 可增加简单的防暴力枚举限制:单个账户的安全问卷核验连续输错3次,临时锁定该核验通道15分钟,避免恶意尝试破解答案

内容的提问来源于stack exchange,提问作者J. Viñas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.28 10:45:05