如何在Azure B2C中为应用配置每日仅强制一次的MFA(而非每次登录都验证)
实现Azure B2C MFA每日仅验证一次的具体配置方案
嘿,这个需求我刚好帮客户配置过,核心是要结合用户流的会话管理和条件访问的登录频率设置来实现,给你一步步拆解具体操作:
1. 先调整现有用户流的会话有效期
首先得确保用户的登录会话能维持一整天,不然条件访问的设置也白搭:
- 登录Azure门户,进入你的B2C租户后台
- 找到你正在用的那个带邮箱验证MFA的用户流,点击进入详情页
- 左侧菜单栏选会话选项卡:
- 把**Web应用会话生存期(分钟)**设为
1440(刚好24小时) - 开启会话令牌可续订,然后设置Web应用会话空闲生存期(分钟),比如设成480(8小时),避免用户中途操作时会话意外失效
- 这里的设置是让用户的登录会话保持24小时,为后续的MFA频率控制打基础
- 把**Web应用会话生存期(分钟)**设为
2. 配置条件访问策略控制MFA触发频率
接下来用条件访问的登录频率规则,让MFA只在每日首次登录时触发:
- 在B2C租户后台找到条件访问模块(注意是B2C专属的,不是全局Azure AD的条件访问)
- 点击新建策略,给策略起个好记的名字,比如「每日仅需一次MFA验证」
- 分配规则配置:
- 用户和组:选择你要应用这个规则的用户/组,或者直接选所有用户
- 云应用或操作:一定要选对你的目标企业应用,别选错了
- 访问控制配置:
- 选授予,勾选需要多重身份验证,然后点选择确认
- 切换到会话选项卡:
- 勾选登录频率,然后选择每24小时
- 这个设置会让用户在24小时窗口内,首次登录必须完成MFA,当天后续的注销再登录只需要用户名+密码
- 最后记得启用策略,点击创建完成配置
3. 几个关键注意事项
- 一定要让用户流的会话生存期和条件访问的登录频率保持一致(都是24小时),不然会话提前过期会导致MFA被重复触发
- 测试的时候,建议先通过B2C的注销端点完全清除会话:
https://<你的租户名>.b2clogin.com/<你的租户名>.onmicrosoft.com/<你的用户流名称>/oauth2/v2.0/logout,然后第一次登录会触发MFA,当天内再登录就不会再要求验证了 - 如果用户更换设备或者清除了浏览器缓存,系统会判定为新会话,需要重新完成MFA,这是正常的安全机制,没法完全规避
内容的提问来源于stack exchange,提问作者Bohdan Shalay




