The minimal access control information required for specific LDAP operations is described here.
- Add
-
The ACI must allow the
addpermission to entries in the target. This implicitly allows the attributes and values to be set. Usetargetattrfiltersto explicitly deny access to any values if required.For example, the ACI required to allow
uid=bjensen,ou=People,dc=example,dc=comto add an entry is:aci: (version 3.0;acl "Add entry"; allow (add)(userdn = "ldap:///uid=bjensen,ou=People,dc=example,dc=com");) - Bind
-
Because this is used to establish the user's identity and derived authorizations, ACI is irrelevant for this operation and is not checked. To prevent authentication, disable the account instead. For more information see Managing Accounts Manually.
- Compare
-
The ACI must allow the
comparepermission to the attribute in the target entry.For example, the ACI required to allow
uid=bjensen,ou=People,dc=example,dc=comto compare values against thesnattribute is:aci: (targetattr = "sn")(version 3.0;acl "Compare surname"; allow (compare)(userdn = "ldap:///uid=bjensen,ou=People,dc=example,dc=com");) - Delete
-
The ACI must allow the
deletepermission to the target entry. This implicitly allows the attributes and values in the target to be deleted. Usetargetattrfiltersto explicitly deny access to the values if required.For example, the ACI required to allow
uid=bjensen,ou=People,dc=example,dc=comto delete an entry is:aci: (version 3.0;acl "Delete entry"; allow (delete) (userdn = "ldap:///uid=bjensen,ou=People,dc=example,dc=com");) - Modify
-
The ACI must allow the
writepermission to attributes in the target entries. This implicitly allows all values in the target attribute to be modified. Usetargetattrfiltersto explicitly deny access to specific values if required.For example, the ACI required to allow
uid=bjensen,ou=People,dc=example,dc=comto modify thedescriptionattribute in an entry is:aci: (targetattr = "description")(version 3.0; acl "Modify description"; allow (write)(userdn = "ldap:///uid=bjensen,ou=People,dc=example,dc=com");) - ModifyDN
-
If the entry is being moved to a
newSuperior, theexportpermission must be allowed on the target, and theimportpermission must be allowed on thenewSuperiorentry.The ACI must allow
writepermission to the attributes in the old RDN and the new RDN. All values of the old RDN and new RDN can be written implicitly; usetargetattrfiltersto explicitly deny access to values used if required.For example, the ACI required to allow
uid=bjensen,ou=People,dc=example,dc=comto rename entries named with theuidattribute to new locations:aci: (targetattr = "uid")(version 3.0;acl "Rename uid= entries"; allow (write, import, export)(userdn = "ldap:///uid=bjensen,ou=People,dc=example,dc=com");) - Search
-
ACI is required to process the search filter, and to determine what attributes and values may be returned in the results. The
searchpermission is used to allow particular attributes in the search filter. Thereadpermission is used to allow particular attributes to be returned. Ifreadpermission is allowed to any attribute, the server will automatically allow theobjectClassattribute to also be read. All values of readable attributes can be implicitly read; to restrict this usetargetattrfilters.For example, the ACI required to allow
uid=bjensen,ou=People,dc=example,dc=comto search foruidattributes, and also to read that attribute in matching entries is:aci: (targetattr = "uid")(version 3.0;acl "Search and read uid"; allow (search, read)(userdn = "ldap:///uid=bjensen,ou=People,dc=example,dc=com");)

