ldapmodify引发属性类型:每个语法错误值#0无效

时间:2016-07-04 15:11:07

标签: ldap openldap

我目前正在为Openldap版本2.4.14实现一个pwdCheckModule库(版本无法更改)。在此期间,我想从LDAP数据库中读取一些属性。其中一个属性称为pcpMinNumberLowerUpper,它包含最小数量的低位和/或高位字符。该属性应该是位于cn:schema下的现有objectClass的一部分,名为pwdPolicy,该模式已经有一些其他属性,如pwdMaxAge等。

我想使用ldapmodify terminal命令将属性添加到现有的LDAP数据库中。我刚刚使用的命令如下所示:

ldapmodify -h localhost -p 389 -D "cn=Administrator,dc=<mydc>,dc=<mydc>..." -w "<mysecret>" -x -f pcp_attribute_upgrade.ldif

相应的ldif文件具有以下内容:

dn: cn=schema 
changetype: modify
add: attributetypes
attributetypes: ( 1.3.6.1.4.1.42.2.27.8.1.18 NAME 'pcpMinNumberLowerUpper' DESC 'Minimum of upper or lower characters' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUED USAGE userApplications )

现在,如果我执行上面的命令,它会向终端输出发出以下错误消息:

ldap_start_tls: Protocol error (2)
        additional info: unsupported extended operation
modifying entry "cn=schema"
ldap_modify: Invalid syntax (21)
        additional info: attributetypes: value #0 invalid per syntax

我已经尝试使用olcAttributeTypes而不是attributeTypes,但它没有帮助。任何帮助都会很好: - )

提前致谢, FLO

2 个答案:

答案 0 :(得分:1)

单值属性的关键字是SINGLE-VALUE,在尝试将架构定义添加到OpenDJ LDAP目录服务器时报告:

  

提供的值&#34;(1.3.6.1.4.1.42.2.27.8.1.18 NAME   &#39; pcpMinNumberLowerUpper&#39; DESC&#39;最低字符或最低字符&#39;   语法1.3.6.1.4.1.1466.115.121.1.27单值使用   userApplications)&#34;无法解析为有效的属性类型   描述,因为它包含非法令牌&#34; SINGLE-VALUED&#34;

如下所示更改它,它将起作用。

dn: cn=schema 
changetype: modify
add: attributetypes
attributetypes: ( 1.3.6.1.4.1.42.2.27.8.1.18 NAME 'pcpMinNumberLowerUpper' DESC 'Minimum of upper or lower characters' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE USAGE userApplications )

答案 1 :(得分:1)

使用默认的OpenLdap配置,对于架构修改,通常您必须使用本地ldap服务器root帐户的外部身份验证:

sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f  pcp.ldif

和pcp.ldif应该是:

dn: cn=schema,cn=config
changetype: modify
add: olcAttributetypes 
olcAttributetypes: ( 1.3.6.1.4.1.42.2.27.8.1.18 NAME 'pcpMinNumberLowerUpper' DESC 'Minimum of upper or lower characters' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE USAGE userApplications )

(已更改dn,&#34;属性类型&#34;已更换为&#34; olcAttributetypes&#34;和&#34; SINGLE-VALUED&#34;更改为&#34;单值&#34;)