当前位置: 首页 > 知识库问答 >
问题:

Grails应用程序中TOTP或其他多因素身份验证的优雅解决方案?

金健
2023-03-14

我很惊讶地看到没有明显的插件或设置来启用Grails中的任何类型的多因素身份验证。是否有优雅的解决方案可用?理想情况下,我希望实现一个TOTP解决方案,用于Google Authenticator或独立fobs等应用程序,但也会考虑基于文本消息的解决方案。

该解决方案必须很好地使用并增强内置的Spring Security身份验证。

共有1个答案

温嘉玉
2023-03-14

我在自己构建的web应用程序中也做了类似的事情。我找不到任何像直截了当的插件那样干净的东西,但我仍然能够将它与spring security集成。

所以基本上我最终使用的是authy api(http://docs.authy.com/我相信你可以找到与谷歌认证(google auth)类似的东西来进行TOTP交付和验证。初次登录后,我授予他们角色\u PRE_AUTH,然后将他们发送到受保护的页面以处理TOTP。然后我用

    Authentication auth = SecurityContextHolder.getContext().getAuthentication();
    List<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>(auth.getAuthorities());
    authorities.add(new SimpleGrantedAuthority("ROLE_USER"));
    Authentication newAuth = new UsernamePasswordAuthenticationToken(auth.getPrincipal(), auth.getCredentials(), authorities);
    SecurityContextHolder.getContext().setAuthentication(newAuth);

在我验证(再次使用可用的api)用户的TOTP有效后,为用户更新角色。因此,基本上你想创建一个类来进行验证,只有在它运行之后,你才想导航到下一个页面(他们现在有权访问)

 类似资料:
  • 授权服务器可以支持任何与其安全要求匹配的合适的HTTP身份验证方案。当使用其他身份验证方法时,授权服务器必须定义客户端标识(注册记录)和认证方案之间的映射。

  • 现在,我们有了集成执行器。我希望我的执行器endpoint可以通过基本认证在浏览器中访问。 为此,我用@order(1)添加了WebSecurityConfigurerAdapter的一个实现。它在浏览器上工作得很好。但是,当我从angualar应用程序调用登录url时,它为/oauth/token url给出了401个未经授权的错误,因此我无法从ui应用程序登录。 任何帮助将感谢解决此错误。 类

  • 我正在开发一个Spring Boot 2.5.0 web应用程序,使用Thymeleaf使用Spring Security表单登录。我正在寻找如何使用Spring Security表单登录实现双因素身份验证(2FA)的想法。 要求是,当用户使用其用户名和密码通过登录时。在登录表单中,如果用户名和密码验证成功,则应向用户的注册手机号码发送一个SMS代码,并用另一个页面询问用户输入SMS代码。如果用户

  • 多因素身份验证的Spring OAuth2实现的完整代码已经上载到文件共享站点,您可以通过单击此链接下载该站点。下面的说明解释了如何使用链接在任何计算机上重新创建当前问题。提供500点的赏金。 当用户试图使用Spring Boot OAuth2应用程序中的双因素身份验证(来自上一段中的链接)进行身份验证时,将触发一个错误。当应用程序应该提供第二个页面来询问用户的pin码以确认用户的身份时,错误就会

  • 问题内容: 我正在使用以下过滤器在我的Web应用程序中启用NTLM身份验证。 我得到Windows浏览器身份验证提示。运行正常。除了以下事实外- 我无法确定身份验证是成功还是失败! * 两种情况均无错误。 *在每种情况下都将打印用户名(正确或相反),工作站等。 web.xml很简单: 问题答案: 您收到的是Type 3消息,但是除了打印出详细信息之外,您什么都没做。此时,您需要验证客户的响应,并发

  • 本文向大家介绍什么是双因素身份验证?相关面试题,主要包含被问及什么是双因素身份验证?时的应答技巧和注意事项,需要的朋友参考一下 双因素身份验证是在帐户登录过程中启用第二级身份验证。 因此,如果用户只需要输入用户名和密码,那么就被认为是单因素身份验证。