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 8

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 для ученых-ракетчиков", которая очень хорошо описывает модуль и наложения, но имеет неправильный или устаревший пример (отсутствует структурный класс объекта) в разделе политики паролей.

Я преобразовал свой 2.3 в 2.4 на новом сервере, и я получал ту же ошибку на Red Hat 6.3. Я использовал pwdAttribute: 2.5.4.35 вместо этого, и он загрузил w / o вопрос.