PingDirectory

Using dynamic groups

Dynamic groups contain a set of criteria to identify members rather than maintaining an explicit list of group members.

If a new user entry is created, or if an existing entry is modified so that it matches the membership criteria, then the user is considered a member of the dynamic group. Similarly, if a member’s entry is deleted, or if it is modified so that it no longer matches the group criteria, then the user is no longer considered a member of the dynamic group.

In the PingDirectory server, dynamic groups include the groupOfURLs structural object class and use the memberurl attribute to provide an LDAP URL that defines the membership criteria. The base, scope, and filter of the LDAP URL is used in the process of making the determination, and any other elements present in the URL are ignored.

Example

For example, the following entry defines a dynamic group in which all users below dc=example,dc=com with an employeeType value of contractor are considered members of the group.

dn: cn=Sales Group,ou=groups,dc=example,dc=com
objectClass: top
objectClass: groupOfURLs
cn: Sales Group
memberURL: ldap:///dc=example,dc=com??sub?(employeeType=contractor)

Assuming that fewer than 80,000 entries have the employeeType of contractor, you must create the following index definition to evaluate the dynamic group.

$ bin/dsconfig create-local-db-index --backend-name userRoot \
  --index-name employeeType --set index-entry-limit:80000 \
  --set index-type:equality