Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SLAPO-DYNLIST(5)	       File Formats Manual		SLAPO-DYNLIST(5)

NAME
     slapo-dynlist - Dynamic List overlay to slapd

SYNOPSIS
     /usr/local/etc/openldap/slapd.conf

DESCRIPTION
     The  dynlist  overlay  to	slapd(8)  allows  expansion of dynamic lists and
     groups.  Any time an entry with a	specific  objectClass  (defined  in  the
     overlay  configuration)  is being returned, the LDAP URI-valued occurrences
     of a specific attribute (also defined in the overlay configuration) are ex-
     panded into the corresponding entries.

     For a dynamic list, the values of the attributes  listed  in  the	URI  are
     added from the matching entries to the original entry.  No recursion is al-
     lowed,  to avoid potential infinite loops.  The resulting entry must comply
     with the LDAP data model, so constraints are enforced.  For example,  if  a
     SINGLE-VALUE  attribute  is  listed,  only the first value found during the
     list expansion appears in the final entry.

     For a dynamic group, the DNs of the matching entries are added to a  member
     attribute in the original entry.

     All dynamic behavior is disabled when the manageDSAit control (RFC 3296) is
     used.   In  that  case,  the  contents  of  the original entry is returned;
     namely, the URLs are returned instead of being expanded.

CONFIGURATION
     The config directives that are specific to the dynlist overlay must be pre-
     fixed by dynlist-, to avoid potential conflicts with directives specific to
     the underlying database or to other stacked overlays.

     overlay dynlist
	    This directive adds the dynlist overlay to the current database,  or
	    to	the  frontend,	if  used  before any database instantiation; see
	    slapd.conf(5) for details.

     This slapd.conf configuration option is defined for the dynlist overlay. It
     may have multiple occurrences, and it must appear after the overlay  direc-
     tive.

     dynlist-attrset <group-oc> [<URI>] <URL-ad> [options]

	    The  value group-oc is the name of the objectClass that triggers the
	    dynamic expansion of the data.

	    The optional URI restricts expansion only to  entries  matching  the
	    DN, the scope and the filter portions of the URI.

	    The  value	URL-ad is the name of the attributeDescription that con-
	    tains the URI that is expanded by the overlay; if none  is	present,
	    no	expansion  occurs.   If  the  intersection of the attributes re-
	    quested by the search operation (or the asserted attribute for  com-
	    pares)  and  the attributes listed in the URI is empty, no expansion
	    occurs for that specific URI.  It must be a subtype of labeledURI.

	    The remaining options depend on whether a dynamic list or a  dynamic
	    group is being configured.

	    For a dynamic list, the allowed options have the form

	    [<mapped-ad>:<list-ad> ...]

	    The  mapped-ad  can be used to remap attributes obtained through ex-
	    pansion.  The list-ad must be one of the attributes returned in  the
	    expansion  of the URIs in the URL-ad attribute of the dynamic entry.
	    Multiple mapping statements can be used.  Note that in order for dy-
	    namic lists to be usable in a search filter, the dynamic  attributes
	    to	be  filtered  must  be	explicitly mapped. They can be mapped to
	    themselves if no transformation is required.

	    For a dynamic group, the allowed options are

	    <member-ad>[+<memberOf-ad>[@<static-oc>[*]]]

	    The member-ad is required; this attribute will list the  DN  of  the
	    entries resulting from the internal search.  In this case, the attrs
	    portion  of the URIs in the URL-ad attribute must be absent, and the
	    DNs of all the entries resulting from the expansion of the URIs  are
	    listed  as values of this attribute.  Compares that assert the value
	    of the member-ad attribute of entries with group-oc objectClass  ap-
	    ply  as if the DN of the entries resulting from the expansion of the
	    URI were present in the group-oc entry as values  of  the  member-ad
	    attribute.	If the optional memberOf-ad attribute is also specified,
	    then it will be populated with the DNs of the dynamic groups that an
	    entry is a member of.  If the optional static-oc objectClass is also
	    specified,	then  the memberOf attribute will also be populated with
	    the DNs of the static groups that an entry is  a  member  of.   Note
	    that  using  the same static-oc objectClass in more than one dynamic
	    group configuration is not supported.  If the optional  *  character
	    is also specified, then the member and memberOf values will be popu-
	    lated recursively, for nested groups. Note that currently nesting is
	    only supported for Search operations, not Compares.

     dynlist-simple TRUE | FALSE
	    This  option  downgrades to the behavior of the OpenLDAP 2.4 dynlist
	    overlay.  It disables memberOf processing, nested group support, and
	    filter evaluation of dynamically generated values.	The  default  is
	    FALSE.

     The dynlist overlay may be used with any backend, but it is mainly intended
     for use with local storage backends.  In case the URI expansion is very re-
     source-intensive  and  occurs  frequently	with  well-defined patterns, one
     should consider adding a proxycache later on in the overlay stack.

