1SLAPO-UNIQUE(5)               File Formats Manual              SLAPO-UNIQUE(5)
2
3
4

NAME

6       slapo-unique - Attribute Uniqueness overlay to slapd
7

SYNOPSIS

9       /etc/openldap/slapd.conf
10

DESCRIPTION

12       The  Attribute  Uniqueness  overlay can be used with a backend database
13       such as slapd-mdb(5) to enforce the  uniqueness  of  some  or  all  at‐
14       tributes  within  a  scope. This subtree defaults to all objects within
15       the subtree of the database for which the Uniqueness overlay is config‐
16       ured.
17
18       Uniqueness is enforced by searching the subtree to ensure that the val‐
19       ues of all attributes presented with an add, modify or modrdn operation
20       are  unique within the scope.  For example, if uniqueness were enforced
21       for the uid attribute, the subtree would  be  searched  for  any  other
22       records  which  also have a uid attribute containing the same value. If
23       any are found, the request is rejected.
24
25       The search is performed using the rootdn of the database, to avoid  is‐
26       sues  with  ACLs preventing the overlay from seeing all of the relevant
27       data. As such, the database must have a rootdn configured.
28

CONFIGURATION

30       These slapd.conf options apply to  the  Attribute  Uniqueness  overlay.
31       They should appear after the overlay directive.
32
33       unique_uri <[strict ][ignore ][serialize ]URI[[ URI...]...]>
34              Configure the base, attributes, scope, and filter for uniqueness
35              checking.  Multiple URIs may be specified within a  domain,  al‐
36              lowing  complex  selections  of  objects.   Multiple  unique_uri
37              statements or olcUniqueURI attribute values will create indepen‐
38              dent  domains, each with their own independent lists of URIs and
39              ignore/strict settings.
40
41              Keywords strict, ignore, and serialize have to  be  enclosed  in
42              quotes   (")   together  with  the  URI  when  using  deprecated
43              slapd.conf configurations.
44
45              The LDAP URI syntax is a subset of RFC-4516, and takes the form:
46
47              ldap:///[base dn]?[attributes...]?scope[?filter]
48
49              The base dn defaults to that of the back-end  database.   Speci‐
50              fied  base  dns must be within the subtree of the back-end data‐
51              base.
52
53              If no attributes are specified, the URI applies to all non-oper‐
54              ational attributes.
55
56              The  scope component is effectively mandatory, because LDAP URIs
57              default to base scope, which is not valid  for  uniqueness,  be‐
58              cause  groups  of  one  object are always unique.  Scopes of sub
59              (for subtree) and one for one-level are valid.
60
61              The filter component causes the domain to apply uniqueness  con‐
62              straints      only      to      matching      objects.      e.g.
63              ldap:///?cn?sub?(sn=e*) would require unique cn  attributes  for
64              all  objects  in  the  subtree of the back-end database whose sn
65              starts with an e.
66
67              It is possible to assert uniqueness upon all non-operational at‐
68              tributes except those listed by prepending the keyword ignore If
69              not configured, all non-operational  (e.g.,  system)  attributes
70              must  be  unique. Note that the attributes list of an ignore URI
71              should generally contain the  objectClass,  dc,  ou  and  o  at‐
72              tributes,  as  these  will generally not be unique, nor are they
73              operational attributes.
74
75              It is possible to set strict checking for the uniqueness  domain
76              by prepending the keyword strict.  By default, uniqueness is not
77              enforced for null values. Enabling strict mode extends the  con‐
78              cept  of  uniqueness  to include null values, such that only one
79              attribute within a subtree will be allowed to have a null value.
80              Strictness  applies  to all URIs within a uniqueness domain, but
81              some domains may be strict while others are not.
82
83              It is possible to enforce strict serialization of  modifications
84              by  prepending the keyword serialize.  By default, no serializa‐
85              tion is performed, so multiple  modifications  occurring  nearly
86              simultaneously may see incomplete uniqueness results.  Using se‐
87              rialize will force individual write operations to fully complete
88              before allowing any others to proceed, to ensure that each oper‐
89              ation's uniqueness checks are consistent.
90
91       It is not possible to set both URIs and legacy slapo-unique  configura‐
92       tion  parameters  simultaneously.  In general, the legacy configuration
93       options control pieces of a single unfiltered subtree domain.
94
95       unique_base <basedn>
96              This legacy configuration parameter should be converted  to  the
97              base dn component of the above unique_uri style of parameter.
98
99       unique_ignore <attribute...>
100              This  legacy  configuration  parameter  should be converted to a
101              unique_uri parameter with ignore keyword as described above.
102
103       unique_attributes <attribute...>
104              This legacy configuration parameter should  be  converted  to  a
105              unique_uri parameter, as described above.
106
107       unique_strict <attribute...>
108              This  legacy  configuration  parameter  should be converted to a
109              strict keyword prepended to a unique_uri parameter, as described
110              above.
111

CAVEATS

113       unique_uri cannot be used with the old-style of configuration, and vice
114       versa.  unique_uri can implement everything the older  system  can  do,
115       however.
116
117       Typical  attributes  for the ignore ldap:///...  URIs are intentionally
118       not hardcoded into the overlay to  allow  for  maximum  flexibility  in
119       meeting site-specific requirements.
120
121       Replication and operations with the relax control are allowed to bypass
122       this enforcement. It is therefore important that all servers  accepting
123       writes  have this overlay configured in order to maintain uniqueness in
124       a replicated DIT.
125

FILES

127       /etc/openldap/slapd.conf
128              default slapd configuration file
129

SEE ALSO

131       slapd.conf(5), slapd-config(5).
132
133
134
135OpenLDAP 2.6.6                    2023/07/31                   SLAPO-UNIQUE(5)
Impressum