大家是怎么对自用的服务做鉴权的

查看 324|回复 21
作者:inzufu   
比如网站的后台,图床的上传页和一些小 API 接口。
最常用的应该是密码,但是一个服务一个密码感觉体验很不好,管理起来也麻烦。
用过钉钉、飞书、slack 等服务的 oauth 登录接口,实现起来挺简单,但感觉还不算是最佳实践。
我能想到的:
1:邮箱验证码登录,实现起来可能稍微有点麻烦。
2:webauthn 用手机或者安全密钥登录,但我还没研究明白。
3:TOTP (基于时间的验证码),但是如果单用一个六位数的数字做鉴权是否不太安全。
问题是这三种只是单次认证的方法,要做持久化会话就得几乎从头写一个鉴权系统,有点为了醋包饺子的感觉。
各位有什么思路吗。
bluedawn   
passkey
bluedawn   
你本来就有 authelia/authetik/keyclock 搭建的话接入它们也行
busier   
就自己用的业务,我用 TLS/SSL 双向证书验证
如果在其它设备临时用下,就发个短期证书。
nealot   
一个安全性差一点,但是简单一点的办法:
生成一个 uuid ,配置在 nginx 里面,作为 url 的 prefix 。当然全站要强制启用 HTTPS
hanierming   
Nginx 密码最简单
inzufu
OP
  
用 nginx 加密码?
inzufu
OP
  
@busier 这是个思路。拓展一下:如果业务里接触不到 Nginx 这一层或者设备不方便安装证书的话,可以把证书放在浏览器的 localstorage 里,鉴权时服务器发送 challenge 由客户端签名后再返回给服务端校验,有点像 webauthn 。
xcsoft   
@nealot 这个本质上还是密码校验,就是是在 Nginx 这一层实现的。
但还是谢谢你的思路,确实比在应用中实现方便一点儿。
inzufu
OP
  
用浏览器的 passkey 就很方便
您需要登录后才可以回帖 登录 | 立即注册

返回顶部