Skip to content

自建双因素认证器 2FAuth 完美替代 Google Auth / Microsoft Auth

前言

现在越来越多的网站强制要求打开二次验证了,国内的网站比较流行手机验证码,但国外的网站更加流行 TOTP 这类动态密码。

而想要保存 TOTP 就需要用到身份验证器,比如常见的 Google Authenticator 或者 Microsoft Authenticator,由于不可抗力的网络原因,这两个验证器云同步过程中可能会造成数据的丢失,网上有不少的案例了。

另外比较常见的是各类密码管理工具中自带的 2FA 功能,比如 Bitwarden,但是 2FA 和密码存储在一起,万一数据泄露就是一锅端,也就失去了二次验证的意义了,因此更加建议单独搭建一个 2FAuth 来存储 TOTP。

2FAuth 是 Web App,数据存储在你自己的 VPS 或者 NAS 中,并且每个设备也不需要下载 App,只要打开网页就能访问,自然也不存在数据同步丢失的问题,只需要定期备份自己的数据库文件,即便 VPS 或者 NAS 损耗,也可以很方便的恢复数据。

安装

建议通过 Docker Compose 进行安装,2FAuth 有非常多的环境变量,具体可以参考官方文档,下面给出最精简的 Compose

警告

1.如果 APP_URL 必须与实际访问 URL 一致,否则访问时可能会白屏

2.在运行 Compose 之前,你还需要手动创建 2fauth 目录并修改所有权和权限,否则启动时创建 SQLite 可能会失败

sh
mkdir 2fauth
chown 1000:1000 2fauth
chmod 700 2fauth
yaml
services:
  2fauth:
    image: 2fauth/2fauth
    container_name: 2fauth
    volumes:
      - ./2fauth:/2fauth
    ports:
      - 8000:8000/tcp
    environment:
      - APP_URL=http://192.168.1.10:8000

配置

此时,再访问 http://ip:8000,你应该就能看到登录页面了,点击下方的 Register 进行注册

登录页
登录页

注册需要填写 Name、Email 和 Password,建议设置复杂度较高的密码

注册页
注册页

登录到 2FAuth 后,可以看到和其他验证器一样,可以通过扫描二维码添加 2FA 非常的方便

扫描二维码
扫描二维码

如果你的电脑没有摄像头不方便扫码,也可以选择 Use the advanced form 手动添加,只需要将平台的密钥粘贴到 Secret 即可,上方的 Service 和 Account 用于区分平台和账号,可以随意填写。

手动添加
手动添加

如果你已经在使用其他的身份验证器,也可以直接导入到 2FAuth 中作为备份,目前支持下面这些验证器,需要注意的是,导出时不要勾选加密

Plain textQR codeJSON
Google Authenticator
Aegis Auth
2FAS auth
FreeOTP+
2FAuth
导入
导入

效果

最终效果如下图,Icon 会根据你填写的 Service 名字自动匹配,如果没有匹配上也可以选择手动上传

下方的小点用于指示过期时间,并且最下方还会显示下一个动态密码,避免了刚复制完密码就过期的情况,更加的方便

效果
效果
关注微信公众号
你认为这篇文章怎么样?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0

预览:

评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.1.3