awol2005ex3/dsh-user-manager0

dsh-user-manager

DSH 用户管理与会话隔离插件,支持数据库或 LDAP 认证,提供登录网关、API 级授权及管理员控制台。

AI 分析

核心用途是为 DSH 提供企业级或多用户环境下的安全准入与数据隔离。适合私有化部署、团队共享服务器的系统管理员。

包名
dsh-user-manager
版本
1.0.0
许可证
Apache-2.0
最近更新
2026年8月31日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:awol2005ex3/dsh-user-manager

profile 配置

cordis.patch.yml 已把插件行插入配置树,无需再写一遍。可选的完整配置:

- insert:
    - id: user-manager
      name: dsh-user-manager
      config:
        mode: database            # database | ldap
        database:
          engine: sqlite          # sqlite | mysql | postgres
          filename: dsh-users.sqlite
        # database:               # mysql / postgres 用这一组
        #   engine: postgres
        #   host: 10.0.0.5
        #   port: 5432
        #   database: dsh
        #   user: dsh
        #   password: secret
        #   ssl: true
        auth:
          sessionTtlSeconds: 43200
          cookieName: dsh_user
          cookieSameSite: lax
          scryptCost: 16384
          unownedSessions: admin  # admin | everyone | none
        enforce: true             # 关掉则只做用户管理,不隔离会话

LDAP 模式:

      config:
        mode: ldap
        ldap:
          url: ldaps://dc.example.com:636
          bindDn: CN=svc-dsh,OU=Service,DC=example,DC=com
          bindPassword: secret
          searchBase: OU=Users,DC=example,DC=com
          searchFilter: (sAMAccountName={username})   # OpenLDAP 常用 (uid={username})
          displayNameAttribute: displayName
          adminDns:
            - CN=Alice,OU=Users,DC=example,DC=com
          tlsRejectUnauthorized: true
          timeoutMs: 10000

配置项说明:

配置默认说明
modedatabase用户来源
auth.sessionTtlSeconds43200登录态有效期(秒)
auth.cookieNamedsh_userCookie 名
auth.cookieSameSitelaxCookie 的 SameSite
auth.scryptCost16384口令哈希的 scrypt cost(2 的幂)
auth.unownedSessionsadmin启用前就存在的历史会话归谁可见:admin / everyone / none
auth.adminOnlyMethods[]追加"仅管理员可调用"的 /api 方法
enforcetrue是否启用会话隔离

使用

  1. 启动 harness,浏览器打开 Web 界面 —— 未登录时会看到登录遮罩。
  2. 用环境变量里的管理员账号登录。
  3. 管理员会在侧边栏底部看到「👥 用户」入口(找不到插槽时回退为左下角浮动按钮), 打开后是多页面面板,顶部导航切换:
    • 用户列表:表格 + 行内操作(设为管理/普通、启用/停用、删除);
    • 新建用户:独立表单页,创建后自动刷新列表;
    • 用户库配置:切换模式(数据库 / LDAP),填写连接信息后测试连接保存并切换
    • 我的密码:修改本人登录口令。
  4. 普通用户登录后也会挂载面板,但只显示「我的密码」页(入口名「🔑 账户」),看不到用户管理。
  5. 所有登录用户只能看到自己创建的会话。

连接配置(含数据库口令)保存在 $DSH_HOME/user-manager.yaml,与会话归属索引同文件。 该文件含明文口令,注意权限