如何为LDAP 2.4.42.0添加cn;phonetic属性?
解决OpenLDAP 2.4.42支持cn;phonetic属性的问题
问题分析
错误码17对应undefinedAttributeType,说明服务器未识别cn;phonetic属性——默认core.schema中cn的定义未启用phonetic子类型支持,且你之前修改时用错了绑定DN(业务根DNcn=testadmin,o=test.com无权限修改cn=config配置库),导致无效DN错误。
解决步骤
1. 用正确的绑定DN访问配置库
修改OpenLDAP的schema需要使用cn=config库的管理员账号(通常为cn=admin,cn=config,而非业务根DN),若为Docker部署,该账号密码由LDAP_CONFIG_PASSWORD环境变量设置。
2. 导出当前core schema配置
先导出core schema的属性定义,确认cn条目的序号:
ldapsearch -x -D cn=admin,cn=config -W -b cn=core,cn=schema,cn=config olcAttributeTypes
输出中找到cn对应的条目,格式为olcAttributeTypes: {X}( 2.5.4.3 NAME ('cn' 'commonName') ... ),记下{X}中的数字X。
3. 生成schema修改LDIF文件
创建modify_cn_phonetic.ldif,替换其中的{X}为上一步找到的序号:
dn: cn=core,cn=schema,cn=config changetype: modify replace: olcAttributeTypes olcAttributeTypes: {X}( 2.5.4.3 NAME ('cn' 'commonName') DESC 'RFC4519: common name(s) for which the entity is known by' SUP name EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch PHONETIC phoneticMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )
该配置为cn属性添加phonetic匹配规则,启用cn;phonetic子类型支持。
4. 执行schema修改
运行命令应用修改:
ldapmodify -x -D cn=admin,cn=config -W -f modify_cn_phonetic.ldif
输入cn=admin,cn=config的密码后,若提示modifying entry "cn=core,cn=schema,cn=config"则修改成功。
5. 验证与测试
- 验证修改后的
cn属性定义:
ldapsearch -x -D cn=admin,cn=config -W -b cn=core,cn=schema,cn=config olcAttributeTypes | grep -A5 "2.5.4.3"
确认输出包含PHONETIC phoneticMatch。
- 测试添加带
cn;phonetic的条目:
创建test_entry.ldif:
dn: cn=testuser,o=test.com objectClass: inetOrgPerson cn: Test User cn;phonetic: テストユーザー sn: User
执行添加命令:
ldapadd -x -D cn=testadmin,o=test.com -W -f test_entry.ldif
此时应能成功添加,不再出现错误码17。
内容的提问来源于stack exchange,提问作者Risto Libera
相关产品推荐
相关产品推荐

