管理双因素身份验证的Web应用2FAuth

news2024/11/25 15:39:19

在这里插入图片描述

什么是 2FAuth ?

2FAuth 是一种基于 Web 的自托管替代方案,可替代 Google Authenticator 等一次性密码 (OTP) 生成器,专为移动设备和桌面设备设计。

近年来,双因素身份验证变得非常流行,2FA 现在是不可避免且至关重要的。往常一般是都是使用移动端应用,例如老苏主要用 Microsoft Authenticator 或者 Authy

2FAuth 的目的是通过干净且合适的界面来简化您使用和管理 2FA 的方式,无论您使用什么设备。在没有智能手机的情况下在电脑前处理代码请求?没问题,只需在浏览器选项卡中打开 2FAuth 实例即可!

安装之前,可以去官方提供的演示网站体验一下,但是千万记得,不要上传敏感数据

地址:https://demo.2fauth.app/

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 2fauth ,选择第一个 2fauth/2fauth,版本选择 latest

本文写作时, latest 版本对应为 4.1.0

在这里插入图片描述

docker 文件夹中,创建一个新文件夹 2fauth,并在其中建一个子文件夹 data

记得给 data 目录新增 Everyone 的读写权限

在这里插入图片描述

文件夹装载路径说明
docker/2fauth/data/2fauth存放数据库、日志文件等

在这里插入图片描述

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口容器端口
80408000

在这里插入图片描述

环境

保持默认就可以了,如果要改的话,建议改 APP_KEY,这是数据库和会话的加密秘钥,使用 32 个字符的字符串

在这里插入图片描述

更多环境变量,可以参考官方文档:https://docs.2fauth.app/getting-started/installation/docker/docker-compose/

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 2fauth 和 子目录
mkdir -p /volume1/docker/2fauth/data

# 进入 2fauth 目录
cd /volume1/docker/2fauth

#修改目录所有者和权限
chown 1000:1000 data 
chmod 700 data

# 运行容器
docker run -d \
   --restart unless-stopped \
   --name 2fauth \
   -p 8040:8000 \
   -v $(pwd)/data:/2fauth \
   -e AUTHENTICATION_GUARD=web-guard \
   2fauth/2fauth

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'

services:
  2fauth:
    image: 2fauth/2fauth
    container_name: 2fauth
    restart: unless-stopped
    ports:
      - 8040:8000
    volumes:
      - ./data:/2fauth
    environment:
      - AUTHENTICATION_GUARD=web-guard

然后执行下面的命令

# 新建文件夹 2fauth 和 子目录
mkdir -p /volume1/docker/2fauth/data

# 进入 2fauth 目录
cd /volume1/docker/2fauth

#修改目录所有者和权限
chown 1000:1000 data 
chmod 700 data

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

反向代理

因为需要用到 https 协议,比如网页使用摄像头,所以用 npm + tailscale 方案做反代设置,这样安全性比较高一点,如果还不了解的话,可以点传送门去看看

文章传送门:用自定义域名访问Tailscale节点

将域名指向 http://群晖IP:8040

SSL 中没问题的话可以都勾选

桌面端网页

第一次启动需要创建数据库等,所以需要点时间

在浏览器中输入 http://2fa.laosu.cf 就能看到登录界面

在这里插入图片描述

第一次需要先注册

密码要符合红框中的要求,把绿色的点点都要点亮

可以先跳过

在这里插入图片描述

现在就可以开始使用了

在这里插入图片描述

点扫描 QR码,第一次会需要 允许 网页使用摄像头

在这里插入图片描述

一段时间不使用,会自动锁定

不过 PC 上扫码肯定是不方便的,所以主要还是在移动端浏览器上

移动端网页

用移动端浏览器打开 http://2fa.laosu.cf

在这里插入图片描述

也需要允许摄像头

最终的账号效果

在这里插入图片描述

生成一次性密码

在这里插入图片描述

Microsoft AuthenticatorAuthy 这些独立应用比,2FAuth 不需要同步,即开即用,缺点是无法脱离网络使用,但是在需要 2FA 认证的时候,网络应该不是问题吧

参考文档

Bubka/2FAuth: A Web app to manage your Two-Factor Authentication (2FA) accounts and generate their security codes
地址:https://github.com/Bubka/2FAuth

Welcome to 2FAuth Docs - 2FAuth Docs
地址:https://docs.2fauth.app/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1161355.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阿里云ECS经济型e实例ecs.e-c1m1.large性能测评

阿里云服务器ECS经济型e实例2核2G配置规格ecs.e-c1m1.large,CPU采用Intel Xeon Platinum架构处理器,e系列云服务器是阿里云面向个人开发者、学生、小微企业,在中小型网站建设、开发测试、轻量级应用等场景推出的全新入门级云服务器。目前云服…

C++ 类型

4.5//默认double类型 4.5f//float类型 基本内置类型 基本内置类型包含算术类型和空类型,算术类型包含字符、整数型、布尔值和浮点数,空类型不对应具体的值,仅用于一些特殊的场合。 算术类型 分为两类,整型(包括字…

艾奇免费KTV电子相册视频制作软件

不得不承认功能特色支持添加导入图形、视频、歌曲、卡啦ok动态歌词字幕文件:图形文件格式支持导入jpg/jpeg/png/bmp/gif等静态图形;视频文件支持导入AVI/MP4/FLV/MTS/MPG/RMVB等几乎所有常见视频文件;歌曲格式支持mp3/wma/acc/ogg/wav等几乎所…

力扣第96题 不同的二叉搜索树 c++ 二叉搜索树 动态规划 + 数学思维

