Keycloak:针对特定资源的 2FA 保护

Mal*_*lys 5 keycloak multi-factor-authentication

我想使用 2FA 保护高级别风险功能。过去,我们使用 2FA SMS。我想提出相同的功能,但理想情况下,我希望能够集成本地 Keycloak OTP 身份验证器(更安全)。这就是为什么基于 keycloak-sms-authenticator-sns https://github.com/nickpack/keycloak-sms-authenticator-sns> ,我改进了这个身份验证器(我将很快提出合并请求)。

我在 Keycloak 3.4.3 文档中进行了搜索,但使用相同的领域,我没有看到任何功能可以在最终用户想要访问特定资源时询问 2FA。角色机制允许管理访问(403 - 200),但它似乎没有涵盖我的用例。我不确定 UMA 2.0 是否可以提供此功能。此外,它还没有实施。保证水平似乎很好,但尚未实施,而且很难做到。

我可以在业务应用程序(JBoss 适配器)上包含一个 servlet 过滤器,以便在用户想要访问资源时将其路由到 2FA 身份验证器。但在这种情况下,我必须在 Keycloak 和 Java 适配器之间传播一个状态,以免每次访问都要求 2FA 代码。在集群模式(无状态服务)下可能有点棘手。

您有什么想法可以根据本机 keycloak 功能轻松涵盖此用例吗?如果情况并非如此,在您看来,最佳解决方案是什么(见上文)?(可维护性、集群支持和 2FA 技术不可知的最简单集成)

感谢您分享您的经验。

das*_*iko 5

看来您正在寻找一种升压身份验证。这还不是在Keycloak实现,但是有一个现有的JIRA票这个位置

邮件列表上也已经有了讨论(也许还有一些我目前没有找到的其他主题)。

我还偶然发现了来自 Thomas Darimont的“ Conditional OTP Form Authenticator ”,Thomas Darimont 是一位非常活跃的 Keycloak 社区提交者。

HTH 以某种方式。