Azure Active Directory B2C是否支持多因素认证安全问题及配置方法?
Azure AD B2C 多因素认证之安全问题支持与配置指南
嘿,针对你提到的问题,先给你明确最新状态:Azure Active Directory B2C现在已经支持将安全问题作为多因素认证(MFA)的一种验证方式了,不过这个能力需要通过自定义策略(Custom Policies)来实现,内置的用户流(User Flows)目前还没有直接提供这个选项——这是微软在2017年之后更新的功能,刚好补上了你当年看到的缺口。
一、核心支持情况说明
2017年的时候,Azure AD B2C确实没有安全问题作为MFA的官方支持,但现在通过身份体验框架(IEF)的自定义策略,我们可以完全自定义这个验证流程,满足安全问题验证的需求。
二、具体配置步骤
要实现这个功能,你需要基于自定义策略进行扩展,步骤大概是这样的:
1. 先搭好自定义策略的基础环境
首先得确保你已经在Azure AD B2C租户中完成了自定义策略的基础配置:
- 上传信任框架的基础策略文件(比如
TrustFrameworkBase.xml)到租户的策略库 - 注册好用于测试的应用,并配置好对应的密钥和权限
2. 为用户目录添加安全问题相关属性
在Azure AD B2C的租户管理界面中:
- 进入用户属性页面,创建两个自定义属性,比如
SecurityQuestion(存储用户选择的问题)和SecurityAnswer(存储用户的答案) - 记得在自定义策略的声明架构中,把这两个属性声明为可读写的类型,这样流程中才能读取和写入这些数据
3. 扩展自定义策略,添加安全问题的设置与验证流程
修改TrustFrameworkExtensions.xml文件,主要做这两件事:
- 添加安全问题设置环节:在用户注册或首次登录的旅程中,新增一个页面,让用户从预设的安全问题列表中选择,并输入答案,然后把这些值写入到刚才创建的自定义属性里
- 添加安全问题验证环节:在需要触发MFA的场景(比如用户异地登录、首次登录新设备),插入一个验证页面,展示用户之前设置的安全问题,让用户输入答案,然后通过自定义的验证逻辑(比如REST API调用或者内置断言)比对答案是否正确
4. 测试与优化
发布修改后的自定义策略,用测试应用触发用户流程:
- 验证注册时是否能正常设置安全问题
- 测试登录时触发MFA,是否能通过安全问题完成验证
- 如果遇到问题,可以用Azure AD B2C的策略调试工具来排查流程中的错误,同时建议把安全问题的答案做哈希存储,避免明文保存,提升安全性
三、小提示
- 预设的安全问题要尽量选择不容易被公开信息猜到的,同时如果有多语言用户的需求,记得配置本地化的问题文本
- 如果你对自定义策略不太熟悉,可以先从微软官方的自定义策略示例开始入手,再逐步修改添加安全问题的逻辑
内容的提问来源于stack exchange,提问作者niki b
相关产品推荐
相关产品推荐

