|
|
|
The dynlist overlay provides the capability to collect attribute values
resulting from the search specified by an LDAP URI-valued attribute into
the base entry.
The dynamic collection occurs when an antry with a specified objectClass
is being accessed, either for search or compare.
All values of a specified LDAP URI-valued attribute are parsed and executed.
Only the <DN>, <attrs>, <scope> and <filter>
portions of the URI are honored.
The attributes resulting from the intersection of those requested in the search
and those listed in the <attrs> field of the URI are merged
from all the resulting entries.
For instance, a configuration like
overlay dynlist
dynlist-attrset groupOfURLs memberURL
when accessing the entry
dn: cn=Dynamic List,ou=Groups,dc=example,dc=com
objectClass: groupOfURLs
cn: Dynamic List
memberURL: ldap:///ou=People,dc=example,dc=com?mail?sub?(objectClass=person)
will return
# Dynamic List, Groups, example.com
dn: cn=Dynamic List,ou=Groups,dc=example,dc=com
objectClass: groupOfURLs
cn: Dynamic List
memberURL: ldap:///ou=People,dc=example,dc=com?mail?sub?(objectClass=person)
mail: bjensen@mailgw.example.com
mail: bjorn@mailgw.example.com
mail: dots@mail.alumni.example.com
mail: jaj@mail.alumni.example.com
mail: jjones@mailgw.example.com
mail: jdoe@woof.net
mail: jen@mail.alumni.example.com
mail: johnd@mailgw.example.com
mail: melliot@mail.alumni.example.com
mail: uham@mail.alumni.example.com
If configured with the additional parameter
dynlist-attrset groupOfURLs memberURL member
it behaves much like the dyngroup
overlay; the <attrs> portion of the URI must be absent,
and the DN of the entries resulting from the search is added as value
of the member attribute defined above.
For compare operations on the member attribute,
all the values of the memberURL attribute of groupOfURLs
objects are compared until a match is found; this exploits slapd group caching capabilities.
See also the
dyngroup
and the
expandURL
overlays.
| |
|
The dynlist overlay is distributed with OpenLDAP 2.3;
it is known to compile and run fine since OpenLDAP 2.2.
| |
Multiple Attributes and Access Controldynlist can expand multiple attributes: So, if you have an entry: dn: cn=EntryA,dc=example,dc=edu... with objectClass objectClass: dynamicListGroup... with an attribute expandThisURL: ldap:///cn=EntryB,cn=dynamic,dc=example,dc=edu??base?(objectclass=*)... all the attributes of cn=EntryB will appended to the object that had the expandThisURL attribute.
dynlist will obey ACLs. So, if UserA were to tries to read cn=EntryA, but they are only allowed to see specific entries in cn=EntryB, only the permissible entries will be appended to cn=EntryA.Keep in mind, ACLs can be problematic as well. If UserA has permission to read all the attributes of EntryB, but only some attributes of EntryA, you may not get the results you are looking for. In this case, when specifying which attributes in EntryA a user (or group) can read, be sure to specify attributes that will be brought in through the dynamic expansion. diggyk@diggyk.com, ando@sys-net.it | |
|
Multiple Dynamic Elements: You can have multiple attributes that get expanded. For each expansion you want the overlay to keep an eye out for, just specify multiple sets of the overlay keyword for the database: overlay dynlist dynlist-attrpair groupOfURLs memberURL dynlist-attrset myOrgPerson myOrgPersonMembershipURL diggyk@diggyk.com, ando@sys-net.it | |
Configuration as of 2.3.14ITS#3756 merged dyngroup and dynlist overlays due to their similar functions. As such, the configuration has changed since OpenLDAP 2.3.14. The dynlist-attrpair/dynlist-attrset notation must now be used, in analogy with that of the dyngroup overlay:dynlist-attrpair dyn-oc URL-ad... where dyn-oc indicates the objectClass that should be used to trigger the expansion of the entry, and URL-ad denotes the attribute that will contain the URL to be used for the expansion.
Similarly, get a list of the matching entries' DN's instead of attributes (for instance, to dynamically create member attributes in an entry), use the dynlist-attrset statement, that adds the additional member-ad parameter:
dynlist-attrset dyn-oc URL-ad member-ad Examples:overlay dynlist dynlist-attrpair groupOfURLs memberURL dynlist-attrset department employeeURL employeeDN NoteUnlike previous versions, you do not have to have multipleoverlay dynlist entries in your configuration;
multiple occurrences of the dynlist-attrpair/ dynlist-attrset
statement must be used instead, with a caveat: only the first match
on the dyn-oc is used.
Also note that in the dynlist-attrset the member-ad arg
is optional; if not given, it behaves exactly as the dynlist-attrpair
statement, which is deprecated and could be removed in future releases.
diggyk@diggyk.com, ando@sys-net.it | |
| [Append to This Answer] |
| Previous: |
|
| Next: |
|
| ||||||||