我正在尝试在LDAP中添加一个名为“ FullName”的新属性。在Apache Directory Studio中,我创建了一个新的LDIF文件:
dn: cn=schema
changetype: modify
add: attributeTypes
attributeTypes: ( 2.16.840.1.113719.1.1.4.1.120
NAME 'FullName'
DESC 'fullname of an employee'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
-
add: objectClasses
objectClasses: ( 2.25.128424792425578037463837247958458780603.1
NAME 'fullname_attr'
DESC 'fullname_attr'
SUP inetOrgPerson
STRUCTURAL
MAY (FullName) )
属性OID用于全名,对象类OID是自定义OID。
当我尝试“执行LDIF”时,我的日志文件中出现消息错误:
send_ldap_result: err=21 matched="" text="attributeTypes: value #0 invalid per syntax"
我该如何解决?
答案 0 :(得分:0)
这不适用于OpenLDAP。
使用OpenLDAP默认配置时,子模式子条目的DN为cn=Subschema
。
OpenLDAP确实允许直接写入子模式子条目。
OpenLDAP具有静态和动态配置方法。
对于后者,通过修改配置后端中的条目cn=schema,cn=config
来动态更改架构。请注意,这也具有特定的架构。在构造修改请求之前,您应该检查一下。
使用静态配置时,OpenLDAP服务器不接受通过LDAP进行的架构更改。
您只需要将这些行添加到您的 slapd.conf :
attributetype ( 2.16.840.1.113719.1.1.4.1.120
NAME 'fullName'
DESC 'fullname of an employee'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
然后对自定义对象类相同。