1个不稳定版本
| 0.1.0 | 2023年6月7日 |
|---|
在身份验证中排名第1073
54KB
990 行
webauthn-rs cable-tunnel-server-backend
此二进制文件提供了一个caBLE隧道服务器,仅供非生产用途。
backend可以运行在两种配置下
-
单任务配置,直接处理请求,没有前端。
在此配置中,caBLE 路由ID被忽略,并假定所有传入请求都可以由单个运行任务处理。
-
多任务配置,具有许多前端任务。
在此配置中,后端假定它前面有前端任务来处理caBLE路由ID。然而,前端尚未完全实现。
backend是无状态的,无法自行与其他任务通信。每个隧道存在于一个(且仅有一个)backend任务中,且backend任务永远不会处理caBLE 路由ID。
构建
您可以使用Cargo构建backend
cargo build
这将输出一个二进制文件到./target/debug/cable-tunnel-server-backend。
您还可以通过Cargo运行服务器
cargo run -- --help
服务器配置
服务器通过命令行标志进行配置,可以通过运行服务器并使用--help来查看。
要在http://127.0.0.1:8080运行服务器(用于与使用cable-override-tunnel功能构建的webauthn-authenticator-rs进行测试)
./cable-tunnel-server-backend \
--bind-address 127.0.0.1:8080 \
--insecure-http-server
以HTTPS和严格Origin头部检查运行服务器
./cable-tunnel-server-backend \
--bind-address 192.0.2.1:443 \
--tls-public-key /etc/ssl/certs/cable.example.com.pem \
--tls-private-key /etc/ssl/certs/cable.example.com.key \
--origin cable.example.com
重要: caBLE有一个推导隧道服务器域名的算法——您不能将服务托管在您选择的任意域名上。
运行
webauthn-authenticator-rs'cable_domain示例 以在命令行中推导主机名。
日志记录
默认情况下,服务器以 info 日志级别运行。这可以通过使用 RUST_LOG 环境变量来更改,使用 tracing crate 中的可用日志级别。
服务器在每个级别都会记录以下内容,以及上述级别的所有消息
-
error:TLS 握手错误、TCP 连接错误、不正确或未知的 HTTP 请求 -
warn:关于使用未加密 HTTP 的警告 -
info:(默认)启动消息、HTTP 连接生命周期、HTTP 请求日志、WebSocket 隧道生命周期 -
debug:无 -
trace:添加完整的传入 HTTP 请求、WebSocket 隧道消息
监控
服务器在 /debug 处导出一些基本指标
-
server_state.strong_count:对Arc<ServerState>的强引用数量 -
peer_map:所有挂起的隧道的HashMap- 其中认证器已连接,但发起者尚未连接。-
peer_map.capacity:挂起隧道HashMap的容量 -
peer_map.len:挂起隧道的数量
-
依赖
~11–24MB
~363K SLoC