我已经设置了 openLDAP 服务器,并创建了包含各种字段的自定义架构,它运行良好。但是,我有一些字段只希望包含部分值。例如,我有一个名为 的字段,我只希望包含、或deviceLocation
的值。我该怎么做?EAST
WEST
CENTER
答案1
您需要将constraints
覆盖添加到您的配置中。它允许您添加正则表达式,值必须匹配该正则表达式才能被添加或更改操作接受。或者,它允许您创建一个包含所有允许位置的子树,然后检查您尝试添加的值是否列在该子树中。
http://www.openldap.org/doc/admin24/overlays.html#Constraints
答案2
供将来参考:正如@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: deviceLocation regex ^(EAST|WEST|CENTER)$
上传文件ldapadd
并运行良好