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

时间:2012-12-21 06:56:32

标签: oracle ldap directory-server

我确认在Oracle Directory Server中启用了MemberOf PluginmemberOf属性位于Schema:Attributes中的Standard Attributes列表中。在memberOf属性的详细信息中,Used as Allowed by列表中有三个条目:inetAdmininetUsernsManagedPerson

但是所有用户帐户都不属于他们。相反,他们有ObjectClass:inetOrgPersonorganizationalPersonpersontop。似乎我无法向用户添加额外的ObjectClass。

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

2 个答案:

答案 0 :(得分:2)

正如ixe013指出的那样,ODSEE将其属性命名为#34; isMemberOf"而不是" memberOf"。在OpenLDAP上,您的搜索将如下所示:

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"

对于ODSEE,您将使用以下内容:

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

答案 1 :(得分:0)

我不再使用旧版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

条目user1具有以下属性:

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

memberOf属性不是物理属性,而是虚拟属性。

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

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