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 )
Другие вопросы по тегам