首页 > 解决方案 > 蛮力检测 - Keycloak

问题描述

我们开始使用 Keycloak 作为新项目设计的身份和访问管理,并为我新创建的 Realm 启用蛮力检测。

它正在工作,但在我的用例中,我必须通知我的用户他们必须再等待 30 分钟才能再次尝试登录,因为他们已经达到最大登录失败。但是每当我在达到最大失败后尝试使用错误/正确的密码时,我都会收到“invalid_grant”作为错误消息。

{ "error": "invalid_grant", "error_description": "无效的用户凭证" }

如何通过不同的响应消息通知我的用户?

标签: keycloakbrute-forcekeycloak-serviceskeycloak-rest-apikeycloak-connect

解决方案


您需要使用自定义的 Direct Grant Authenticator 实现。从这里开始:

服务器开发文档

默认身份验证器实现

但在深入定制之前,我建议您彻底分析您的要求。回复“帐户被锁定”至少可以让我知道我已经成功猜到了用户名,现在我可以继续攻击指定的帐户了。从我的角度来看,异步通知(例如通过电子邮件或短信)用户可能会对其帐户进行 BF 攻击会更好。


推荐阅读