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

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

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

小夜