LDAP/X.500 只定义了具有成员属性的组对象,用户对象在 OpenLDAP 中具有memberof属性的反向关系可以通过覆盖来实现。NDS/eDir 和 AD 神奇地实现了这一点。LDAP 本身没有定义动态双向成员/组对象/属性。与该叠加层相关的是refint叠加层,它有助于完成错觉(并且还解决了始终需要至少一个成员的组的轻度刺激性问题)。memberof
通常有两种有趣的组类型可供选择,groupOfNames
或者groupOfUniqueNames
,第一种GroupOfNames
适用于大多数目的。后者groupOfUniqueNames
有一个稍微深奥的特性:它允许成员DN 包含一个数字 UID 后缀,以便在将 DN 重新分配给不同实体时保持成员的唯一性。这两种形式都不强制在成员列表中使用唯一的 DN。
其他类型的组有不同的目的(由模式和应用程序定义)。一个不太常见的组类型对象是RFC 2256 角色(organizationalRole
类型,带roleOccupant
属性),它隐式用于基于角色的访问控制,但在其他方面类似于其他组类型(感谢EJP的提示)。
该posixGroup
类型表示传统的 unix 组,由 agidNUmber
和列表memberUid'
s 标识。它不是 DIT 中的通用组对象,它取决于应用程序(即 LDAP 客户端层)来实现/观察它。
对于用户帐户,不应将帐户对象类型视为排他性的,每种类型通常以兼容的方式向用户对象添加属性(尽管如果它是结构性的,则objectClass
可以是排他性的,这不是您经常拥有的一般担心)。