Apache Fortress 3.0 介绍与选型指南
基于 LDAP 的 RBAC 访问管理 Apache Fortress 3.0.1:Core/Realm/En Masse/Commander 四组件、官方快速开始与 Keycloak/OPA/OpenFGA 选型对比。
Apache Fortress 3.0 介绍与选型指南
目标:本篇是 Apache Fortress 3.0 的认知篇,全部内容基于 Apache Directory 官方站点、GitHub Releases 与官方 README 实查联网溯源编写(查询日期 2026-10-18),关键论断随文标注来源,不做本地安装实测(安装实测属 B1 安装指南职责)。
一、信息基准
- 查询日期:2026-10-18(Asia/Shanghai)。
- 版本依据:
- GitHub Releases 最新发布为
3.0.1,发布时间 2025-07-04(来源:https://github.com/apache/directory-fortress-core/releases/tag/3.0.1 ,查询日期 2026-10-18)。 - 3.0 版本线自 3.0.0 起为当前大版本线(Releases 列表:3.0.1、3.0.0、2.0.8…,查询日期 2026-10-18)。
- GitHub Releases 最新发布为
- 官方来源清单:
| 来源 | 地址 | 用途 |
|---|---|---|
| 项目主页 | https://directory.apache.org/fortress/ | 定位与子项目结构 |
| Core 仓库 | https://github.com/apache/directory-fortress-core | README、Releases |
| En Masse REST 仓库 | https://github.com/apache/directory-fortress-enmasse | REST/JSON 网关 |
| Realm 仓库 | https://github.com/apache/directory-fortress-realm | Tomcat 集成 |
| Commander 仓库 | https://github.com/apache/directory-fortress-commander | Web 管理台 |
| 发布 tag | https://github.com/apache/directory-fortress-core/releases/tag/3.0.1 | 版本与时间 |
二、软件概述
Apache Fortress 3.0.1(2025-07-04 发布)是 Apache Directory 项目的子项目,定位为「基于标准的访问管理系统」:以 Java 编写,基于 LDAP 后端提供基于角色的访问控制(RBAC)、委托式管理(delegated administration)与口令策略服务(来源:directory-fortress-core README Overview 原文,查询日期 2026-10-18)。
- 许可证:Apache License 2.0(仓库 LICENSE,查询日期 2026-10-18)。
- 技术形态:Java SDK(Core)+ 可选配套组件;身份与策略数据落在 LDAP 目录(支持 ApacheDS、Symas OpenLDAP、原生 OpenLDAP 三类后端,README SECTION 3)。
- 社区活跃度:Core 仓库约 53 stars(badgen 徽章,2026-10-18);发布节奏为慢速但仍在维护(2025 年仍有 3.0.1)。
- 版本要点:3.0 线构建要求 Java SDK 17+ 与 Maven 3.6.3+(README SECTION 1 原文),较 2.x 线提升。
三、核心架构
3.1 子项目组成
依据 core README Overview 原文(查询日期 2026-10-18),Fortress 由四个仓库组成:
| 组件 | 仓库 | 职责 |
|---|---|---|
| Fortress Core | directory-fortress-core | Java 访问管理 SDK:RBAC、委托管理、口令策略、审计,对接 LDAP |
| Fortress Realm | directory-fortress-realm | Apache Tomcat 的安全 Realm 集成 |
| Fortress En Masse | directory-fortress-enmasse | REST/JSON API 网关,把 Core 能力以 HTTP 接口暴露 |
| Fortress Commander | directory-fortress-commander | Web 管理台(策略管理界面) |
3.2 数据面:LDAP 目录为真相源
- Core 通过配置(fortress.properties 体系,README-CONFIG)指向目标 LDAP 服务器;策略数据(用户、角色、权限、组织、口令策略)以 Fortress Schema 存储在目录中。
- 部署时可选择:ApacheDS(首次使用推荐)、Symas OpenLDAP、已有原生 OpenLDAP 三条路线(README SECTION 3 原文:Options 1 & 2 are recommended for first-time users)。
- Core 支持多租户上下文运行(README「This system runs within a multitenant context」)。
四、功能特性
依据 README 与官方站点归纳(查询日期 2026-10-18):
- 基于角色的访问控制(RBAC):用户-角色-权限-会话的标准模型与检查 API。
- 委托式管理:管理员可将策略管理权限分级下放。
- 口令策略:基于 LDAP 口令策略的时效、复杂度与锁定管理。
- 审计:管理与会话审计能力(Core 提供 audit 检查接口)。
- 三层接入形态:Java SDK 直连、En Masse REST/JSON、Tomcat Realm。
- 多租户运行上下文。
- Load 工具与 CLI:以 Maven 目标批量装载策略数据、交互式命令行管理策略。
五、快速上手
以下步骤引自 directory-fortress-core README 原文(来源:https://github.com/apache/directory-fortress-core/blob/master/README.md ,查询日期 2026-10-18),本篇不做本地实测。
前置条件(README SECTION 1 原文):git、Java SDK >= 17、Apache Maven >= 3.6.3。
下载与安装(README SECTION 2 原文):
git clone https://gitbox.apache.org/repos/asf/directory-fortress-core.git
在 FORTRESS_HOME 根目录执行构建与文档生成:
mvn clean install
mvn javadoc:javadoc
生成的 API 文档位于 ./target/site/apidocs/overview-summary.html。
策略数据装载(README SECTION 10 原文):先按 FORTRESS_HOME/ldap/setup 样例编写装载文件,再执行:
mvn install -Dload.file=./ldap/setup/myLoadFile.xml
命令行管理(README SECTION 11 原文):执行 mvn -Pcli test 启动交互式 CLI,例如新增用户:
admin auser -u testuser1 -p mypasword123 -o dev1
LDAP 后端选择(README SECTION 3/4/5):首次使用推荐按 README-QUICKSTART-APACHEDS 或 README-QUICKSTART-SLAPD 走 ApacheDS/Symas OpenLDAP 快速路线;已有 OpenLDAP 的按 SECTION 6~8 配置(拷贝 fortress.schema、编辑 slapd.conf 等)。
六、适用场景与限制
6.1 适用场景
- 以 LDAP 为身份/策略真相源的企业,需要标准化 RBAC + 委托管理 + 口令策略。
- Java 单体应用精细授权:直接嵌入 Core SDK 做运行时权限检查。
- Tomcat 应用群:通过 Realm 在 Tomcat 层统一接入认证授权。
- 需要开放 REST 授权服务:En Masse 对多语言系统暴露策略检查。
6.2 限制与注意
- 必须自备并运维 LDAP 服务器(ApacheDS/OpenLDAP),Fortress 本身不含目录服务。
- Commander Web 管理台与 REST 网关是独立组件,组合使用的集成工作量需自评。
- 社区规模小(Core 约 53 stars,2026-10-18 实查),遇到问题的自助成本较高。
- 认证(登录/token/SSO)并非其主战场:它聚焦授权(access management)与策略治理,单点登录场景需另行评估。
七、同类选型对比
对比对象按「访问控制/授权管理」选取,社区数据为 2026-10-18 联网实查(stars 经 shields/badgen 徽章接口读取,版本经 GitHub Releases 徽章实查):
| 项目 | 许可证 | 社区活跃度(stars / 最近发版) | 版本节奏 | 兼容矩阵 |
|---|---|---|---|---|
| Apache Fortress 3.0.1 | Apache-2.0 | 约 53 stars;3.0.1(2025-07-04) | 年级别慢节奏 | Java 17+;LDAP(ApacheDS/OpenLDAP);SDK/REST/Tomcat Realm |
| Keycloak | Apache-2.0 | 约 37K stars;v26.8.1 | 月级别小版本 | Java;独立服务;OIDC/OAuth2/SAML 认证授权一体化 |
| Open Policy Agent(OPA) | Apache-2.0 | 约 12K stars;v1.21.2 | 高频 | 策略即代码(Rego);sidecar/库多形态,与身份提供方解耦 |
| OpenFGA | Apache-2.0 | 约 6K stars;v1.22.0 | 高频 | 关系型授权(ReBAC);REST/gRPC 服务,可对接各身份源 |
💡 选型建议:LDAP 中心化企业要标准 RBAC 与口令策略治理选 Fortress 3.0;要认证+授权+SSO 一体化选 Keycloak;要策略即代码的通用判定引擎选 OPA;要关系型细粒度授权(ReBAC)选 OpenFGA。
八、参考链接
- Apache Fortress 项目主页:https://directory.apache.org/fortress/
- Core 仓库与 README:https://github.com/apache/directory-fortress-core
- 3.0.1 发布页:https://github.com/apache/directory-fortress-core/releases/tag/3.0.1
- En Masse REST:https://github.com/apache/directory-fortress-enmasse
- Realm for Tomcat:https://github.com/apache/directory-fortress-realm
- Commander 管理台:https://github.com/apache/directory-fortress-commander
- Apache Directory 官网:https://directory.apache.org/