我想用 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 技术不可知的最简单集成)
感谢您分享您的经验。