我正在使用Clearance用于在我的 Rails 应用程序上进行身份验证。越来越多的用户要求我实现某种二因素身份验证。我认为登录时,用户可以选择使用 2FA,而不是使用电子邮件和密码登录。
您建议我使用哪种 2FA?我的用户主要是使用该应用程序进行团队工作的公司。他们希望拥有
选择太多,我有点迷失了。为了简单起见,我目前正在研究 Google Authenticator。这是一个好的选择吗?其他选项怎么样,例如向他们的电子邮件地址发送一个魔术链接,通过单击它来对他们进行身份验证(如果用户已离开组织并且不再有权访问该邮箱,则这样做的好处是拒绝身份验证)。
如何才能使这种身份验证与我当前用于身份验证的 Clearance 配合使用?
最佳答案
首先,我不建议允许用户单独使用 2FA 代码登录。毕竟这是第二个因素;大多数时候,它包含的熵比用户密码少。
我建议使用基于时间的一次性密码 (TOTP) 和 Google Authenticator 作为客户端的 token 管理应用。使用 Active Model OTP Gem 可以轻松集成到 Rails 中.
通过电子邮件或短信发送一次性代码并不是最好的方法。短信可通过 phone number spoofing 窃取如果攻击者控制了用户的电子邮件地址,电子邮件代码就会破坏 2fa,该地址还可以执行密码重置,使其成为帐户接管的一站式商店。
如果您想使用最先进的技术,请查看 U2F它依赖于加密签名。
与 Clearance
集成时,请务必仅在您验证其用户名和密码后验证 2FA token ,尤其是您使用 TOTP 时。
关于ruby-on-rails - 清关和 2FA(或 MFA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61526501/