如何在Oracle Directory Server Enterprise Edition中添加/启用memberOf属性

如何在Oracle Directory Server Enterprise Edition中添加/启用memberOf属性,oracle,ldap,directory-server,Oracle,Ldap,Directory Server,我确认在Oracle Directory Server中启用了MemberOf Plugin,MemberOf属性位于Schema:Attributes的标准属性列表中。在memberOf属性的详细信息中,中有三个条目被列表允许使用:inetAdmin,inetUser,nsManagedPerson 但并非所有用户帐户都属于他们。相反,它们有对象类:inetOrgPerson,organizationalPerson,person,top。而且我似乎无法向用户添加额外的ObjectClass

我确认在Oracle Directory Server中启用了
MemberOf Plugin
MemberOf
属性位于Schema:Attributes的标准属性列表中。在memberOf属性的详细信息中,
中有三个条目被
列表允许使用:
inetAdmin
inetUser
nsManagedPerson

但并非所有用户帐户都属于他们。相反,它们有对象类:
inetOrgPerson
organizationalPerson
person
top
。而且我似乎无法向用户添加额外的ObjectClass


如何向现有用户帐户启用或添加memberOf属性?它如何将组名或DN自动填充到所有用户帐户?

我不再使用传统的DSEE,但如果我没有记错的话,
memberOf
属性是由目录服务器基于组成员身份生成的,而不是添加到条目中。例如,如果组具有以下属性:

dn: cn=staff,ou=groups,dc=example,dc=com
objectClass: top
objectClass: groupOfUniqueNames
objectClass: posixGroup
description: The 'staff' group.
cn: staff
gidNumber: 50
memberUid: debianuser
memberUid: user1
uniqueMember: uid=user1,ou=people,dc=example,dc=com
dn: uid=user1,ou=people,dc=example,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: user1
cn: my-common-name
sn: my-surname
loginShell: /bin/bash
userPassword: {SSHA512}SCMmLlStPIxVtJc8Y6REiGTMsgSEFF7xVQFoYZYg39H0nEeDuK/fWxxNZ
 CdSYlRgJK3U3q0lYTka3Nre2CjXzeNUjbvHabYP
homeDirectory: /home/user1
uidNumber: 1002
gidNumber: 50
shadowLastChange: 15645
条目
user1
具有以下属性:

dn: cn=staff,ou=groups,dc=example,dc=com
objectClass: top
objectClass: groupOfUniqueNames
objectClass: posixGroup
description: The 'staff' group.
cn: staff
gidNumber: 50
memberUid: debianuser
memberUid: user1
uniqueMember: uid=user1,ou=people,dc=example,dc=com
dn: uid=user1,ou=people,dc=example,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: user1
cn: my-common-name
sn: my-surname
loginShell: /bin/bash
userPassword: {SSHA512}SCMmLlStPIxVtJc8Y6REiGTMsgSEFF7xVQFoYZYg39H0nEeDuK/fWxxNZ
 CdSYlRgJK3U3q0lYTka3Nre2CjXzeNUjbvHabYP
homeDirectory: /home/user1
uidNumber: 1002
gidNumber: 50
shadowLastChange: 15645
请求
memberOf
属性会产生以下结果:

ldapsearch -LLLh localhost -p 1389 -D cn=RootDN -w xxxxxx -b uid=user1,ou=people,dc=example,dc=com -s base -l1 -z1 '(&)' memberOf
dn: uid=user1,ou=people,dc=example,dc=com
memberOf: cn=staff,ou=groups,dc=example,dc=com
ldapsearch -x -w password -D "uid=abergin,ou=People,dc=odsee-qa,dc=qa,dc=abc,dc=com" -b "uid=abergin,ou=People,dc=odsee-qa,dc=qa,dc=abc,dc=com" '(objectclass=*)' "memberOf"
ldapsearch -x -w password -D "uid=abergin,ou=People,dc=odsee-qa,dc=qa,dc=abc,dc=com" -b "uid=abergin,ou=People,dc=odsee-qa,dc=qa,dc=abc,dc=com" '(objectclass=*)' "isMemberOf"
version: 1
dn: uid=abergin, ou=People, dc=odsee-qa,dc=qa,dc=abc,dc=com
isMemberOf: cn=QA Managers,ou=groups,dc=odsee-qa,dc=qa,dc=abc,dc=com
isMemberOf: cn=Accounting Managers,ou=groups,dc=odsee-qa,dc=qa,dc=abc,dc=com
memberOf
属性不是物理属性,而是虚拟属性

