Fusion Directory 介绍与选型指南

讲清 Fusion Directory 的定位、架构、功能边界与同类工具选型依据,已在 Debian 11.11 + OpenLDAP 2.4.57 + Fusion Directory 1.5-1 环境实测。

Fusion DirectoryFusion DirectoryLDAP 协议2026/10/28

Fusion Directory 介绍与选型指南

目标:讲清 Fusion Directory 的定位、架构、功能边界与同类工具选型依据,帮助你在搭建 LDAP 账户治理平台前做出正确的组件决策。本文全部结论已在 Debian 11.11(x86_64)+ OpenLDAP slapd 2.4.57 + Fusion Directory 1.5-1 环境实测通过,查询日期 2026-10-28。

一、环境信息

  • 操作系统:Debian 11.11(bullseye,x86_64)
  • Fusion Directory:1.5-1(官方 bullseye-fusiondirectory-release 仓库)
  • 目录服务:OpenLDAP slapd 2.4.57+dfsg-3+deb11u1(Fusion Directory 同样支持 389 Directory Server 作为后端)
  • Web 环境:Apache 2.4.67-1~deb11u3 + PHP 7.4.33
  • 访问入口:http://<服务器IP>/fusiondirectory/
  • 演示账号:Fusion Directory 管理员 fd-admin,密码 q1w2e3r4;LDAP 管理员 cn=admin,dc=example,dc=net,密码 q1w2e3r4

以上版本均来自实测环境的包管理器记录,与官方 1.5 认证矩阵一致:Fusion Directory 1.5 要求 PHP 7.4,官方认证的系统发行版为 Debian 11(Bullseye)与 Ubuntu 20.04(查询日期 2026-10-28)。

二、软件概述

本节先给出 Fusion Directory 的一句话定位与版本事实,避免与名字相近的 Apache Directory 系列混淆——这是选型阶段最常见的第一个坑。

Fusion Directory 是一个用 PHP 编写的开源身份与访问管理(IAM)Web 平台,用于对 LDAP 目录中的用户、组、邮件、SSH 公钥、系统服务等对象进行图形化生命周期管理。它起源于 GOsa 项目的分支血统,由 FusionDirectory 项目(fusiondirectory.org,GitHub fusiondirectory/fusiondirectory)维护,采用 GPL-2.0 许可。官方将其定位为面向高校、科研机构与公共部门的目录账户治理工具,法国高等教育体系的 SUPANN 与 RENATER PARTAGE 规范是它的标杆场景。

💡 技术拓展:名字带 "Directory" 的组件容易混淆,选型前先分清三类角色——

名称角色技术栈
Apache Directory Server(ApacheDS)LDAP 目录服务器(存数据)Java
Apache Directory Studio桌面版 LDAP 客户端/浏览编辑器Java
Fusion DirectoryWeb 版 LDAP 账户治理平台(管数据)PHP

Fusion Directory 与后两者无任何代码或组织关系;它不存数据,只管数据。本文实际介绍的是第三类:Web 管理平台,后端目录既可以是 OpenLDAP,也可以是 389 Directory Server(后端选型见 《389 Directory Server 介绍与选型指南》)。

版本节奏实测(数据来源:GitHub fusiondirectory/fusiondirectory 的 tags 列表,查询日期 2026-10-28):

版本发布日期说明
1.52025-02-24当前最新稳定 tag
1.42023-06-13上一代稳定版
1.3.12022-10-121.3 系列维护版

关键解读:1.5 与 1.4 之间隔了约 20 个月,项目走"低频大版本"路线;官方手册明确 1.4–1.6 系列均要求 PHP 7.4,因此选型时要连同操作系统一起锁定(详见第六节限制)。

三、核心架构

本节用一次实测拆解 Fusion Directory 的四层结构,让你知道它"由什么组成、数据放在哪",这是后续配置与排障的基础。

  1. 表现层:PHP Web 应用,跑在 Apache + PHP 7.4 上,入口 /usr/share/fusiondirectory/html/,实测验证文件存在:
ls /usr/share/fusiondirectory/html/main.php

实测回显:

/usr/share/fusiondirectory/html/main.php
  1. 连接层:与 LDAP 服务器通过标准 LDAP 协议通信。连接信息记录在 /etc/fusiondirectory/fusiondirectory.conf(XML 格式),实测内容核心段:
