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	occur-
       rences of a specific attribute (also defined in the overlay  configura-
       tion) are expanded 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
       allowed,	to avoid potential infinite loops.  The	resulting  entry  must
       comply  with the	LDAP data model, so constraints	are enforced.  For ex-
       ample, 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 re-
       turned; namely, the URLs	are returned instead of	being expanded.

CONFIGURATION
       The  config directives that are specific	to the dynlist overlay must be
       prefixed	by dynlist-, to	avoid potential	conflicts with directives spe-
       cific 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 over-
       lay. It may have	multiple occurrences, and it  must  appear  after  the
       overlay directive.

       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
	      contains the URI that is expanded	by the	overlay;  if  none  is
	      present,	no  expansion  occurs.	If the intersection of the at-
	      tributes requested by the	search operation (or the asserted  at-
	      tribute  for  compares)  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 dy-
	      namic 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
	      expansion.   The	list-ad	must be	one of the attributes returned
	      in the expansion of the URIs in the URL-ad attribute of the  dy-
	      namic entry. Multiple mapping statements can be used.  Note that
	      in  order	for dynamic 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 re-
	      quired.

	      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	expan-
	      sion  of	the URIs are listed as values of this attribute.  Com-
	      pares that assert	the value of the member-ad  attribute  of  en-
	      tries  with  group-oc  objectClass apply as if the DN of the en-
	      tries 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 populated	recursively, for nested	groups.	Note that cur-
	      rently nesting is	only supported for Search operations, not Com-
	      pares.

       dynlist-simple TRUE | FALSE
	      This option downgrades to	the behavior of	the OpenLDAP 2.4  dyn-
	      list  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 in-
       tended for use with local storage backends.  In case the	URI  expansion
       is very resource-intensive and occurs frequently	with well-defined pat-
       terns,  one should consider adding a proxycache later on	in the overlay
       stack.

AUTHORIZATION
       By default the expansions are performed using the identity of the  cur-
       rent LDAP user.	This identity may be overridden	by setting the dgIden-
       tity attribute 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 performed anonymously.  Note that the	dgIdentity at-
       tribute is defined in the dyngroup schema,  and	this  schema  must  be
       loaded before the dgIdentity authorization 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 dgAuthz attribute must conform to
       the (experimental) OpenLDAP authz syntax.  When using dynamic  memberOf
       in search filters, search access	to the entryDN pseudo-attribute	is re-
       quired.

EXAMPLE
       This example collects all the email addresses of	a database into	a sin-
       gle  entry; first of all, make sure that	slapd.conf contains the	direc-
       tives:

	   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  at-
       tribute:

	   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
       entry 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	dgMem-
       berOf 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
       attribute 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
       consistent namespace as with other overlays. As a side-effect the  fol-
       lowing cn=config	parameters are deprecated and will be removed in a fu-
       ture release: olcDlAttrSet is replaced with olcDynListAttrSet olcDynam-
       icList 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
       operation 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.10			  2025/05/22		      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.0>

home | help