asp.net - Google 身份验证器集成

标签 asp.net angular two-factor-authentication google-authenticator

我正在通过 Asp.net 为后端构建一个网站,为前端构建一个 Angular 5 网站。现在我想将 2FA Google 身份验证器集成到站点中以进行登录保护。我搜索了一些建议,但找不到合适的建议。任何人都知道集成此 2FA 的任何好的教程或文档?先感谢您。

最佳答案

简而言之,这是 2FA 应该具有的工作流程:

  • 创建(一次)
  • 生成了一个 secret
  • secret 被传递到服务器
  • secret 传递给用户:一种流行的方法是根据 secret 生成二维码,并要求用户使用谷歌身份验证器扫描它
  • 身份验证(之后每次)
  • 用户输入 Google 身份验证器为此应用程序和当前 30 秒窗口生成的凭据 + 6 位 token
  • 服务器可以使用他在步骤 1 中保存的 secret 来检查 token 的有效性。

  • 请注意,服务器和 Google Authenticator 无需通信 - token 生成基于时间 + secret 。因此,您只需要一个用于生成和检查 secret 的库:此任务称为 TOTP(基于时间的一次性密码算法),您可以找到 RFC here .
    幸运的是,有许多工具可以简化工作:Speakeasy例如,它是 Angular 友好的,你可以在 1 个导入和 20 行中实现 TOTP。
    哦,对于二维码生成,qrcode包与 Angular 和 Speakeasy 一起工作得非常顺利。

    关于asp.net - Google 身份验证器集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48621265/

    相关文章:

    c# - ASP.NET Core + IIS Express 如何设置 SSL 证书

    node.js - 无法在 Angular 8 中创建新项目

    authentication - 确定是否通过 API 为用户启用了 Google 2-Factor Authentication

    angular - 在具有无服务器后端的 Angular 2 应用程序中实现 2FA

    c# - 关于 c# .net 中的 xml 序列化

    c# - Web Api 方法返回任务的缺点

    c# - ASP.NET MVC 使用 UIHint 属性生成 DropDownList

    angular - 全局访问根 Angular 2 注入(inject)器实例

    angular - 使用 Angular CLI 安装 Dragula

    authentication - 将远程提交推送到 github 并启用两因素身份验证