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

如何在Keycloak中为指定Realm启用OTP认证?

Keycloak 针对指定Realm/用户组强制2FA的实现方案

一、针对单个Realm(如RealmB)配置专属2FA流程

Keycloak的认证流是Realm级独立配置,完全不需要修改全局或其他Realm的流,直接给RealmB单独设置即可:

  • 进入RealmB的「Authentication」菜单,切换到「Flows」标签页
  • 找到默认的Browser流,点击右侧「Copy」,命名为Browser with OTP
  • 展开复制后的流,在「Forms」步骤下方,从右侧「Add step」中选择添加「OTP Form」
  • 将「OTP Form」设置为Required(点击步骤右侧「Actions→Config」,或直接拖动调整执行顺序)
  • 切换到「Bindings」标签页,把RealmB的默认浏览器流改为刚创建的Browser with OTP
    完成后,RealmB所有用户登录都会强制走2FA流程,完全不影响RealmA的原有配置。

二、针对特定用户组启用Conditional OTP

如果需要更细粒度控制(比如RealmB内仅部分用户组需2FA),可以用Conditional OTP实现条件触发:

配置步骤:

  1. 在RealmB中创建目标用户组(如2FA-Mandatory-Group),将需要强制2FA的用户加入该组
  2. 进入RealmB的「Authentication→Flows」,复制默认Browser流为Browser with Conditional OTP
  3. 展开复制后的流,在「Forms」步骤后添加「Conditional OTP」步骤(注意不是普通的OTP Form)
  4. 点击「Conditional OTP」右侧的「Actions→Config」,设置触发条件:
    • 「Condition」选择User Group Membership
    • 选择目标用户组2FA-Mandatory-Group,匹配规则设为User is member of the group
    • 勾选「Required」,确保符合条件的用户必须完成OTP验证
  5. 将该流设为RealmB的默认浏览器流,或给特定客户端单独绑定此流

额外说明:

  • Conditional OTP会自动判断用户身份,符合条件的用户登录时会被强制引导完成OTP配置(如扫描二维码),不符合条件的用户直接跳过2FA步骤
  • 除了用户组,还可基于用户属性、客户端IP、身份提供商等条件触发,按需选择对应Condition即可

三、常见误区澄清

  • 无需修改全局认证流:每个Realm的认证流是独立的,复制流后仅给目标Realm绑定,完全不会影响其他Realm的原有配置
  • Conditional OTP是轻量级的条件触发方案,无需额外编写脚本,通过可视化配置即可实现细粒度控制

内容的提问来源于stack exchange,提问作者tostao

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 01:50:54