在OpenLDAP中选择哪种类型的组来对用户进行分组

时间:2013-04-04 17:59:43

标签: ldap openldap

我需要知道应该使用哪种组来对LDAP中的用户进行分组。

我基本上需要函数MemberOf,以获得基于组成员资格的一些权限。

示例:

  • 用户
    • 用户1
    • 用户2
    • 用户3
    • 第1组
    • 第2组

用户1是第1组和第2组的成员。

这些群组必须是动态的,例如Active Directory。

问题来了,因为我有这些选择:

Samba: Group Mapping

User Group

Generic: Posix Group

对于用户来说也是如此,我应该选择哪一个?

Generic: User Account

Samba: Account

我找不到显示差异的好网站,我们非常感谢任何链接。

1 个答案:

答案 0 :(得分:13)

LDAP / X.500仅定义具有成员属性组对象,其中用户对象具有成员属性的反向关系可以使用memberof overlay实现OpenLDAP。 NDS / eDir和AD通过魔术实现了这一点。 LDAP本身不定义动态双向成员/组对象/属性。与该叠加相关的是refint叠加层,它有助于完成幻觉(并且还解决了总是需要至少一个成员的群体的轻度刺激性问题)。

通常有两种有趣的群组类型可供选择,groupOfNamesgroupOfUniqueNames,第一种GroupOfNames适合大多数用途。后者groupOfUniqueNames具有一个稍微深奥的特征:它允许成员DN to contain a numeric UID suffix,如果DN被重新分配给不同的实体,则保留成员的唯一性。这两种形式都不会在成员列表中强制使用唯一的DN。

其他类型的组具有不同的目的(由架构和应用程序定义)。不太常见的组类型对象是RFC 2256 角色organizationalRole类型,具有roleOccupant属性),这隐式用于基于角色的访问控制,但是在其他方面类似于其他组类型(感谢EJP提示)。

posixGroup类型代表传统的unix组,由gidNUmber和列出memberUid'标识。它不是DIT中的通用组对象,而是由应用程序(即LDAP客户端层)来实现/观察它。

对于用户帐户,不应将帐户对象类型视为独占,每种类型通常以兼容的方式向用户对象添加属性(尽管objectClass 可以如果它是结构,那就是排他性的,这不是你经常要担心的事情。