<main default="default" logging="FALSE" displayErrors="FALSE" forceSSL="FALSE" templateCompileDirectory="/var/spool/fusiondirectory/" debugLevel="0">
  <location name="default">
      <referral URI="ldap://localhost:389" base="dc=example,dc=net" adminDn="cn=admin,dc=example,dc=net" adminPassword="q1w2e3r4"/>
  </location>
</main>

逐项说明:location 支持多个,一套界面管理多套 LDAP 树;URI 为 LDAP 服务地址;base 为管理的目录后缀;adminDn/adminPassword 为向导写入的目录管理员凭据(明文落盘,可用 fusiondirectory-configuration-manager --encrypt-passwords 加密,该文件完成后应设为 root:www-data 640 权限,防止密码泄露)。

  1. 中心配置层:Fusion Directory 自身的大量开关(时区、强制 SSL、插件参数等 92 个 fd* 属性,实测计数)不存本地文件,而是存为 LDAP 条目 cn=config,ou=fusiondirectory,dc=example,dc=net。实测检索该条目:
ldapsearch -x -H ldap://localhost -D "cn=admin,dc=example,dc=net" -w q1w2e3r4 \
  -b "cn=config,ou=fusiondirectory,dc=example,dc=net" -s base

实测回显(节选):

dn: cn=config,ou=fusiondirectory,dc=example,dc=net
objectClass: fusionDirectoryConf
objectClass: top
cn: config
fdTimezone: Asia/Shanghai
...

这一设计决定了:改 Fusion Directory 配置既可以通过 Web 界面,也可以用 fusiondirectory-configuration-manager 命令行直改 LDAP(命令详解见 《Fusion Directory 1.5 常用 CLI 命令与工具详解》)。

  1. 插件层:功能以插件形式扩展,插件的注册信息同样落 LDAP(ou=pluginManager,<base> 下)。实测安装两个插件后,命令行清单:
fusiondirectory-plugins-manager --list-plugins

实测回显:

Number of plugins installed : 2
Plugin : mail is installed
Plugin : posix is installed

要点:架构上"配置即数据",意味着备份 LDAP 库就等于备份了 Fusion Directory 的全部账户与平台配置,这直接影响运维方案(备份恢复闭环实测见 CLI 命令详解篇)。

四、功能特性

本节按功能域逐项列出能力,并标注哪些经过本文环境实测验证,避免"官网上都写着"式的空泛罗列。

功能域内容实测状态
账户管理users(用户)、groups(组/角色)、personal(个人页)插件已实测:Web 建组、CLI 建用户互认
通讯录与邮件mail 插件:邮件别名、邮件组、模板已实测:插件注册链路
POSIX 集成posix 插件:uidNumber/gidNumber 管理,对接 Linux NSS已实测:安装+注册+界面可见性验证
系统服务dhcp、dns、sudo、nfs、systems 等基础设施对象管理未实测(插件按需安装)
部署管理FAI/OPSI/argonaut 对接自动化装机未实测
教育规范SupAnn、RENATER PARTAGE 模式未实测(官方主推场景)
权限治理ACL 角色体系(全局管理员/局部管理员/HR/普通用户四级预设)已实测:向导自动迁移生成默认 ACL
模板与快照用户模板批量建号、条目快照回滚已实测:用户列表自带快照按钮
多目录树一套界面管理多个 LDAP 后缀(location 多实例)配置层已验证

两个实测印证值得展开:

其一,账户数据双向互通。用 ldapadd 命令行直接创建的用户,无需任何同步操作,刷新 Fusion Directory 的 Users 列表立即出现——因为它就是同一个 LDAP 库的另一个视图。实测创建 uid=jdoe,ou=people,dc=example,dc=net 后,界面用户列表出现该行(链接 main.php?plug=41&act=listing_edit_1,标题属性为完整 DN)。

其二,组对象是"双轨制",这是实际使用中最容易踩的概念坑:Fusion Directory 管理两类组——Object group(objectClass 为 groupOfNames + gosaGroupOfNames)与 POSIX group(objectClass 为 posixGroup,由 posix 插件提供)。实测结论:只装基础包时,手工用 ldapadd 创建的 posixGroup 组不会出现在"Groups and roles"列表中(列表过滤器为 (objectClass=groupOfNames));安装并注册 posix 插件后才会显示。完整排障过程沉淀在安装指南与 CLI 篇中。

