前言¶
在 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 本地开发流并排使用。