SLAPO-CONSTRAINT(5) File Formats Manual SLAPO-CONSTRAINT(5)

slapo-constraint - اورلی اعمال قید و محدودیت روی ویژگیها در slapd

/etc/openldap/slapd.conf

اورلی constraint برای اطمینان از تطابق مقادیر ویژگی با قیدهایی فراتر از نحو پایهٔ LDAP استفاده می‌شود. می‌توان چندین قید را روی ویژگی‌ها تعیین کرد و در هنگام تغییر دادن مقدار یک ویژگیِ مقید، همهٔ آن‌ها باید برآورده شوند.

این اورلی برای اعمال انضباط و قاعده‌مندی نحوی بر داده‌های رشته‌ای مشخصی که دارای شکل استاندارد (کانونیکال) شناخته‌شده‌ای هستند، مانند شماره تلفن‌ها، کدهای پستی، FQDNها و غیره، در نظر گرفته شده است.

این اورلی فقط دستورهای add، modify و rename در LDAP را مقید می‌سازد و تنها به دنبال کنترل مقادیر add و replace در درخواست‌های modify و rename است.

هیچ قیدی برای عملیات‌هایی که با تنظیم کنترل relax انجام شوند اعمال نمی‌گردد.

این گزینهٔ slapd.conf روی اورلی constraint اعمال می‌شود. این گزینه باید بعد از دستورالعمل overlay قرار گیرد.

قیدی را مشخص می‌کند که باید بر فهرست ویژگی‌های جداشده با کاما که به عنوان پارامتر اول مشخص شده‌اند اعمال شود. در حال حاضر شش نوع قید پشتیبانی می‌شود: regex، negregex، size، count، uri و set.

پارامتر پس از نوع regex یا negregex یک عبارت باقاعده به سبک یونیکس است (نگاه کنید به regex(7) ). پارامتر پس از نوع uri یک LDAP URI است. این URI با استفاده از یک جستجوی داخلی ارزیابی خواهد شد. این پارامتر نباید شامل نام میزبان باشد و حتماً باید شامل فهرستی از ویژگی‌ها جهت ارزیابی باشد.

پارامتر پس از نوع set رشته‌ای است که مطابق با نحو مورد استفاده برای مجموعه‌های ACL تفسیر می‌شود. این قابلیت امکان تعریف قیدها را بر اساس محتوای مدخل فراهم می‌کند.

نوع size می‌تواند برای اعمال محدودیت بر طول یک ویژگی استفاده شود، و نوع count تعداد مقادیر یک ویژگی را محدود می‌کند.

پارامترهای اضافی می‌توانند بعد از موارد شرح‌داده‌شده در بالا به هر ترتیبی قرار گیرند.

<extra> : restrict=<uri>
این پارامتر اضافی اجازه می‌دهد تا اعمال قید مربوطه فقط به مدخل‌هایی محدود شود که با بخش‌های base، scope و filter از LDAP URI مطابقت دارند. بخش base، در صورت وجود، باید درون زمینه نام‌گذاری (naming context) پایگاه‌داده باشد. بخش 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 mail negregex ^[[:alnum:]]+@notallowed.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 را که شبیه به <alphanumeric string>@mydomain.com نباشد یا به صورت <alphanumeric string>@notallowed.com باشد، رد خواهد کرد. همچنین هر ویژگی title را که مقادیر آن در ویژگی title هیچ‌یک از مدخل‌های titleCatalog در دامنهٔ داده‌شده فهرست نشده باشد، رد می‌کند. (توجه داشته باشید که زیردرخت "dc=catalog,dc=example,dc=com" باید در یک پایگاه‌دادهٔ جداگانه قرار داشته باشد، در غیر این صورت مقداردهی اولیهٔ مدخل‌های titleCatalog در زمان فعال بودن این قید امکان‌پذیر نخواهد بود.) در نهایت، این پیکربندی الزام می‌کند که مقادیر ویژگی cn از کنار هم قرار دادن مقادیر ویژگی‌های sn و givenName، جداشده با یک فاصله، ساخته شوند؛ اما تنها برای مدخل‌هایی که از کلاس شیء inetOrgPerson مشتق شده باشند.

/etc/openldap/slapd.conf
فایل پیکربندی پیش‌فرض slapd

slapd.conf(5), slapd-config(5).

این ماژول در سال ۲۰۰۵ توسط Neil Dunbar از Hewlett-Packard نوشته شد و متعاقباً توسط Howard Chu و Emmanuel Dreyfus توسعه یافت. OpenLDAP Software توسط پروژهٔ OpenLDAP در http://www.openldap.org توسعه یافته و نگهداری می‌شود. OpenLDAP Software از انتشار LDAP 3.3 دانشگاه میشیگان برگرفته شده است.

2026/03/09 OpenLDAP 2.6.13