如果LDAP客户端无法向条目添加
objectClass
属性,可能有以下原因:

  • LDAP客户端的授权状态不允许客户端修改条目
  • LDAP客户端正在尝试向条目添加第二个结构化objectClass属性。多个结构化对象类是非法的,但旧版Sun DSEE的一些损坏版本仍然允许这样做

正如ixe013所指出的,ODSEE将其属性命名为“isMemberOf”,而不是“memberOf”。在OpenLDAP上,您的搜索将如下所示:

ldapsearch -LLLh localhost -p 1389 -D cn=RootDN -w xxxxxx -b uid=user1,ou=people,dc=example,dc=com -s base -l1 -z1 '(&)' memberOf
dn: uid=user1,ou=people,dc=example,dc=com
memberOf: cn=staff,ou=groups,dc=example,dc=com
ldapsearch -x -w password -D "uid=abergin,ou=People,dc=odsee-qa,dc=qa,dc=abc,dc=com" -b "uid=abergin,ou=People,dc=odsee-qa,dc=qa,dc=abc,dc=com" '(objectclass=*)' "memberOf"
ldapsearch -x -w password -D "uid=abergin,ou=People,dc=odsee-qa,dc=qa,dc=abc,dc=com" -b "uid=abergin,ou=People,dc=odsee-qa,dc=qa,dc=abc,dc=com" '(objectclass=*)' "isMemberOf"
version: 1
dn: uid=abergin, ou=People, dc=odsee-qa,dc=qa,dc=abc,dc=com
isMemberOf: cn=QA Managers,ou=groups,dc=odsee-qa,dc=qa,dc=abc,dc=com
isMemberOf: cn=Accounting Managers,ou=groups,dc=odsee-qa,dc=qa,dc=abc,dc=com
对于ODSEE,您将使用以下内容:

ldapsearch -LLLh localhost -p 1389 -D cn=RootDN -w xxxxxx -b uid=user1,ou=people,dc=example,dc=com -s base -l1 -z1 '(&)' memberOf
dn: uid=user1,ou=people,dc=example,dc=com
memberOf: cn=staff,ou=groups,dc=example,dc=com
ldapsearch -x -w password -D "uid=abergin,ou=People,dc=odsee-qa,dc=qa,dc=abc,dc=com" -b "uid=abergin,ou=People,dc=odsee-qa,dc=qa,dc=abc,dc=com" '(objectclass=*)' "memberOf"
ldapsearch -x -w password -D "uid=abergin,ou=People,dc=odsee-qa,dc=qa,dc=abc,dc=com" -b "uid=abergin,ou=People,dc=odsee-qa,dc=qa,dc=abc,dc=com" '(objectclass=*)' "isMemberOf"
version: 1
dn: uid=abergin, ou=People, dc=odsee-qa,dc=qa,dc=abc,dc=com
isMemberOf: cn=QA Managers,ou=groups,dc=odsee-qa,dc=qa,dc=abc,dc=com
isMemberOf: cn=Accounting Managers,ou=groups,dc=odsee-qa,dc=qa,dc=abc,dc=com
返回如下内容:

ldapsearch -LLLh localhost -p 1389 -D cn=RootDN -w xxxxxx -b uid=user1,ou=people,dc=example,dc=com -s base -l1 -z1 '(&)' memberOf
dn: uid=user1,ou=people,dc=example,dc=com
memberOf: cn=staff,ou=groups,dc=example,dc=com
ldapsearch -x -w password -D "uid=abergin,ou=People,dc=odsee-qa,dc=qa,dc=abc,dc=com" -b "uid=abergin,ou=People,dc=odsee-qa,dc=qa,dc=abc,dc=com" '(objectclass=*)' "memberOf"
ldapsearch -x -w password -D "uid=abergin,ou=People,dc=odsee-qa,dc=qa,dc=abc,dc=com" -b "uid=abergin,ou=People,dc=odsee-qa,dc=qa,dc=abc,dc=com" '(objectclass=*)' "isMemberOf"
version: 1
dn: uid=abergin, ou=People, dc=odsee-qa,dc=qa,dc=abc,dc=com
isMemberOf: cn=QA Managers,ou=groups,dc=odsee-qa,dc=qa,dc=abc,dc=com
isMemberOf: cn=Accounting Managers,ou=groups,dc=odsee-qa,dc=qa,dc=abc,dc=com

请求的命令行对我不起作用。结果是
version:1,dn:uid=adminUser,ou=People,dc=example,dc=com
,那里没有memberOf属性。有一个操作属性names
isMemberOf