前言¶
在 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 行。
結果列與 AD 狀態¶
表格列包括:賬號、姓名、郵箱、手機、部門,以及分開的狀態列:
- 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
典型用法¶
- 在 Web UI 打開 LDAP Account Viewer,確認連接信息;需要變更時點 Edit,填 host/port、Base DN、Bind DN,按需設置 bind 密碼。
- 在查詢表單選擇類型(賬號 / 郵箱 / 手機),輸入條件後搜索。
- 在結果表中查看各狀態列,用分頁切換 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 本地開發流並排使用。