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

NAME

6       slapo-dynlist - Dynamic List overlay to slapd
7

SYNOPSIS

9       /etc/openldap/slapd.conf
10

DESCRIPTION

12       The  dynlist overlay to slapd(8) allows expansion of dynamic groups and
13       more.  Any time an entry with a specific objectClass  (defined  in  the
14       overlay  configuration)  is  being returned, the LDAP URI-valued occur‐
15       rences of a specific attribute (also defined in the overlay  configura‐
16       tion)  are  expanded  into the corresponding entries, and the values of
17       the attributes listed in the URI are added to the original  entry.   No
18       recursion is allowed, to avoid potential infinite loops.
19
20       Since the resulting entry is dynamically constructed, it does not exist
21       until it is constructed while being returned.  As a consequence, dynam‐
22       ically added attributes do not participate in the filter matching phase
23       of the search request handling.  In other words, filtering for  dynami‐
24       cally added attributes always fails.
25
26       The  resulting  entry  must  comply  with  the LDAP data model, so con‐
27       straints are enforced.  For example, if  a  SINGLE-VALUE  attribute  is
28       listed, only the first value found during the list expansion appears in
29       the final entry.  The above described behavior  is  disabled  when  the
30       manageDSAit  control (RFC 3296) is used.  In that case, the contents of
31       the dynamic group entry is returned; namely, the URLs are returned  in‐
32       stead of being expanded.
33
34

CONFIGURATION

36       The  config directives that are specific to the dynlist overlay must be
37       prefixed by dynlist-, to avoid potential conflicts with directives spe‐
38       cific to the underlying database or to other stacked overlays.
39
40
41       overlay dynlist
42              This directive adds the dynlist overlay to the current database,
43              or to the frontend, if used before any  database  instantiation;
44              see slapd.conf(5) for details.
45
46
47       This  slapd.conf  configuration option is defined for the dynlist over‐
48       lay. It may have multiple occurrences, and it  must  appear  after  the
49       overlay directive.
50
51       dynlist-attrset  <group-oc> [<URI>] <URL-ad> [[<mapped-ad>:]<member-ad>
52       ...]
53              The value group-oc is the name of the objectClass that  triggers
54              the dynamic expansion of the data.
55
56              The  optional  URI  restricts expansion only to entries matching
57              the DN, the scope and the filter portions of the URI.
58
59              The value URL-ad is the name of  the  attributeDescription  that
60              contains  the  URI  that  is expanded by the overlay; if none is
61              present, no expansion occurs.  If the intersection  of  the  at‐
62              tributes  requested by the search operation (or the asserted at‐
63              tribute for compares) and the attributes listed in  the  URI  is
64              empty,  no expansion occurs for that specific URI.  It must be a
65              subtype of labeledURI.
66
67              The value member-ad is optional; if present, the overlay behaves
68              as  a  dynamic group: this attribute will list the DN of the en‐
69              tries resulting from the internal search.  In this case, the at‐
70              trs  portion of the URIs in the URL-ad attribute must be absent,
71              and the DNs of all the entries resulting from the  expansion  of
72              the  URIs are listed as values of this attribute.  Compares that
73              assert the value of the  member-ad  attribute  of  entries  with
74              group-oc objectClass apply as if the DN of the entries resulting
75              from the expansion of the URI were present in the group-oc entry
76              as values of the member-ad attribute.
77
78              Alternatively,  mapped-ad  can  be  used to remap attributes ob‐
79              tained through expansion.  member-ad attributes are  not  filled
80              by  expanded DN, but are remapped as mapped-ad attributes.  Mul‐
81              tiple mapping statements can be used.
82
83
84       The dynlist overlay may be used with any backend, but it is mainly  in‐
85       tended  for use with local storage backends.  In case the URI expansion
86       is very resource-intensive and occurs frequently with well-defined pat‐
87       terns,  one should consider adding a proxycache later on in the overlay
88       stack.
89
90

AUTHORIZATION

92       By default the expansions are performed using the identity of the  cur‐
93       rent LDAP user.  This identity may be overridden by setting the dgIden‐
94       tity attribute in the group's entry to the DN of another LDAP user.  In
95       that  case  the  dgIdentity will be used when expanding the URIs in the
96       object.  Setting the dgIdentity to a zero-length string will cause  the
97       expansions  to  be performed anonymously.  Note that the dgIdentity at‐
98       tribute is defined in the dyngroup schema,  and  this  schema  must  be
99       loaded before the dgIdentity authorization feature may be used.  If the
100       dgAuthz attribute is also present in the group's entry, its values  are
101       used  to determine what identities are authorized to use the dgIdentity
102       to expand the group.  Values of the dgAuthz attribute must  conform  to
103       the (experimental) OpenLDAP authz syntax.
104
105

EXAMPLE

107       This example collects all the email addresses of a database into a sin‐
108       gle entry; first of all, make sure that slapd.conf contains the  direc‐
109       tives:
110
111
112           include /path/to/dyngroup.schema
113           # ...
114
115           database <database>
116           # ...
117
118           overlay dynlist
119           dynlist-attrset groupOfURLs memberURL
120
121       and that slapd loads dynlist.la, if compiled as a run-time module; then
122       add to the database an entry like
123
124           dn: cn=Dynamic List,ou=Groups,dc=example,dc=com
125           objectClass: groupOfURLs
126           cn: Dynamic List
127           memberURL: ldap:///ou=People,dc=example,dc=com?mail?sub?(objectClass=person)
128
129       If no <attrs> are provided in the URI, all (non-operational) attributes
130       are collected.
131
132       This  example implements the dynamic group feature on the member attri‐
133       bute:
134
135
136           include /path/to/dyngroup.schema
137           # ...
138
139           database <database>
140           # ...
141
142           overlay dynlist
143           dynlist-attrset groupOfURLs memberURL member
144
145       A dynamic group with dgIdentity authorization could be created with  an
146       entry like
147
148           dn: cn=Dynamic Group,ou=Groups,dc=example,dc=com
149           objectClass: groupOfURLs
150           objectClass: dgIdentityAux
151           cn: Dynamic Group
152           memberURL: ldap:///ou=People,dc=example,dc=com??sub?(objectClass=person)
153           dgIdentity: cn=Group Proxy,ou=Services,dc=example,dc=com
154
155

FILES

157       /etc/openldap/slapd.conf
158              default slapd configuration file
159

SEE ALSO

161       slapd.conf(5), slapd-config(5), slapd(8).  The slapo-dynlist(5) overlay
162       supports dynamic configuration via back-config.
163

ACKNOWLEDGEMENTS

165       This module was written in  2004  by  Pierangelo  Masarati  for  SysNet
166       s.n.c.
167
168       Attribute remapping was contributed in 2008 by Emmanuel Dreyfus.
169
170
171
172OpenLDAP                          2021/06/03                  SLAPO-DYNLIST(5)
Impressum