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

Keycloak无密码登录流问题:未注册安全密钥用户无法使用密码登录

Keycloak同时支持无密码认证与未注册用户密码登录的解决方案

1. 修改认证流程为分支结构

当前你的认证流程仅包含WebAuthn Passwordless Authenticator单一步骤,这是导致未注册密钥用户无法使用密码登录的核心原因。需要将流程调整为包含密码登录和无密码登录的分支流程:

  • 进入Keycloak管理控制台,选择目标领域(Realm)
  • 前往Authentication > Flows页面
  • 复制默认的Browser流程(建议不要直接修改默认流程),命名为Custom Browser with Passwordless
  • 在新流程中进行如下配置:
    • 保留原有的Username Password Form步骤,将其设置为ALTERNATIVE
    • 添加WebAuthn Passwordless Authenticator步骤,同样设置为ALTERNATIVE,与密码登录步骤处于同一层级
    • 确保流程的父节点(如Browser Forms)的执行策略为Alternative,允许用户选择任意一种认证方式完成登录

2. 配置安全密钥注册的必要动作

将WebAuthn Register Passwordless设置为用户登录后的触发动作,而非前置认证要求:

  • 前往Authentication > Required Actions页面
  • 启用WebAuthn Register Passwordless,可根据需求将其设置为Default Action(强制用户登录后注册)或Optional(用户自愿注册)
  • 这样,未注册密钥的用户通过密码登录后,会被引导完成安全密钥的注册,后续即可使用无密码登录

3. 优化流程逻辑(可选)

如果希望已注册密钥的用户优先触发无密码登录,可以进一步调整:

  • 将WebAuthn Passwordless Authenticator的执行顺序提前
  • 或者将其设置为CONDITIONAL,通过脚本判断用户是否已关联安全密钥,自动触发对应认证步骤

验证效果:未注册密钥的用户登录时会先看到用户名/密码输入框,登录后触发注册引导;已注册密钥的用户可选择密码或安全密钥两种方式登录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 19:02:34