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.
	      If  the  optional	* character is also specified, then the	member
	      and memberOf values will be populated  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 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.9			  2024/11/26		      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+14.3.quarterly>

home | help