题目 96. 不同的二叉搜索树 中等 相关标签 树 二叉搜索树 数学 动态规划 二叉树 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 示例 1: 输入&#…

NoSQL数据库使用场景以及架构介绍

文章目录 一. 什么是NoSQL?二. NoSQL分类三. NoSQL与关系数据库有什么区别四. NoSQL主要优势和缺点五. NoSQL体系框架 其它相关推荐: 系统架构之微服务架构 系统架构设计之微内核架构 鸿蒙操作系统架构 架构设计之大数据架构(Lambda架构、Kap…

Halo勒索病毒:了解最新变种.halo,以及如何保护您的数据

导言: 在当今数字化的世界中,网络威胁不断演变,其中勒索病毒一直是网络犯罪分子的有力武器之一。在这篇文章中,我们将深入介绍.halo勒索病毒,了解它的工作方式,讨论如何恢复被加密的数据文件,并…

【网络协议】聊聊HTTPS协议

前面的文章,我们描述了网络是怎样进行传输数据包的,但是网络是不安全的,对于这种流量门户网站其实还好,对于支付类场景其实容易将数据泄漏,所以安全的方式是通过加密,加密方式主要是对称加密和非对称加密。…

vue3简单写导航anchor示例(支持点击高亮和滚动判断高亮)

1. 点击anchor, 相应的anchorlink高亮 function anchorClick(index) { forceStop.value true; time Date.now(); wheelRef.value.children[index].scrollIntoView({ block: start, behavior: smooth }); // 给一些延时, 再点亮anchor, 同时不再限制scrol…

【教3妹学编辑-算法题】环和杆

3妹:2哥,今年春节的放假安排出来了,今年春节放8天假,我们公司除夕提前放一天,总共9天假。 耶~~~ 2哥 :你们公司这么好啊, 我们公司的放假安排还没出来,不知道今年除夕能不能回家了… 3妹&#x…

(免费领源码)Java#MYSQL超市管理系统10428-计算机毕业设计项目选题推荐

目 录 摘要 1 绪论 1.1 研究意义 1.2国内外研究现状 1.3论文结构与章节安排 2 超市管理系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.5本章小结 3 …

openGauss-向量化执行引擎-VecUnique算子

openGauss-向量化执行引擎系列-VecUnique算子 openGauss实现了向量化执行引擎,达到算子级别的并行。也就是说在执行器火山模型基础上,一次处理一批数据,而不是一次一个元组。这样可以充分利用SIMD指令进行优化,达到指令级别并行。…

知识点滴 - 纸张的大小

关于纸张大小的描述方法 纸张大小的描述方法主要有两种,一种是我们经常使用的打印纸使用的A4、A3的叫法,这个是国际标准。 另一种是开本的叫法,比如16开、32开等。开本常见于书籍印刷品的规格。正规出版物基本没有使用 A4(ISO国际…

1688阿里巴巴官方开放平台API接口获取跨境属性、跨境包裹重量、单位重量等参数调用示例说明

1688.item_get_specifications-获得跨境属性 公共参数 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)注册调用key接入secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_…

2023SHCTF web方向wp

1.ezphp 看一眼,你大爷,啥玩意都给我过滤完了。 还好下面有preg_replace()/e,会把replacement当作php语句执行 传参pattern.*, .*表示任意字符,code{${phpinfo()}} ,为什么这样写,因为,print_…

CHS零壹视频恢复程序高级版视频修复OCR使用方法

目前CHS零壹视频恢复程序监控版、专业版、高级版已经支持了OCR,OCR是一种光学识别系统,高级版最新版本中不仅仅是在视频恢复中支持OCR,同时视频修复模块也增加了OCR功能,此功能可以针对一些批量修复的视频文件(如执法仪…

网络编程---Socket

文章目录 网络编程基础什么是网络编程?网络编程的基本概念 网络编程实现Socket套接字UDP网络通信流程(回显服务器)服务器:客户端完整代码示例: TCP网络通信流程(回显服务器)服务器客户端完整的代…

医保经办系统练兵比武竞赛中用到的软件和硬件

全国医保经办系统练兵比武竞赛包括必答题、抢答题、案例题、实操题、风险题,用到选手端平板、评委端平板、主持人平板、抢答器等设备。分别计算团队分和个人分。答题规则和计分方案均较为复杂,一般竞赛软件无法实现,要用到高端竞赛软件&#…

谷歌动态搜索广告被滥用引发恶意软件泛滥

研究人员发现了一种新方法,可以利用易受攻击的网站向搜索引擎用户发送恶意的、有针对性的广告,这种方法能够传播大量恶意软件,使受害者完全不知所措。 关键是“动态搜索广告”,谷歌利用网站登陆页面的内容将目标广告与搜索配对的…

Kubernetes 高级调度 - Affinity

Author:rab 目录 前言一、Node 亲和性1.1 NodeAffinity1.1.1 Hard Node Affinity1.1.2 Soft Node Affinity 1.2 NodeAntiAffinity 二、Pod 亲和性2.1 PodAffinity2.1.1 Hard Pod Affinity2.1.2 Soft Pod Affinity 2.2 PodAntiAffinity 总结 前言 Kubernetes 中的 A…

OceanBase:02-单机部署(生产环境)

目录 一、部署规划 二、配置要求 三、部署前配置 1.配置 limits.conf 2.配置 sysctl.conf 3.关闭防火墙 4.关闭 SELinux 5.创建数据目录,修改文件所有者信息 6.设置无密码 SSH 登录 7.安装jdk 四、解压执行安装 五、OBD命令行部署 1.修改配置文件(all-c…