Я просто столкнулся с этой проблемой и решил ее не так, как описано выше.Я устанавливаю новый LDAP на CentOS 6.4 (для возможного развертывания на RHEL 6.4), и по умолчанию используется схема конфигурации "(cn = config)", поэтому все приведенные выше (без сомнения, отличные) инструкции по изменению slapd.confне применяются.
В способе (cn = config) (также называемом «slapd.d» на некоторых веб-сайтах) есть много шагов, чтобы заставить работать оверлеи.В CentOS 6.4 LDAP по умолчанию, с которым я имел дело, была включена схема ppolicy, но она не была активирована.
Чтобы запустить ее, было сделано много шагов:
Во-первых, модуль "ppolicy"динамический, вы должны убедиться, что он включен в список модулей времени выполнения.Установки CentOS по умолчанию не было, поэтому мне сначала пришлось включить модули, а затем добавить ppolicy в список.Этот LDIF делает это:
dn: cn=Module{0},cn=config
objectClass: olcModuleList
cn: Module{0}
olcModuleLoad: ppolicy
Если вы позже захотите добавить больше модулей, просто добавьте дополнительные записи olcModuleLoad к этому dn.
Во-вторых, вы должны включить оверлей для базы данных(ы), к которым вы хотите применить.Создайте другой dn, таким образом:
dn: olcOverlay=ppolicy,olcDatabase={2}bdb,cn=config
objectClass: olcPPolicyConfig
olcOverlay: ppolicy
Эти первые два шага выполняются в домене "cn = config", т. Е. Вне базы данных, пользователем root машины.Последующие шаги находятся в области «dc = example, dc = com», и поэтому могут быть выполнены rootDN.
Третий шаг - создать контейнер для ваших политик паролей.Это может быть необязательным, я не уверен - я создал dn вроде:
dn: ou=pwpolicies,dc=example,dc=com
objectClass: organizationalUnit
objectClass: top
ou: pwpolicies
В-четвертых, создайте свою реальную политику - люди, которые столкнулись с этой ошибкой, уже имеют это, это dnс вещью "pwdAttribute", которая получает синтаксическую ошибку.С вышеупомянутым наложением и работой модуля, выполненной правильно, вы можете использовать pwdAttribute: userPassword "без получения ошибки синтаксиса. Моя политика была, конечно, внутри контейнера ou, и я использовал objectClass класса" device "в дополнение к" pwdPolicy ",как было предложено в другом месте.
Наконец, вы можете использовать политику, конечно.
Весь этот процесс стал более запутанным для меня, потому что большая часть документации окак настроить slapd.conf. Я собрал большую часть этого из книги Zytrax «LDAP для специалистов по ракетам», которая очень хорошо описывает модуль и оверлей, но содержит неправильный или устаревший пример (отсутствует класс структурного объекта) вих раздел политики паролей.