1
bluedawn 107 天前 via iPhone 1
passkey
|
2
bluedawn 107 天前 via iPhone 2
你本来就有 authelia/authetik/keyclock 搭建的话接入它们也行
|
3
busier 107 天前 1
就自己用的业务,我用 TLS/SSL 双向证书验证
如果在其它设备临时用下,就发个短期证书。 |
4
nealot 107 天前 1
一个安全性差一点,但是简单一点的办法:
生成一个 uuid ,配置在 nginx 里面,作为 url 的 prefix 。当然全站要强制启用 HTTPS |
5
lymanbernadette6 107 天前 1
Nginx 密码最简单
|
6
hanierming 107 天前 1
用 nginx 加密码?
|
7
Inzufu OP @busier 这是个思路。拓展一下:如果业务里接触不到 Nginx 这一层或者设备不方便安装证书的话,可以把证书放在浏览器的 localstorage 里,鉴权时服务器发送 challenge 由客户端签名后再返回给服务端校验,有点像 webauthn 。
|
9
xcsoft 107 天前 1
用浏览器的 passkey 就很方便
|
10
Inzufu OP |
11
Inzufu OP |
12
estk 107 天前 via iPhone
自用就 ssl + nginx 密码
|
13
xcsoft 107 天前 1
基本现代化浏览器都已经对 passkey 兼容了吧
持久化认证,只能自己实现业务逻辑,比如身份验证后使用 jwt ,或者使用 一些类似 webvpn 之类的(大学的校内资源访问) 那种? 或者直接使用 wireguard ,业务不放公网也可以 |
14
Wh0amis 107 天前 2
搞个 ip 白名单,然后裸奔,啥鉴权都不需要
|
15
wxyrrcj 107 天前 1
nginx 配置个密码
|
16
wu67 107 天前 1
echo 账户名:$(openssl passwd -1 你的密码)>>/etc/nginx/webdavpasswd
nginx auth_basic_user_file /etc/nginx/webdavpasswd; 接口服务等无法每次调用都输密码的, 可以加自定义一个 http header. 注意不要自定义 ua 的内容, chrome 无法自定义 ua, 纯纯浪费时间 |
17
potatowish 107 天前 via iPhone 1
1. vpn ,ip 白名单
2. 服务端企业微信接口下发动态验证码 3. 服务端 bark 推送动态验证码到 iphone |
18
isSamle 107 天前 1
如果是自己的服务调用的话,就是内网调用不开防火墙,如果是外部调用,就配秘钥
|
19
securityCoding 107 天前 1
套个 cf 认证了
|
20
BH1SMB 107 天前
IP 白名单或者 key 验证
|
21
zpfhbyx 107 天前
加 key 最简单了
|
22
libook 107 天前
用密码管理器,一个服务一个密码也无所谓。
主要是并不是所有服务都支持一样的统一单点登录技术。 |
23
Puteulanus 107 天前
感觉你想要的可能是 Auth0
类似你说的 oauth 登录接口,不过它整合了常见登录方式和一些第三方登陆 登陆跳回来的 callback 是 jwt ,你自己这边简单做一下 jwt 的验证就行了。我是用的 Nginx 的 ngx_http_auth_jwt_module 模块在中间做一个验证网关,对需要控制访问的 web 服务转接一下 https://github.com/puteulanus/nal ,服务那边就基本上无感了 我一般会开 GitHub 登陆和 email 登陆,email 我记得是邮件验证码吧,太久了印象不深了,magic link 那种不知道它有没有。Auth0 还是挺有名的服务的,OpenAI 的登陆就是用的它 |
24
henix 107 天前
https (自签证书) + http basic auth
|
25
opengps 107 天前
密码我都懒得用,我就是一个自己才知道的 url ,带上自己定制规律的入参才能打开,越是这种自定义的规则,黑客越猜不到
|
26
tool2dx 107 天前
我是自己套用 RPC 协议加密,因为可以远程执行命令,我怕被别人抓包,只能加密。
加密相当于鉴权了。 |
27
iLtc 107 天前
我目前是 用户名 + TOTP + reCAPTCHA ,应该能防止暴力破解。
最近在考虑要不要换成 Passkey 。 |
28
nosmile 107 天前
IP 白名单,后面准备写个脚本,在新的地点一键放通
|
29
bobryjosin 107 天前
cloudflare zero trust ,tunnel 绑个域名走 github 认证,点一下就能过了,自用的服务都 wireguard 组网,直接用内网 ip 访问。
|
30
totoro625 107 天前
直接就是 IP 鉴权
访问一个特定服务器的 URL 记录访问 IP ,通过 ddns 传递 IP 到域名,其他服务器定时拉取 IP 解析并放行,隔一段时间删除该 IP |
31
echoless 107 天前
|
33
zsh2517 107 天前
目前公网统一的入口,走 nginx + Basic Auth 转发到内网里面的一个 Nginx Proxy Manager ,它再分发到具体服务上。
内网里面基本没有鉴权(有通常也是弱密码)。只有极个别服务是强密码验证(比如 pve 的 web UI ) --- 目前个别服务(支持 OAuth2/OpenID 登录的),接入了 GitLab 作为第三方登录。 后面计划改成每个服务均绑定 127.0.0.1 ,然后前面套一个轻量的鉴权网关(可能支持 oauth/passkey/password 三种验证)。但是懒得写又没找到合适的开源项目( 天天在 V2EX 打广告的 casdoor 似乎可能满足需求,但是之前部署过一次文档质量有点差),就一直咕咕咕了 |
35
WashFreshFresh 107 天前 1
@zsh2517 sa-token 到还可以,你说的都支持。
|
36
wbrobot 107 天前
直接前端生成个浏览器指纹当 uuid ,设置个 password 就行了。
|
37
wbrobot 107 天前
@wbrobot 我的一个站 https://9898555.com 就是用前端浏览器指纹当 uuid ,弱绑定用户
|
38
beyondstars 107 天前
1. 自用服务部署在内网(或者虚拟局域网),透过 wg, ssh 等加密隧道软件进行连接。
2. 自签 ssl 证书 + http basic auth; 3. Cloudflare tunnel (只是一个想法,没试过); 4. 对接 3rd party auth api 太麻烦了(再简单的 3rd party auth 对接也远不如写几行配置,敲几行命令简单)。 |
39
beyondstars 107 天前
补充一个:
5. 部署在自有 k8s 集群的可以用 client cert + kubectl port-forward + clusterip service 的方式安全访问。 |
40
PerFectTime 107 天前 1
caddy + caddy-security 模块 + github oauth
|
41
ZztGqk 107 天前 via iPhone
passkey 我就在用 passkey
|
42
zsh2517 107 天前
@WashFreshFresh #35 看了一下,项目本身似乎挺不错的。可惜我不写 Java ,而且需求似乎对不上 😂
目前的思路大概是:选择一个可信的 OAuth2 ( OpenID Connect ) 三方平台。然后 golang (无运行时依赖)实现一个轻量、单文件(方便部署)的反向代理。未登录时强制 OIDC 登录。登录后在白名单的用户反向代理,不在白名单的用户 403 Forbidden 。这样就可以很简单地实现认证后访问。 目前已经跑通流程了,但是反代代码是 GPT 写的,能跑但是还没仔细读,不知道有没有 bug 。 后期可能(但不一定)会把 OAuth2 的提供者换成 keycloak 之类的专门的服务;以及解决配置文件分发的问题(几台虚拟机,十几个服务) |
43
zsh2517 107 天前
@zsh2517 #40 提到的 caddy-security 看起来能满足反向代理的要求。看具体需要吧
如果要把反向代理仅作为外网入口的鉴权,那么一台服务器跑反向代理,其他走内网访问就行。 不过我希望的是每个机器上的服务在内网也无法直接访问。这个时候可能需要每台设备跑一个反代了 |
44
zsh2517 107 天前
@zsh2517 补充一下内网的安全性问题。一般来说 homelab 应该可以把内网看作可信的。
主要我这边跑了一个帕鲁服、一个 QQ Bot 和一些其他东西,没有做隔离而且不止我一个人能登录 VM 。 短期没心情重新调整网络,所以想直接在每个服务上授权验证(虽然 OAuth2 不至于说完全无感,但是每隔一段时间的首次访问自动跳转一下、大部分时候无感,还是能接受的) |
45
8355 106 天前
api 的话自用 header token 写死复杂加密值
适用于复杂路径 |