在 $company,我们目前有一个基于 OpenLDAP 的设置,其中包含一些自主开发的 ^Whomemutated 层次结构,以及存储在 MySQL 中的一些其他数据。
OpenLDAP 服务器包含内部用户、客户联系人(可以访问我们部分内部工具,因此有些联系人有用户/密码信息)、与我们合作的自由职业者以及通讯录等数据。MySQL DB 包含来自相同用户的一些重复数据以及一些补充信息,例如有关客户公司的数据、依赖于公司并扩展到客户的项目等。
我的理想计划是将所有内容整合为一个事实来源。
对我们来说,FreeIPA 有趣的部分是:
- 提供 LDAP 入口点,我们使用的所有内部服务都可以绑定到 LDAP 服务器
- 提供 REST 入口点,对我们的内部开发来说非常理想。
- 易于集成,因为它基本上具备管理授权所需的一切
- 某种程度上标准的(通过完全本土化的反对)层次结构
正如文档所述,FreeIPA 的关注点很窄,它是一个 IdM,而不是通用 LDAP 存储,但这意味着如果您想扩展您的关系信息(例如:对于这个项目,我们有那些内部用户和那些客户),您必须在另一个工具中进行一些复制(用户名/用户 ID、FreeIPA 中用于授权的组、在互补数据存储中匹配项目或公司)。这意味着两个存储中的数据之间可能存在不一致的状态,需要某种同步等。
所以我想知道扩展 FreeIPA 来存储公司或项目信息是否是一个坏主意,如果是,为什么?
答案1
这不是一个坏主意,但是你需要好好计划。FreeIPA 主服务器会在它们之间复制数据,因此任何 LDAP 架构扩展最好使用打包工具进行维护,以便它们存在于所有系统上。框架插件也是如此。
直到 FreeIPA 4.4.1 版本,外部提供的架构扩展都存在问题 —— 它们未包含在安装阶段,因此您无法从一开始就安装扩展,因为在升级代码执行生成插件特定的 ACI 时缺少对象类/属性,您只能稍后添加它们。请参阅以下主题https://www.redhat.com/archives/freeipa-devel/2016-August/msg00083.html更多细节。
在 FreeIPA 4.4.1 中,我修复了这个问题(上述讨论的结果),现在你可以拥有完全独立的扩展 - 请参阅我的 FleetCommander 集成插件中的示例https://github.com/abbra/freeipa-desktop-profile/。我目前正在编写 FreeIPA 4.4.1 或更高版本的扩展指南,以替换我的旧指南(https://abbra.fedorapeople.org/guide.html) 或多或少已经过时并且没有涵盖维护/分发问题以及访问控制设计。
只要您在 FreeIPA 4.4.1 或更高版本的独立设置中维护您的添加,就应该没问题。