Назад | Перейти на главную страницу

Значения полей OpenLDAP в списке

Я установил сервер openLDAP, и я создал собственную схему с различными полями, и она работает отлично. Однако у меня есть несколько полей, в которых я хотел бы иметь только некоторые значения. Например, у меня есть поле с названием deviceLocation и я хочу иметь только значения EAST, WEST или CENTER. Как я могу это сделать?

Вам нужно добавить constraints наложение в вашу конфигурацию. Он позволяет добавлять регулярные выражения, значения которых должны совпадать, чтобы их можно было принять операциями добавления или изменения. В качестве альтернативы это позволит вам создать поддерево со всеми разрешенными местоположениями, а затем проверить, указано ли в этом поддереве значение, которое вы пытаетесь добавить.

http://www.openldap.org/doc/admin24/overlays.html#Constraints

Для справки в будущем: как указал @Sven, я использовал ограничения для решения проблемы. В моем случае я создаю один файл ldif для активации модуля ограничения:

dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulePath: /usr/lib64/openldap
olcModuleLoad: constraint.la

И еще один для его настройки:

dn: olcOverlay=constraint,olcDatabase={2}hdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcConstraintConfig
olcOverlay: constraint
olcConstraintAttribute: deviceLoacation regex ^(EAST|WEST|CENTER)$

Загрузили файлы с ldapadd и работал как шарм