slapo-constraint - наложение slapd установки ограничений на значения атрибутов
/usr/local/etc/openldap/slapd.conf
Наложение constraint используется для того, чтобы гарантировать, что значения атрибутов, кроме базового синтаксиса LDAP, соответствуют некоторым ограничениям. У каждого атрибута может быть несколько ограничений, и при модификации значения атрибута с ограничениями все они должны быть соблюдены.
Это наложение предназначено для обеспечения синтаксической правильности некоторых строк, представляющих собой данные, имеющие хорошо известные канонические формы, например, номера телефонов, почтовые индексы, FQDN и им подобные.
Ограничения применяются только при выполнении LDAP-операций add, modify и rename, кроме того, в запросах modify и rename они применяются только к значениям в типах изменений add и replace.
При выполнении операций с установленным элементом управления relax никаких ограничений не применяется.
Приводимые ниже параметры slapd.conf применяются к наложению constraint. Они должны указываться после директивы overlay.
Определяет ограничение, которое будет применяться к атрибутам, разделённый запятыми список которых указан в качестве первого аргумента. В настоящее время поддерживаются типы ограничений regex (регулярное выражение), size, сount, uri и set.
Аргумент, следующий за типом regex, представляет собой регулярное выражение в Unix-стиле (смотрите regex(7)). Аргумент, следующий за типом uri, представляет собой LDAP URI. Этот URI будет оцениваться путём выполнения внутреннего поиска в каталоге. В нём не должно быть имени хоста, и он должен включать список атрибутов, по которым будет производиться оценка.
Аргумент, следующий за типом set, представляет собой строку, которая интерпретируется в соответствии с синтаксисом, используемым при конструировании наборов в ACL. Это позволяет составлять ограничения на основании содержимого записи.
Тип size может использоваться для установки ограничения на размер значения атрибута, а тип count - для ограничения количества значений атрибута в записи.
После описанных выше аргументов могут в произвольном порядке присутствовать дополнительные аргументы.
- <дополнительный_аргумент> : restrict=<uri>
Данный дополнительный аргумент позволяет ограничить область применения описываемого ограничения только записями, соответствующими критериям поиска, задаваемым параметрами LDAP URI base, scope и filter. При наличии параметра base, он должен входить в контекст именования базы данных, к которой применяется ограничение. Параметр scope используется только при наличии параметра base; значение по умолчанию - base. Остальные параметры URI задавать нельзя.
Любые попытки добавить или модифицировать значение атрибута, указанного в спецификации наложения constraint, будут завершаться неудачей с ошибкой LDAP_CONSTRAINT_VIOLATION, если это значение не удовлетворяет заданным ограничениям.
overlay constraint constraint_attribute jpegPhoto size 131072 constraint_attribute userPassword count 3 constraint_attribute mail regex ^[[:alnum:]]+@mydomain.com$ constraint_attribute title uri ldap:///dc=catalog,dc=example,dc=com?title?sub?(objectClass=titleCatalog) constraint_attribute cn,sn,givenName set "(this/givenName + [ ] + this/sn) & this/cn" restrict="ldap:///ou=People,dc=example,dc=com??sub?(objectClass=inetOrgPerson)"
При такой настройке любые значения атрибута mail, не соответствующие виду <буквенно-цифровая строка>@mydomain.com, будут отклонены. Также будут отклонены любые атрибуты title, значения которых не перечислены в атрибуте title какой-либо записи с объектным классом titleCatalog в заданном диапазоне. (Обратите внимание, что поддерево "dc=catalog,dc=example,dc=com" должно находиться в отдельной базе данных, в противном случае из-за настроенных ограничений невозможно будет заполнить исходный набор записей titleCatalog). Наконец, выдвигается требование, чтобы значения атрибута cn соответствовали объединённым через пробел значениям атрибутов sn и givenName, но это касается только записей с объектным классом inetOrgPerson.
конфигурационный файл slapd по умолчанию.
slapd.conf(5), slapd-config(5).
Этот модуль был написан в 2005 году Neil Dunbar из Hewlett-Packard, и впоследствии расширен Howard Chu и Emmanuel Dreyfus.
Программное обеспечение OpenLDAP разработано и поддерживается проектом OpenLDAP <http://www.openldap.org/>. Программное обеспечение OpenLDAP является производным от релиза 3.3 LDAP Мичиганского Университета.
OpenLDAP 2.4.47 | SLAPO-CONSTRAINT(5) | 2018/12/19 |