Shiro,多重身份验证

Red*_*nja 7 authentication shiro two-factor-authentication

有没有办法在Shiro中实现多因素身份验证?有人能给我一个如何实现这一点的提示吗?

有关更多详细信息:基本思想是,用户需要像往常一样使用用户名和密码登录,但在进行实际身份验证之前,用户还需要输入他作为SMS收到的一次性令牌.

谢谢!

Red*_*nja 6

我终于解决了我自己的问题,但我当然总是对其他建议持开放态度.

我实现了自己的2 - Factor身份验证流程:

首先,我更改了登录页面的URL,Shiro将未经身份验证的用户重定向到我自己的登录页面,这导致了身份验证机制.用户需要完成两个"阶段"才能登录.

  • 在第一阶段,他/她必须提供用户名和密码,如果这些用户名和密码有效,则用户将被重定向到登录的第二阶段.
  • 同时,已生成一次性令牌并通过SMS发送给用户.此外,用户的身份验证进度已保存在会话中(这意味着我记得,第1阶段已成功完成).
  • 在第2阶段,用户需要输入令牌.如果令牌是
    • 无效或超过了尝试次数(5)
    • 过期(5分钟后)正确输入令牌的次数超过4次,用户将被重定向到阶段1,所有进度都将被删除.一世
  • 如果一切顺利,用户将被认证给Shiro(当然不会让他/她知道)

最后,用户将被重定向到他/她最初请求的页面,这仍然允许他/她为页面添加书签.当然Shiro的记住 - 我将永远被停用.