dsh-auth:DeepSeek Harness Web UI 的 Cookie 鉴权插件

前言

DeepSeek Harness 的 Web UI 在 0.1.0-rc.6 版本中仅提供具名 route、upgrade route 和一个 SPA fallback,缺少 HTTP middleware。旁挂一个 /login route 无法保护已有的 /api、静态管理端或 WebSocket。dsh-auth 以 bundle 的形式禁用内置 webserver,并插入一个提供相同服务面的认证宿主,在不修改现有 connection、modules、HMR 与 frontend-static 的情况下为 Web UI 提供鉴权能力。

是什么

dsh-auth 是面向 DeepSeek Harness Web UI 的 Cookie 鉴权 bundle。该项目由 radaren 维护,遵循 MIT 许可证。它不读取或复用 ~/.dsh/.credentials.yaml 中的模型 API 密钥。

安装与启用

使用 tarball 安装插件:

dsh plugin --profile web add ./dsh-auth-0.1.0.tgz

验证组合层是否生效:

dsh web --dump-config

输出中应同时看到禁用的 webserver 和新增的 auth-webserver。

核心功能

该插件提供以下能力:

  • 地址绑定:支持绑定回环、0.0.0.0 或指定 IPv4 地址。
  • Token 管理:从 $DSH_HOME/token(默认 ~/.dsh/token)读取专用访问 token;若 token 不存在,会生成 32 字节随机值并以 0600 权限保存。
  • 登录与 Cookie:内置 /auth/login 登录页,成功后写入 HttpOnly; SameSite=Strict Cookie。
  • 路由保护:统一保护 SPA、HTTP API 和 WebSocket upgrade。
  • 远程 API:登录后开放 Harness 的远程管理 API,并在交给下游前移除 auth Cookie。
  • 兼容层:为明文 LAN 来源补充基于 crypto.getRandomValues() 的 UUID v4 兼容实现。
  • 生命周期:提供退出登录与全局 token 轮换功能。

使用示例

本机访问:

dsh web

打开命令行打印的 URL。若 ~/.dsh/token 原先不存在,插件会自动创建。登录 token 可从该文件读取:

cat ~/.dsh/token

绑定远程 IPv4 地址:

DSH_AUTH_HOST=0.0.0.0 dsh web

或指定特定网卡:

DSH_AUTH_HOST=192.168.1.20 dsh web

随后访问对应地址。注意 host 必须是 IPv4 字面量,不接受主机名。

启用 HTTPS 的 Secure Cookie:

DSH_AUTH_SECURE_COOKIE=true dsh web

配置

插件通过环境变量控制行为:

变量 默认值 说明
DSH_AUTH_HOST 127.0.0.1 IPv4 监听地址,优先于 dsh web --host
DSH_AUTH_TOKEN_FILE $DSH_HOME/token 专用 token 文件路径
DSH_AUTH_SECURE_COOKIE false 只有精确值 true 才添加 Secure 标志

如需修改其他字段,可在 $DSH_HOME/profiles/web/cordis.patch.yml 中完整重述配置。示例:

- id: auth-webserver
  config:
    host: 127.0.0.1
    port: 3080
    tokenFile: !!js dshHomePath('token')
    cookieName: dsh_auth
    cookieMaxAgeSeconds: 2592000
    secureCookie: false
    authPath: /auth
    apiPath: /api
    authorizeRemoteApi: true
    maxLoginBodyBytes: 4096
    protectTokenFile: true

注意事项

  • 单一 token:该插件不提供多用户、权限分级或审计系统。
  • TLS 处理:插件不终止 TLS;公网使用必须配置 HTTPS 反向代理和网络访问控制。
  • 权限风险:DeepSeek Harness 本身可执行命令和修改文件,应仅将其暴露给受信任的网络环境。
  • Cookie 限制:直接访问 http://... 时开启 Secure Cookie 会失败。
  • 地址限制:host 参数必须是 IPv4 字面量,不接受主机名。

结语

dsh-auth 通过引入 Cookie 鉴权层,解决了 DeepSeek Harness Web UI 在 0.1.0-rc.6 版本中缺乏中间件保护的问题。它不依赖模型 API 密钥,而是通过本地 Token 文件进行控制,适合需要独立鉴权场景的本地开发或内网部署。

项目主页:https://github.com/radaren/dsh-auth
社区目录:https://www.skillhub.cn/plugins/radaren/dsh-auth

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