你最好使用memberOf
覆盖。
您使用对象类(已经存在)来使用属性groupOfNames
指定将属于项目条目的成员。member
您可以根据需要添加任意数量的member
属性,其中每个成员属性都是一个(完整)DN。
就我个人而言,我会创建我自己的扩展 groupOfNames 类的对象类(例如称为项目),这样我就可以向它添加额外的项目相关属性。但取决于您想要获得的复杂程度。
然后,您将重新定义您的结构,如下所示...
- O=公司名称
- OU=人
- uid=用户 ID001
- uid=用户ID002
- uid=用户 ID003
- OU=项目
这将使您的结构更加清晰,并且项目项(例如 cn=ProjectName)与您的用户条目分开。项目项将是您的 groupOfNames 类,其中包含 OU=People 类中人员的成员属性(例如member: uid=UserID001,OU=People,O=CompanyName
)。
当安装到您的 olap 中时,memberOf 叠加层将执行的操作将添加一个称为member of
ldap 搜索结果的附加属性(它是动态生成的)。
这是一个很常见的覆盖,甚至被AD服务器使用,所以这种方法很常用,你可能会发现Moodle会理解它们。
测试您的设置时需要注意的一点......默认情况下ldapsearch
查询不会显示该memberof
属性,因此您需要专门询问它。例如;
ldapsearch -Y EXTERNAL -H ldapi:/// "(objectClass=groupOfNames)" uid, memberof
当我第一次开始使用它们时,那个让我很难过。我认为有一个“全部”选项会强制搜索显示隐藏的属性,但现在想不出它是什么。查看 ldapsearch 的手册页。
无论如何,希望对您有所帮助.. :)