Keycloak误设Kerberos为必填无法登录,无需重配服务器如何关闭?
Keycloak Kerberos认证流配置错误修复方案
不需要重新部署服务器,可通过以下两种方法修复配置:
方案1:使用Keycloak Admin CLI修改配置
该方法不需要修改数据库,操作风险更低:
- 进入Keycloak安装目录的
bin文件夹 - 执行CLI登录命令(如果是Quarkus版Keycloak,将请求地址中的
/auth去掉即可):./kcadm.sh config credentials --server http://localhost:8080/auth --realm master --user <你的管理员账号> --password <你的管理员密码> - 查询Browser认证流下所有执行器的配置,找到Kerberos对应的执行器ID:
./kcadm.sh get authentication/flows/browser/executions -r <实际使用的realm名称> - 执行更新命令,将Kerberos的要求等级从
Required修改为Alternative:./kcadm.sh update authentication/flows/browser/executions/<上一步查到的Kerberos执行器ID> -r <实际使用的realm名称> -s 'requirement=ALTERNATIVE' - 重启Keycloak服务后即可正常使用账号密码登录。
方案2:直接修改数据库
如果无法使用CLI工具,可直接修改Keycloak的元数据:
- 停止Keycloak服务
- 连接Keycloak使用的数据库,执行如下SQL语句:
UPDATE AUTHENTICATION_EXECUTION SET REQUIREMENT = 'ALTERNATIVE' WHERE AUTHENTICATION_FLOW_ID = (SELECT ID FROM AUTHENTICATION_FLOW WHERE ALIAS = 'browser' AND REALM_ID = (SELECT ID FROM REALM WHERE NAME = '<实际使用的realm名称>')) AND AUTHENTICATOR = 'kerberos'; - 启动Keycloak服务即可恢复。
提示:将Kerberos设置为
Alternative后,系统会优先校验Kerberos票据,校验失败时自动 fallback 到用户名密码登录,符合常规使用场景。
内容的提问来源于stack exchange,提问作者Dusk
相关产品推荐
相关产品推荐

