Apache Fortress 3.0 介绍与选型指南

基于 LDAP 的 RBAC 访问管理 Apache Fortress 3.0.1:Core/Realm/En Masse/Commander 四组件、官方快速开始与 Keycloak/OPA/OpenFGA 选型对比。

Apache FortressFortressApache身份认证LDAP用户权限2026/10/18

Apache Fortress 3.0 介绍与选型指南

目标:本篇是 Apache Fortress 3.0 的认知篇,全部内容基于 Apache Directory 官方站点、GitHub Releases 与官方 README 实查联网溯源编写(查询日期 2026-10-18),关键论断随文标注来源,不做本地安装实测(安装实测属 B1 安装指南职责)。

一、信息基准

  • 查询日期:2026-10-18(Asia/Shanghai)。
  • 版本依据:
  • 官方来源清单:
来源地址用途
项目主页https://directory.apache.org/fortress/定位与子项目结构
Core 仓库https://github.com/apache/directory-fortress-coreREADME、Releases
En Masse REST 仓库https://github.com/apache/directory-fortress-enmasseREST/JSON 网关
Realm 仓库https://github.com/apache/directory-fortress-realmTomcat 集成
Commander 仓库https://github.com/apache/directory-fortress-commanderWeb 管理台
发布 taghttps://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 Coredirectory-fortress-coreJava 访问管理 SDK:RBAC、委托管理、口令策略、审计,对接 LDAP
Fortress Realmdirectory-fortress-realmApache Tomcat 的安全 Realm 集成
Fortress En Massedirectory-fortress-enmasseREST/JSON API 网关,把 Core 能力以 HTTP 接口暴露
Fortress Commanderdirectory-fortress-commanderWeb 管理台(策略管理界面)

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):

  1. 基于角色的访问控制(RBAC):用户-角色-权限-会话的标准模型与检查 API。
  2. 委托式管理:管理员可将策略管理权限分级下放。
  3. 口令策略:基于 LDAP 口令策略的时效、复杂度与锁定管理。
  4. 审计:管理与会话审计能力(Core 提供 audit 检查接口)。
  5. 三层接入形态:Java SDK 直连、En Masse REST/JSON、Tomcat Realm。
  6. 多租户运行上下文。
  7. 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.1Apache-2.0约 53 stars;3.0.1(2025-07-04)年级别慢节奏Java 17+;LDAP(ApacheDS/OpenLDAP);SDK/REST/Tomcat Realm
KeycloakApache-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/库多形态,与身份提供方解耦
OpenFGAApache-2.0约 6K stars;v1.22.0高频关系型授权(ReBAC);REST/gRPC 服务,可对接各身份源

💡 选型建议:LDAP 中心化企业要标准 RBAC 与口令策略治理选 Fortress 3.0;要认证+授权+SSO 一体化选 Keycloak;要策略即代码的通用判定引擎选 OPA;要关系型细粒度授权(ReBAC)选 OpenFGA。

八、参考链接

  1. Apache Fortress 项目主页:https://directory.apache.org/fortress/
  2. Core 仓库与 README:https://github.com/apache/directory-fortress-core
  3. 3.0.1 发布页:https://github.com/apache/directory-fortress-core/releases/tag/3.0.1
  4. En Masse REST:https://github.com/apache/directory-fortress-enmasse
  5. Realm for Tomcat:https://github.com/apache/directory-fortress-realm
  6. Commander 管理台:https://github.com/apache/directory-fortress-commander
  7. Apache Directory 官网:https://directory.apache.org/