Openldap: можно ли использовать "userPassword" вместо "2.5.4.35" для атрибута pwdAttribute?
Я использую Openldap 2.4.11 в Fedora Core 13.
Я пытаюсь создать политику паролей:
dn: cn=default,ou=policies,dc=estream,dc=com,dc=my
objectClass: person
objectClass: pwdPolicy
objectClass: top
cn: default
pwdAttribute: 2.5.4.35
sn: test
Если я указываю pwdAttriute в "userPassword", я получаю ошибку
LDAP: error code 21 - pwdAttribute: value #0 invalid per syntax
Вместо этого я заставляю использовать OID для pwdAttribute:
pwdAttribute: 2.5.4.35
Можно ли использовать "userPassword" вместо "2.5.4.35" для атрибута pwdAttribute?
Я пытаюсь настроить openldap для загрузки модуля ppolicy.la в cn=config, но это, кажется, не работает слишком после перезапуска slapd службы для немногих время:
dn: cn=module{0},cn=config
objectClass: olcConfig
objectClass: olcModuleList
objectClass: top
cn: module{0}
olcModuleLoad: {0}/usr/lib64/openldap/ppolicy.la
4 ответа:
Вместо этого я заставляю использовать OID для pwdAttribute:
Можно указать либо OID, либо имя атрибута, если загружены и соответствующая схема, и наложение
ppolicy
.Почему у вас там objectClass=person? Политика паролей-это не человек. Обычно в качестве структурного класса для политик паролей используется objectClass=device.
Ответ данные являются некорректными, по моему опыту.
Я получил такое же сообщение об ошибке при запуске openldap 2.4.29. Наложение политики паролей позволяет использовать
pwdAttribute: userPassword
, но только если оно включено. В противном случае значение будет отклонено с сообщением выше (pwdAttribute: value #0 invalid per syntax
).Если ваша установка OpenLDAP использует динамические модули, обязательно включите
moduleload ppolicy.la
В вашем файле
slapd.conf
(или соответствующий эквивалент в вашей базе данныхcn=config
).Затем загрузите наложение для соответствующая база данных:
database bdb suffix "o=example.com" rootdn "cn=Directory Manager,o=example.com" rootpw password directory /opt/openldap-2.4.29/var/openldap-data/example.com overlay ppolicy
До загрузки оверлея я мог предоставить OID только для
pwdAttribute
. После перестроения с помощью--enable-ppolicy
и добавления записиoverlay
, я смог использовать ldapmodify для заменыpwdAttribute: 2.5.4.35
наpwdAttribute: userPassword
.Мне пришлось обновить значение
pwdAttribute
после загрузки оверлея.
Я просто столкнулся с этим вопросом и решил его иначе, чем вышеописанный. Я настраиваю новый 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", то есть вне базы данных, корневым пользователем машины. Последующие шаги находятся в области" 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 "устройства" в дополнение к "pwdPolicy", как было предложено в другом месте.
Наконец, вы можете действительно использовать политику, конечно.
Весь этот процесс был еще более запутанным для меня, потому что так много документации там о том, как настроить slapd.конф. Я собрал большую часть этого из книги Zytrax "LDAP для ученых-ракетчиков", которая очень хорошо описывает модуль и наложения, но имеет неправильный или устаревший пример (отсутствует структурный класс объекта) в разделе политики паролей.