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

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

-1
задан 28 February 2017 в 10:29
2 ответа

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

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

1
ответ дан 5 December 2019 в 19:23

Для справки в будущем: как указал @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 и работал как шарм

1
ответ дан 5 December 2019 в 19:23

Теги

Похожие вопросы