dsh-plugin-ldap-viewer:在 DSH Web UI 中只讀查詢 LDAP / Active Directory 賬號

前言

在 DeepSeek Harness(DSH)裏做智能體或本地工具鏈時,經常要覈對目錄裏的賬號狀態:是否啓用、是否鎖定、密碼是否要改、賬號何時過期。以往多是單獨開 LDAP 客戶端或寫一次性腳本,和 Web UI 的工作流割裂。下面介紹社區插件 dsh-plugin-ldap-viewer(倉庫 sijunmanyue/dsh-plugin-ldap-viewer):它在 DSH Web 界面側欄提供 LDAP Account Viewer,用只讀搜索展示賬號與狀態列,不修改目錄。

這是什麼

  • 定位:面向 DSH Web UI 的只讀 LDAP / Active Directory 賬號查看器(README 與 package.json 描述一致)。
  • 維護者:GitHub 用戶 sijunmanyue(package.json 中 author 爲 JUN MA)。
  • 分類:DSH 插件目錄中歸爲客戶端(dsh.client.platform: web,安裝後左側欄出現圖標)。
  • 許可證:MIT(見倉庫 LICENSE)。

插件以當前 DSH 進程權限運行 HTTP 與 LDAP 連接;安裝前宜自行審閱源碼與許可證。

核心功能

連接與配置(界面只讀,可點 Edit 修改)

連接項在頁面上默認只讀,點擊 Edit 後可改:

  • host、port
  • Base DN、Bind DN
  • bind 密碼(保存時留空表示保留當前密碼)

非敏感連接項落在本地配置文件;bind 密碼走 Harness 憑據服務,頁面上只顯示是否已配置密碼,不展示明文。

查詢方式

支持三類固定過濾(非任意拼接 filter),查詢值按 RFC 4515 轉義:

類型 過濾邏輯(README 原文)
賬號 (&(objectClass=user)(sAMAccountName=...))
郵箱 (&(objectClass=user)(|(mail=...)(userPrincipalName=...)))
手機 (&(objectClass=user)(|(mobile=...)(telephoneNumber=...)))

單次查詢結果上限 500 條;使用 RFC 2696 分頁控件,表格支持每頁 10 / 20 / 50 行。

表格列包括:賬號、姓名、郵箱、手機、部門,以及分開的狀態列:

  • enabled(是否啓用)
  • lock state(鎖定)
  • account expiry(賬號過期)
  • password:valid / expired / must change / never expires / unknown,並帶過期時間

狀態計算依賴 Active Directory 屬性:msDS-UserPasswordExpiryTimeComputed、msDS-User-Account-Control-Computed、pwdLastSet、accountExpires、lockoutTime。

安全邊界(README 聲明)

  • HTTP 路由僅接受 loopback 請求。
  • 僅只讀 LDAP search,不寫目錄。
  • 結果不包含 userPassword 等敏感屬性。
  • 默認 plain LDAP(389);README 寫明未配置 LDAPS。

安裝與啓用

官方說明爲先取得倉庫目錄,再通過 Plugin Manager 或 plugin_manager install_bundle 安裝該目錄爲 DSH bundle。README 示例:

git clone https://github.com/sijunmanyue/dsh-plugin-ldap-viewer.git
plugin_manager install_bundle
  target = <absolute path to this directory>

安裝後刷新 Web 頁面,左側欄會出現 LDAP Account Viewer 圖標。

社區目錄頁:https://www.skillhub.cn/plugins/sijunmanyue/dsh-plugin-ldap-viewer(獨立站點,與 DeepSeek / 幻方無官方從屬關係)。

配置與密碼

配置文件路徑

非機密連接項保存在:

%DSH_HOME%\ldap-viewer\config.json

未設置 DSH_HOME 時:

%USERPROFILE%\.dsh\ldap-viewer\config.json

憑據與環境變量

  • Bind 密碼由 Harness 憑據服務保存,鍵名爲 LDAP_VIEWER_PASSWORD。
  • 若憑據庫中無密碼,Host 會回退讀取環境變量 LDAP_VIEWER_PASSWORD 或 LDAP_PASSWORD。

示例佔位值(需在插件配置區替換爲真實目錄值)

host    = ldap.example.com
port    = 389
baseDn  = DC=example,DC=com
bindDn  = CN=service-account,CN=Users,DC=example,DC=com

典型用法

  1. 在 Web UI 打開 LDAP Account Viewer,確認連接信息;需要變更時點 Edit,填 host/port、Base DN、Bind DN,按需設置 bind 密碼。
  2. 在查詢表單選擇類型(賬號 / 郵箱 / 手機),輸入條件後搜索。
  3. 在結果表中查看各狀態列,用分頁切換 10 / 20 / 50 行每頁。

倉庫內 test/mock-ldap.js 爲本地 mock LDAP,供開發驗證,不包含在安裝 bundle 中(README Files 一節)。

適用場景與注意

適合:已在本地或內網運行 DSH Web UI,需要從 AD/LDAP 快速只讀覈對賬號與密碼/鎖定/過期狀態,且接受 loopback 訪問模型的開發者或運維。

注意:

  • 插件以 389 明文 LDAP 爲默認,生產環境若要求 LDAPS,需自行評估是否滿足策略(README 未提供 LDAPS 配置)。
  • HTTP 僅 loopback,Remote 訪問需結合你的 DSH 部署方式理解邊界。
  • DSH 生態理念是「一切皆插件」;目錄與源碼均由社區維護,安裝前請檢查倉庫與 MIT 許可證。

結尾

dsh-plugin-ldap-viewer 把 AD/LDAP 賬號的只讀檢索放進 DSH Web 側欄,用固定查詢類型和分頁表格集中展示啓用、鎖定與過期狀態,適合與 Harness 本地開發流並排使用。

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

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

小夜