1SLAPO-DYNLIST(5) File Formats Manual SLAPO-DYNLIST(5)
2
3
4
6 slapo-dynlist - Dynamic List overlay to slapd
7
9 /etc/openldap/slapd.conf
10
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
32 instead of being expanded.
33
34
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
62 attributes requested by the search operation (or the asserted
63 attribute 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
69 entries resulting from the internal search. In this case, the
70 attrs portion of the URIs in the URL-ad attribute must be
71 absent, and the DNs of all the entries resulting from the expan‐
72 sion of the URIs are listed as values of this attribute. Com‐
73 pares that assert the value of the member-ad attribute of
74 entries with group-oc objectClass apply as if the DN of the
75 entries resulting from the expansion of the URI were present in
76 the group-oc entry as values of the member-ad attribute.
77
78 Alternatively, mapped-ad can be used to remap attributes
79 obtained 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
85 intended for use with local storage backends. In case the URI expan‐
86 sion is very resource-intensive and occurs frequently with well-defined
87 patterns, one should consider adding a proxycache later on in the over‐
88 lay stack.
89
90
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
98 attribute 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
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
133 attribute:
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
157 /etc/openldap/slapd.conf
158 default slapd configuration file
159
161 slapd.conf(5), slapd-config(5), slapd(8). The slapo-dynlist(5) overlay
162 supports dynamic configuration via back-config.
163
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 2.4.46 2018/03/22 SLAPO-DYNLIST(5)