我正在构建一个新的 LDAP 结构。我想将用于创建结构的 LDIF 脚本与用于创建用户的脚本分开。该结构必须应用于多台服务器 (DTAP),但用户将仅用于单元测试/开发。
但是当我创建我的组时,Apache DS(仅用于开发)告诉我member
是的必需属性groupOfNames
。
ERR_279 在条目 cn=USER_ROLE, ou=groups, dc=company, dc=com 中未找到必需的属性 [member(2.5.4.31)]
更具体;我想要完成的是以下 LDIF。
### Create the group
dn: cn=USER_ROLE, ou=groups, dc=company, dc=com
objectClass: groupOfNames
objectClass: top
cn: USER_ROLE
# Not adding a member here
### Create the user
dn: uid=myUser, ou=accounts, dc=company, dc=com
objectClass: inetOrgPerson
objectClass: top
# More properties
### Add user to group
dn: cn=USER_ROLE, ou=groups, dc=company, dc=com
changetype: modify
add: member
member: uid=myUser, ou=accounts, dc=company, dc=com
我尝试member:
在初始创建组时添加一个空组。虽然可行,但留下了一个空成员,这看起来不是一个干净的解决方案。
答案1
groupOfNames
对象必须具有一个cn
属性和一个member
属性(请参阅rfc2256 或查看您的模式定义)。
我很想听听其他人的意见,但据我所知,您的选择如下:
浏览您的架构以查看是否存在任何其他在“MUST”限定符下没有成员属性的组类型对象,并使用它来代替
groupOfNames
使用现有的解决方法
看看是否有人定义了更适合您需求的其他组对象,并将其添加到您的架构中
(或者这些,但不要这样做)
定义您自己的自定义组对象并将其添加到您的架构中
重新定义
groupOfNames
架构中的对象类,并member
从“必须”变为“可以”。如果您有保修,这会破坏保修。