单点登录服务Authelia(下篇)
高级设置
Authelia
进入 Nginx Proxy Manager
,找到 Authelia
域名 auth.laosu.ml
对应的 Proxy Hosts
,进入编辑状态,并切换到 Advanced
界面
在 Custom Nginx Configuration
中粘贴下面的代码
1 | location / { |
粘贴前有两处需要修改👇
- 第一处要改成你的群晖主机的
IP
和Authelia
的端口
1 | set $upstream_authelia http://192.168.0.199:9091; |
- 第二处根据你的网段进行修改
1 | set_real_ip_from 192.168.0.0/24; #根据你的网段进行修改 |
受保护的域
域名 | 用途 | 规则 |
---|---|---|
https://ad.laosu.ml |
Adminer 的访问地址 |
one_factor |
https://sp1.laosu.ml |
speed test 的访问地址 |
one_factor |
https://nas.laosu.ml |
群晖管理界面 的访问地址 |
two_factor |
https://n8n.laosu.ml |
n8n 的访问地址 |
two_factor |
每个受保护的域,不管是 one_factor
还是 two_factor
,都要进入 Nginx Proxy Manager
,找到对应的 Proxy Hosts
,进入编辑状态,并切换到 Advanced
界面,在 Custom Nginx Configuration
中粘贴下面的代码
1 | location /authelia { |
粘贴前有几处需要修改👇
- 第一处要改成你的群晖主机的
IP
和Authelia
的端口
1 | set $upstream_authelia http://192.168.0.199:9091/api/verify; # authelia 的 ip 和端口 |
- 第二处是修改
$upstream_speedtest
,一般按照应用的名称、容器的名称改,主要是便于识别,例如:$upstream_adminer
、$upstream_n8n
等 - 后面的地址
http://192.168.0.199:8180
则需要按照你的应用来设置,这是老苏安装的speedtest
应用
1 | set $upstream_speedtest http://192.168.0.199:8180; # 更改应用的名称, IP 和端口 |
- 第三处需要改为你的
authelia
的域名,如果和老苏一样没有备案的话,这里必须把端口带上
1 | error_page 401 =302 https://auth.laosu.ml:444/?rd=$target_url; # 改为你的 authelia 域名,有端口也要带上 |
- 第四处根据你的网段进行修改
1 | set_real_ip_from 192.168.0.0/16; #根据你的网段进行修改 |
运行
先打开 https://auth.laosu.ml:444
,出现了 authelia
的登录界面
按照我们前面在
users_database.yml
中的设置,账号为authelia
,密码为123456
;这里老苏只是示例,如果你也这么设,那设不设的也没啥区别
登录成功后
如果设置了 two_factor
,会显示需要注册设备
接下来试试 https://sp1.laosu.ml:444
,出现了 authelia
的登录界面,输入账号、密码,登录成功直接打开了测试界面
打开 https://n8n.laosu.ml:444
,这个通行规则是 two_factor
,需要点 METHODS
,选择 TOTP
点 Register device
可以注册设备
一次性密码(
One-Time Password
,简称OTP
),又称 “一次性口令”,是指只能使用一次的密码。一次性密码是根据专门算法、每隔60
秒生成一个不可预测的随机数字组合,iKEY
一次性密码已在金融、电信、网游等领域被广泛应用,有效地保护了用户的安全。【百度百科】
OTP
软件挺多的,比如老苏用的 Microsoft Authenticator
,还有 Google Authenticator
、 FreeOTP
等等
右上角显示发送邮件
进邮箱,点中间蓝色的 Register
按钮
如果页面错误,看看 url
中是不是少了端口,老苏用的 444
端口是非标端口( SSL
默认端口为 443
,所以老苏认为 444
是非标的),需要自己加,加好了在地址栏中直接回车刷新页面就可以了
按作者的说法,可能需要到
v4.34
才会修复非标准端口运行的问题
老苏用的是 Microsoft Authenticator
,打开后通过 添加账号
–> 个人账号
–> 扫描 QR 码
回到网页的登录界面,刷新后会显示 6
个方框
填入 Microsoft Authenticator
中的 6
位数字,验证通过后就可以看到 n8n
的界面了
结语
有了 Authelia
,再配合 Fail2ban
防止暴力破解,公网访问的安全性问题会得到很大的保障。
虽然官方强调 OpenID Connect
仍处于预览阶段,但实际上Authelia
已经支持 OIDC
认证,不过限于篇幅,还是留到下回吧。
下期预告👉『Outline使用Authelia实现本地认证
』,文章将讨论如何实现 Outline
通过 Authelia
的 OIDC
完成本地认证,而不再需要借助基于公网的第三方认证。
参考文档
authelia/authelia: The Single Sign-On Multi-Factor portal for web apps
地址:https://github.com/authelia/autheliaHome - Authelia
地址:https://www.authelia.com/docs/Running authelia on a non standard HTTPs port. Base href is not valid. · Issue #2765 · authelia/authelia
地址:https://github.com/authelia/authelia/issues/2765Authelia - SSO and 2FA portal
地址:https://www.blackvoid.club/authelia-sso-and-2fa-portal/Self-Hosted SSO with Authelia and NGINX
地址:https://matwick.ca/authelia-nginx-sso/Setup Authelia to work… | The Homelab Wiki
地址:https://thehomelab.wiki/books/dns-reverse-proxy/page/setup-authelia-to-work-with-nginx-proxy-managerAuthelia: Install Guide on Unraid + NGINX (Brief) - YouTube
地址:https://www.youtube.com/watch?app=desktop&v=fr-t7sGrYtISkyPi/README.md at main · Just5KY/SkyPi
地址:https://github.com/Just5KY/SkyPi/blob/main/Authelia/README.md