我们目前正在使用随 Debian 分发的 OpenLDAP 2.3.31 在 LDAP 中为我们的学习协会设计一个新的成员管理。其中一项要求是我们需要记录哪些成员在委员会中。为此,我们创建了一个名为 x-FMFCommittee 的 organizationalUnit 子类和一个名为 x-FMFCommitteeRole 的 organizationalRole 子类。现在,与委员会关联的所有角色(例如总裁、财务主管等)都位于委员会条目的子树中。然后,承担此角色的成员的 DN 将设置为 x-FMFCommitteeRole 上的 roleOccupant 属性。这工作得很好。
但是,我们还允许我们的用户访问 Linux shell 和 Windows 桌面(使用 Samba),为此我们还想管理 POSIX 组成员资格。为此,我们要为其执行此操作的每个委员会也都有对象类 posixGroup(根据 RFC2307)。为了获得组成员和与用户关联的组,每当成员在委员会中担任角色时,我们需要在委员会条目上设置 memberUid 属性。
我们已经尝试使用 dynlist 覆盖来执行此操作,但是在执行反向组查找时失败了。我们现在看到的唯一选择是全部手动执行此操作,但我们真的希望将其自动化,以便将来在我们协会的管理员经常更换时提供更轻松的维护。
有没有人遇到过类似的情况,或者有人知道解决这个问题的方法吗?
最佳答案
我建议您简单地摆脱第一个实现并只使用 posixGroup。数据库非规范化始终是一个坏主意,无论采取何种形式。
而且您不需要为这个问题扩展架构。如果您想区分这些委员会,只需将它们放在自己的子树中即可。
但我想更详细地了解为什么使用动态列表不起作用。您可以使用 memberOf 覆盖,而不必进行反向查找。
关于linux - 使用 LDAP 中的附加属性管理 POSIX 组成员身份的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21257513/