SLAPO-CONSTRAINT(5)

НАЗВАНИЕ

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.

constraint_attribute <имя_атрибута>[,...] <тип> <значение> [<дополнительный_аргумент> [...]]

Определяет ограничение, которое будет применяться к атрибутам, разделённый запятыми список которых указан в качестве первого аргумента. В настоящее время поддерживаются типы ограничений 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.

ФАЙЛЫ

/usr/local/etc/openldap/slapd.conf

конфигурационный файл 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