AUTHORIZATION
     By default the expansions are performed using the identity of  the  current
     LDAP  user.   This identity may be overridden by setting the dgIdentity at-
     tribute in the group's entry to the DN of another LDAP user.  In that  case
     the dgIdentity will be used when expanding the URIs in the object.  Setting
     the dgIdentity to a zero-length string will cause the expansions to be per-
     formed  anonymously.   Note that the dgIdentity attribute is defined in the
     dyngroup schema, and this schema must be loaded before the  dgIdentity  au-
     thorization  feature may be used.	If the dgAuthz attribute is also present
     in the group's entry, its values are used to determine what identities  are
     authorized  to use the dgIdentity to expand the group.  Values of the dgAu-
     thz attribute must conform to the	(experimental)	OpenLDAP  authz  syntax.
     When using dynamic memberOf in search filters, search access to the entryDN
     pseudo-attribute is required.

EXAMPLE
     This  example  collects all the email addresses of a database into a single
     entry; first of all, make sure that slapd.conf contains the directives:

	 include /path/to/dyngroup.schema
	 # ...

	 database <database>
	 # ...

	 overlay dynlist
	 dynlist-attrset groupOfURLs memberURL

     and that slapd loads dynlist.la, if compiled as a run-time module; then add
     to the database an entry like

	 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)

     If no <attrs> are provided in the URI, all (non-operational) attributes are
     collected.

     The values of the above list can not be evaluated in a  search  filter.  To
     enable  filter  evaluation  on  the dynamic list, the configuration must be
     changed to explicitly map the dynamic attributes to be  filtered.	In  this
     case mail is just mapped to itself.

	 include /path/to/dyngroup.schema
	 # ...

	 database <database>
	 # ...

	 overlay dynlist
	 dynlist-attrset groupOfURLs memberURL mail:mail

     This example implements the dynamic group feature on the member attribute:

	 include /path/to/dyngroup.schema
	 # ...

	 database <database>
	 # ...

	 overlay dynlist
	 dynlist-attrset groupOfURLs memberURL member

     A	dynamic group with dgIdentity authorization could be created with an en-
     try like

	 dn: cn=Dynamic Group,ou=Groups,dc=example,dc=com
	 objectClass: groupOfURLs
	 objectClass: dgIdentityAux
	 cn: Dynamic Group
	 memberURL: ldap:///ou=People,dc=example,dc=com??sub?(objectClass=person)
	 dgIdentity: cn=Group Proxy,ou=Services,dc=example,dc=com

     This example extends the dynamic group feature to add a dynamic  dgMemberOf
     attribute to all the members of a dynamic group:

	 include /path/to/dyngroup.schema
	 # ...

	 database <database>
	 # ...

	 overlay dynlist
	 dynlist-attrset groupOfURLs memberURL member+dgMemberOf

     This  example  extends the dynamic memberOf feature to add the memberOf at-
     tribute to all the members of both static and dynamic groups:

	 include /path/to/dyngroup.schema
	 # ...

	 database <database>
	 # ...

	 overlay dynlist
	 dynlist-attrset groupOfURLs memberURL member+memberOf@groupOfNames

     This dynamic memberOf feature can fully replace the  functionality  of  the
     slapo-memberof(5) overlay.

FILES
     /usr/local/etc/openldap/slapd.conf
	    default slapd configuration file

BACKWARD COMPATIBILITY
     The dynlist overlay has been reworked with the 2.5 release to use a consis-
     tent  namespace  as  with	other  overlays.  As a side-effect the following
     cn=config parameters are deprecated and will be removed  in  a  future  re-
     lease:  olcDlAttrSet  is  replaced with olcDynListAttrSet olcDynamicList is
     replaced with olcDynListConfig

SEE ALSO
     slapd.conf(5), slapd-config(5),  slapd(8).   The  slapo-dynlist(5)  overlay
     supports dynamic configuration via back-config.

BUGS
     Filtering on dynamic groups may return incomplete results if the search op-
     eration uses the pagedResults control.

ACKNOWLEDGEMENTS
     This module was written in 2004 by Pierangelo Masarati for SysNet s.n.c.

     Attribute remapping was contributed in 2008 by Emmanuel Dreyfus.

OpenLDAP 2.6.13 		   2026/03/09			SLAPO-DYNLIST(5)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=slapo-dynlist&sektion=5&manpath=FreeBSD+Ports+15.1.quarterly>

home | help