五、快速开始(最小可用示例)

本节给出一条 15 分钟内跑通的最小路径:装 OpenLDAP → 装 Fusion Directory → 完成向导 → 登录。所有命令与回显均为实测。完整的多方案安装、向导逐步自动化、卸载清理请看 《Debian 11 安装 Fusion Directory 1.5 指南》。

第一步,安装并预置 OpenLDAP(非交互 preseed,直接落到 dc=example,dc=net):

echo "slapd slapd/no_configuration boolean false" | debconf-set-selections
echo "slapd slapd/domain string example.net" | debconf-set-selections
echo "slapd shared/organization string example.net" | debconf-set-selections
echo "slapd slapd/password1 password q1w2e3r4" | debconf-set-selections
echo "slapd slapd/password2 password q1w2e3r4" | debconf-set-selections
echo "slapd slapd/backend select MDB" | debconf-set-selections
DEBIAN_FRONTEND=noninteractive apt-get install -y slapd ldap-utils

第二步,添加 Fusion Directory 官方 Debian 11 仓库。⚠️ 注意:Debian 11 已于 2026-08-31 结束 LTS,基础源需改用归档镜像,否则 apt-get update 会对 debian-security 报 404;官方 GPG 密钥也已于 2026-04-21 过期,仓库行必须带 [trusted=yes],否则报 EXPKEYSIG ... is not signed:

cat > /etc/apt/sources.list <<'EOF'
deb http://mirrors.aliyun.com/debian-archive/debian bullseye main contrib non-free
deb http://mirrors.aliyun.com/debian-archive/debian-security bullseye-security main contrib non-free
EOF
cat > /etc/apt/sources.list.d/fusiondirectory.list <<'EOF'
deb [trusted=yes] https://public.fusiondirectory.org/debian/bullseye-fusiondirectory-release/ bullseye main
deb [trusted=yes] https://public.fusiondirectory.org/debian/fusiondirectory-tools/ bullseye main
deb [trusted=yes] https://public.fusiondirectory.org/debian/fusiondirectory-external-libraries/ bullseye main
deb [trusted=yes] https://public.fusiondirectory.org/debian/fusiondirectory-integrator/ bullseye main
EOF
apt-get update -o Acquire::Check-Valid-Until=false

第三步,安装主程序与 schema 包:

apt-get install -y -o Acquire::Check-Valid-Until=false fusiondirectory fusiondirectory-schema

实测回显(节选):

Setting up fusiondirectory (1.5-1) ...
Setting up fusiondirectory-schema (1.5-1) ...
Processing triggers for fusiondirectory (1.5-1) ...
# Update class.cache file
# Update translation files

第四步,向 LDAP 注册 Fusion Directory 的 4 个核心 schema(顺序不能乱,core-fd 依赖 cosine/inetorgperson 等基础 schema,slapd 安装时已带):

fusiondirectory-schema-manager --insert-schema /etc/ldap/schema/fusiondirectory/core-fd.schema
fusiondirectory-schema-manager --insert-schema /etc/ldap/schema/fusiondirectory/core-fd-conf.schema
fusiondirectory-schema-manager --insert-schema /etc/ldap/schema/fusiondirectory/ldapns.schema
fusiondirectory-schema-manager --insert-schema /etc/ldap/schema/fusiondirectory/template-fd.schema

实测回显(每条同形,以 core-fd 为例):

Installing : cn=core-fd,cn=schema,cn=config ...

第五步,浏览器打开 http://<服务器IP>/fusiondirectory/setup.php 走安装向导(7 步:Welcome → Language → Checks → LDAP setup → Configuration → LDAP inspection → Finish),完成后按向导提示下载 fusiondirectory.conf 放到 /etc/fusiondirectory/ 并设权限 root:www-data 640。最后登录验证:

curl -s -o /dev/null -w "%{http_code}\n" "http://localhost/fusiondirectory/"

实测回显:

200

用 fd-admin / q1w2e3r4 登录,看到 "FusionDirectory - Welcome System Administrator!" 即部署成功。向导中段最典型的两个坑(Welcome 步无法前进需手工创建 fusiondirectory.auth 文件、LDAP 步绑定失败)在安装指南篇有逐字节级的排障实录。

六、适用场景与限制

