Static groups can be easier to interact with than dynamic groups, but large static groups can be expensive to manage and require a large amount of memory to hold in the internal group cache. The PingDirectory server provides a third type of group: a virtual static group, which references another group and provides access to the members of that group as if it was a static group.

  • To create a virtual static group, create an entry that has a structural object class of either groupOfNames or groupOfUniqueNames and an auxiliary class of ds-virtual-static-group.

    It should include a ds-target-group-dn attribute, whose value is the group from which the virtual static group should obtain its members.

    You must also enable a virtual attribute that allows the member attribute to be generated based on membership for the target group.

    This example creates a virtual static group that exposes the members of the cn=Sales Group,ou=Groups,dc=example,dc=com dynamic group as if it were a static group.

    dn: cn=Virtual Static Sales Group,ou=Groups,dc=example,dc=com 
    objectClass: top 
    objectClass: groupOfNames 
    objectClass: ds-virtual-static-group
    cn: Virtual Static Sales Group 
    ds-target-group-dn: cn=Sales Group,ou=Groups,dc=example,dc=com
  • To enable a configuration object for the virtual static member attribute, use the set-virtual-attribute-prop option with dsconfig.
    $ bin/dsconfig set-virtual-attribute-prop --name "Virtual Static member" \
      --set enabled:true

    A configuration object for this virtual attribute is in the server configuration but is disabled by default.

    If you want to use virtual static groups with the groupOfUniqueNames object class, enable the Virtual Static uniqueMember virtual attribute in the same way.