ldapmodify поднимает типы атрибутов: значение #0 недопустимо для синтаксической ошибки
В настоящее время я реализую библиотеку pwdCheckModule для Openldap версии 2.4.14 (версия не может быть изменена). Во время этого я хотел бы прочитать некоторые атрибуты из базы данных LDAP. Один из этих атрибутов называется pcpMinNumberLowerUpper и содержит минимальное количество нижних и / или верхних символов. Атрибут должен быть частью уже существующего объектного класса с именем pwdPolicy, расположенного под схемой cn:, который уже имеет некоторые другие атрибуты, такие как pwdMaxAge и т. Д.
Я хотел бы использовать команду терминала ldapmodify для добавления атрибута в уже существующую базу данных 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, но это не помогло. Любая помощь была бы хороша:-)
Спасибо заранее, Фло
2 ответа
При конфигурации по умолчанию OpenLdap для модификации схемы обычно необходимо использовать внешнюю аутентификацию от локальной учетной записи корневого сервера ldap:
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, "attributeTypes" заменен на "olcAttributetypes" и "SINGLE-VALUED" на "SINGLE-VALUE")
Ключевое слово для однозначного атрибута - SINGLE-VALUE, как сообщается при попытке добавить определение схемы на сервер каталогов OpenDJ LDAP:
Предоставленное значение "( 1.3.6.1.4.1.42.2.27.8.1.18 ИМЯ 'pcpMinNumberLowerUpper' DESC 'Минимум верхних или нижних символов' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUED USAGE userApplications)" не удалось быть проанализировано как допустимое описание типа атрибута, потому что оно содержит недопустимый токен "SINGLE-VALUED"
Измените это как ниже, и это будет работать.
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 )