本节把"什么时候该选它、什么情况下不要选它"说透,选型建议放在第七节对比之后。

适合的场景:

  • 高校/科研/公共部门的集中身份治理:教师学生账户、邮件组、SSH 公钥、sudo 规则、DHCP/DNS 都在一个界面治理,SUPANN 规范是原生能力而非插件凑合。
  • Linux 服务器集群的 POSIX 账户后台:posix 插件管 uid/gid,配合 NSS/PAM 让集群机器直接认证 LDAP。
  • 已有 OpenLDAP 或 389 Directory Server、但苦于没有治理界面的团队:它不改你的目录结构,只是加一层管理视图与 ACL。
  • 需要账户自助与委托管理的组织:模板批量建号 + 四级 ACL 角色让 HR/院系管理员分权操作。

明确的限制:

  • 认证矩阵窄:官方只认证 Debian 11 与 Ubuntu 20.04(PHP 7.4),在 Debian 12/Ubuntu 22.04+ 上跑官方包要自行解决 PHP 版本问题。
  • 社区体量小:GitHub stars 数百量级,遇到深坑主要靠读源码与官方文档。
  • 无 REST 管理 API:对外集成只能走 LDAP 协议本身或 CLI,没有开箱即用的 HTTP API 层。
  • 界面风格传统:1.x 界面多年未大改,移动端体验一般。
  • ACL 不下沉:权限体系只在 Fusion Directory 层生效,不写回 slapd 的 olcAccess,绕过界面直连 LDAP 的客户端不受其约束。

七、同类选型对比

本节给出同赛道四个主流选项的量化对比(数据均为 2026-10-28 从各自 GitHub 仓库/官网实查),并给出"如果……则……"式选型建议。

维度Fusion Directory 1.5LDAP Account Manager 9.7phpLDAPadminKeycloak 26.8.1
定位LDAP 账户治理平台(Web)LDAP 账户管理 Web(自服务强)轻量 LDAP 浏览/编辑器身份联邦 IdP(SSO)
许可GPL-2.0GPL-2.0(另有 LAM Pro 商业版)GPL-2.0Apache-2.0
技术栈PHP 7.4PHPPHPJava
最新版本/日期1.5 / 2025-02-249.7 / 2026-09-18上游 1.2.x 停滞;活跃分叉 leenooks 2.3.11 / 2026-05-1526.8.1 / 2026-10-13
GitHub stars(2026-10-28)189492分叉 leenooks 版 74137562
维护活跃度最后 push 2026-10-04,低频稳定持续迭代,2026-05 发布 9.6 支持 PHP 8.5上游近乎停止维护CNCF 毕业项目,非常活跃
对接协议LDAPLDAPLDAPOIDC/SAML(可桥接 LDAP)
典型部署Apache+PHP,同机或异机连 LDAPApache+PHPApache+PHP独立 Java 服务

关键差异解读:四者根本不是同一层的东西——phpLDAPadmin 是"给管理员的目录编辑器",LAM 是"给 IT 与用户的账户管理台",Fusion Directory 是"给组织的账户治理平台",Keycloak 则是"给应用的标准协议身份源"。

选型建议:

  • 如果你要管的不只是用户密码,还有邮件组、SSH、sudo、DHCP/DNS 等一整套基础设施对象,且能接受 PHP 7.4 锁定 → 选 Fusion Directory。
  • 如果只是中小企业管 LDAP 账户+用户自助改密,不想动目录结构 → 选 LDAP Account Manager,版本节奏和维护活跃度都更好。
  • 如果只是偶尔查改目录条目、脚本化程度高 → phpLDAPadmin(建议用 leenooks 分叉)甚至纯 ldapsearch/ldapmodify 就够。
  • 如果诉求是给 Web 应用做 SSO/联邦认证,LDAP 只是账号源之一 → 选 Keycloak,此时 Fusion Directory 可与其共存:FD 管账户、Keycloak 消费 LDAP。

另一个常见决策点是"管理平台 + 后端目录"的组合:Fusion Directory 官方同时支持 OpenLDAP 与 389 Directory Server 两种后端。若后端追求企业级特性(多主复制、细粒度 ACI),值得先看 《389 Directory Server 介绍与选型指南》 与 《Debian 11 安装 389 Directory Server 指南》;本文实测环境则选择了更轻量的 OpenLDAP 后端。

八、参考链接