PingDirectory

Creating a static group

About this task

To create a static group:

Steps

  1. Open a text editor and create a group entry in LDIF.

    1. Include the groupOfUniquenames object class and uniquemember attributes.

    2. Optional: If you did not have ou=groups set up in your server, add it in the same file.

    3. Save the file.

      Example:

      In the following example, the file is named static-group.ldif.

      This example LDIF file creates two groups: cn=Development and cn=QA.

      dn: ou=groups,dc=example,dc=com
      objectclass: top
      objectclass: organizationalunit
      ou: groups
      
      dn: cn=Development,ou=groups,dc=example,dc=com
      objectclass: top
      objectclass: groupOfUniqueNames
      cn: Development
      ou: groups
      uniquemember: uid=user.14,ou=People,dc=example,dc=com
      uniquemember: uid=user.91,ou=People,dc=example,dc=com
      uniquemember: uid=user.180,ou=People,dc=example,dc=com
      
      dn: cn=QA,ou=groups,dc=example,dc=com
      objectclass: top
      objectclass: groupOfUniqueNames
      cn: QA
      ou: groups
      uniquemember: uid=user.0,ou=People,dc=example,dc=com
      uniquemember: uid=user.1,ou=People,dc=example,dc=com
      uniquemember: uid=user.2,ou=People,dc=example,dc=com
  2. To add the group entries to the server, use the ldapmodify tool.

    Example:

    $ bin/ldapmodify --defaultAdd --filename static-group.ldif
  3. To verify the configuration, use the virtual attribute isDirectMemberOf that checks membership for a non-nested group.

    The virtual attribute is disabled by default, but you can enable it using dsconfig.

    Example:

    $ bin/dsconfig set-virtual-attribute-prop --name isDirectMemberOf --set enabled:true
  4. To determine if a user is a member of a certain group, use ldapsearch to search the isDirectMemberOf virtual attribute.

    Example:

    This example inquires if uid=user.14 is a member of the cn=Development group.

    This example assumes that the administrator has the privilege to view operational attributes.

    $ bin/ldapsearch --baseDN dc=example,dc=com "(uid=user.14)" isDirectMemberOf

    Result:

    dn: uid=user.14,ou=People,dc=example,dc=com
    isDirectMemberOf: cn=Development,ou=groups,dc=example,dc=com
  5. Use the group as a target in access control instructions (ACI).

    1. Open a text editor and create an aci attribute in an LDIF file.

    2. Save the file.

    3. To add the file, use the ldapmodify tool.

      Example:

      In this example, the file is named dev-group-aci.ldif.

      dn: ou=People,dc=example,dc=com
      changetype: modify
      add: aci
      aci: (target ="ldap:///ou=People,dc=example,dc=com")
        (targetattr != "cn || sn || uid")
        (targetfilter ="(ou=Development)")
        (version 3.0; acl "Dev Group Permissions";
          allow (write) (groupdn = "ldap:///cn=Development,ou=groups,dc=example,dc=com");)

      You can create a similar ACI for the QA group, which is not shown in the previous example, but is shown in the example for step 1.

  6. To add the file, use the ldapmodify tool.

    Example:

    $ bin/ldapmodify --filename dev-group-aci.ldif