#cable #webauthn #fido #hybrid #back-end

app cable-tunnel-server-backend

webauthn-rs caBLE隧道服务器后端

1个不稳定版本

0.1.0 2023年6月7日

身份验证中排名第1073

MPL-2.0 许可证

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