我在我的Rails应用程序上使用Clearance进行身份验证。越来越多的用户要求我实现某种双因素身份验证。我在想,当用户登录时,可以选择使用2FA,而不是使用电子邮件和密码登录。
你建议我使用哪种2FA?我的用户大多是使用该应用程序进行团队工作的公司。他们想要有
有这么多选择,我有点迷茫了。为了简单起见,我目前使用的是Google Authenticator。这是一个好的选择吗?其他选项又如何呢?比如发送一个指向其电子邮件地址的魔术链接,通过单击它来对其进行身份验证(这样做的好处是,如果用户已离开组织并且不再有权访问该邮箱,则可以拒绝身份验证)。
如何才能使这种身份验证与我当前用于身份验证的许可一起工作?
发布于 2020-05-01 00:26:03
首先,我不建议允许用户仅使用2FA代码登录。毕竟,它是第二个因素;大多数情况下,它包含的熵比用户的密码要少。
我建议使用基于时间的一次性密码(TOTP)和Google Authenticator作为客户端的令牌管理应用程序。使用Active Model OTP Gem很容易集成到Rails中。
通过电子邮件或短信发送一次性代码不是最好的方法。短信可以通过phone number spoofing和电子邮件代码破解2fa,如果攻击者控制了用户的电子邮件地址,这也可以执行密码重置,使其成为帐户接管的一站式商店。
如果您想要使用最先进的技术,那么可以看看U2F,它依赖于密码签名。
当与Clearance集成时,请确保在验证他们的用户名和密码后仅验证2FA令牌,尤其是在您使用的情况下。
https://stackoverflow.com/questions/61526501
复制相似问题