Django 两因素身份验证
Posted
技术标签:
【中文标题】Django 两因素身份验证【英文标题】:Django Two Factor Authentication 【发布时间】:2019-07-21 08:32:47 【问题描述】:我最近一直在阅读我在这里找到的关于 django-two-factor-authentication 的文档:https://django-two-factor-auth.readthedocs.io/en/stable/installation.html 文档很棒。但是,我正在尝试了解此解决方案的全部要求。如果我实现了这个包,我是否需要依赖第三方来完成这个解决方案,还是可以在没有第三方的情况下实现双因素身份验证?我主要关心的是与插入第三方相关的成本。如果可以避免,显然我更喜欢免费。如果无法避免,是否有人对提供两因素身份验证的第三方提供商有经验?我对 Twillio 进行了一些研究,但我知道还有其他人也在执行这项服务。提前感谢您的任何意见。
【问题讨论】:
django two factor authentication
支持google authenticator
,免费且可靠。
【参考方案1】:
Steve,您可以在 django 中实现两因素身份验证,而无需使用付费的第 3 方。
您可以通过直接实现 pyOTP library,然后让用户使用 Google Authenticator 应用程序来做到这一点。由于都是数学运算,因此在生成或验证代码时没有第三方服务。
我之前在 django 网站上实现过这个。它涉及设置 OTP 机密并对其进行验证。然后每次需要身份验证时,使用配置 URI 生成二维码供他们扫描,然后将 2FA 验证与您的身份验证相结合。所有这些步骤都可以单独使用 pyOTP 库来完成。 (我也使用了pyqrcode库生成可扫描二维码)
如果您进行搜索,您可能会找到一些已经在较大的库中构建了这些较小步骤的示例,like this one。
如果您想提供基于 SMS 的 2FA,则需要考虑使用 Twilio。但这可能是一个特性,并不是必需的。
【讨论】:
非常感谢您对我正在探索的内容提供更多见解。真的很感激。现在可以开始开发,知道有几条路线可以在没有 $$$ 的情况下进行探索。再次感谢。【参考方案2】:Two-Factor 不仅可以通过 SMS 消息起作用。也可以使用例如:
预先生成的一次性密码/pin 码 OTP/TOTP 算法 电子邮件 自定义通信渠道(例如您自己的移动应用,它将与您的服务器联系并获取登录代码) U2F 协议(Yubikey 等)这个包支持所有这些方法,甚至更多。您可以选择其中任何一个,因此无需依赖付费的第 3 方 SMS 提供商。
【讨论】:
非常感谢您对我正在探索的内容提供更多见解。真的很感激。现在可以开始开发,知道有几条路线可以在没有 $$$ 的情况下进行探索。再次感谢。以上是关于Django 两因素身份验证的主要内容,如果未能解决你的问题,请参考以下文章