tobab
tobab:一个意见化的穷人身份感知代理启用器。将其用作 Caddy、Nginx 或 Traefik 的前向身份验证目标。
它使用 Passkey 进行简单而强大的身份验证。
目标
- 支持 Passkey 的用户管理
- 带有 Web UI 的管理员访问管理
- 易于使用(单个 Docker 容器,配置简单)
非目标
- 除 Passkey 外的任何身份验证
愿望列表(尚未实现)
- 指标
- 用于基于非浏览器会话的验证的 API 密钥支持
- 访问被拒绝消息
- 更好的错误处理,并向用户提供反馈
- 更好地分离模板和 JavaScript(登录和注册不是单个脚本)
- 与 Traefik 的测试
- 与 Nginx 的测试
- 其他存储接口实现,以使其更加云本地化
入门
- 请参阅
k8s-example
目录,了解 tobab 的 Kustomize 设置和部署到 Kubernetes - 确保正确设置 DNS
- 设置 Caddy 以使用此新端点进行转发身份验证:
login.example.com {
reverse_proxy tobab.tabab.svc
}
secure.example.com {
forward_auth tobab.tobab.svc {
uri /verify
}
reverse_proxy some_other_host:8080
}
- 在
login.example.com/register
创建新用户(第一个创建的用户将成为管理员) - 访问
secure.example.com
,通过您的 Passkey 进行身份验证 - 使用新用户登录
示例配置文件
hostname = "login.example.com" #登录发生的主机名
displayname = "example displayname" #用于 Passkey 创建
cookiescope = "example.com" #这将允许 example.com 的所有子域使用 tobab 进行单点登录
loglevel = "debug" #或 info、warning、error
databasepath = "./tobab.db"
致谢
没有这些出色的库,本项目今天是不可能达到这种水平的:
- github.com/gin-gonic/gin 优秀的请求路由器
- github.com/asdine/storm 构建于 Bolt 之上的嵌入式数据库,使持久性变得非常容易