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