我需要知道应该使用哪种组来对LDAP中的用户进行分组。
我基本上需要函数MemberOf,以获得基于组成员资格的一些权限。
示例:
用户1是第1组和第2组的成员。
这些群组必须是动态的,例如Active Directory。
问题来了,因为我有这些选择:
Samba: Group Mapping
User Group
Generic: Posix Group
对于用户来说也是如此,我应该选择哪一个?
Generic: User Account
Samba: Account
我找不到显示差异的好网站,我们非常感谢任何链接。
答案 0 :(得分:13)
LDAP / X.500仅定义具有成员属性的组对象,其中用户对象具有成员属性的反向关系可以使用memberof
overlay实现OpenLDAP。 NDS / eDir和AD通过魔术实现了这一点。 LDAP本身不定义动态双向成员/组对象/属性。与该叠加相关的是refint叠加层,它有助于完成幻觉(并且还解决了总是需要至少一个成员的群体的轻度刺激性问题)。
通常有两种有趣的群组类型可供选择,groupOfNames
或groupOfUniqueNames
,第一种GroupOfNames
适合大多数用途。后者groupOfUniqueNames
具有一个稍微深奥的特征:它允许成员DN to contain a numeric UID suffix,如果DN被重新分配给不同的实体,则保留成员的唯一性。这两种形式都不会在成员列表中强制使用唯一的DN。
其他类型的组具有不同的目的(由架构和应用程序定义)。不太常见的组类型对象是RFC 2256 角色(organizationalRole
类型,具有roleOccupant
属性),这隐式用于基于角色的访问控制,但是在其他方面类似于其他组类型(感谢EJP提示)。
posixGroup
类型代表传统的unix组,由gidNUmber
和列出memberUid'
标识。它不是DIT中的通用组对象,而是由应用程序(即LDAP客户端层)来实现/观察它。
对于用户帐户,不应将帐户对象类型视为独占,每种类型通常以兼容的方式向用户对象添加属性(尽管objectClass
可以如果它是结构,那就是排他性的,这不是你经常要担心的事情。