Reverse Group Membership Maintenance
1. Présentation
Cette fonctionnalité peut être utilisée dans certains cas où il serait nécessaire de connaître les groupes dont une entrée est membre et sans émettre de nouvelles requêtes. À titre d’exemple, il est possible de trouver des applications utilisant l’annuaire afin d’effectuer des contrôles d’accès basés sur des groupes d’autorisation.
Ainsi, cette fonctionnalité va créer un nouvel attribut ’opérationnel’ nommé memberof qui sera automatiquement mis à jour lorsque la valeur de l’attribut member d’un groupe sera modifiée (ajout ou suppression).
¬
Cette fonctionnalité n’est pas rétroactive et traite les opérations qu’elle reçoit seulement au moment de son activation sur l’annuaire. Ainsi, toutes les valeurs member existantes avant la mise en action de cette fonctionnalité ne seront pas prises en compte.
2. Exemple de configuration
1.	Il faut tout d’abord charger le module memberof.la dans l’entrée : dn: cn=module{0},cn=config	
2.	Puis, il faudra appliquer cette fonctionnalité au niveau de l’entrée de l’annuaire ciblé  (ex. olcDatabase={1}bdb,cn=config) à l’aide d’une commande ldapadd avec les paramètres par défaut, comme ci-dessous :	
dn: olcOverlay={2}memberof,olcDatabase={1}bdb,cn=config 
objectClass: olcMemberOf 
objectClass: olcOverlayConfig 
olcOverlay: {2}memberof
3.	Par la suite, il faudra tester en ajoutant un attribut member à une entrée de type ’groupOfNames’ :	
dn: cn=testgroup,ou=Group,dc=exemple,dc=com 
objectclass: groupOfNames 
cn: testgroup 
member: uid=test1,ou=People,dc=eeample,dc=com
4.	Puis, en effectuant une requête LDAP de type recherche :	
ldapsearch -h localhost -b dc=example,dc=com -s sub memberOf 
dn: uid=test1,ou=People,dc=example,dc=com 
memberOf: cn=testgroup,ou=Group,dc=example,dc=com
Il apparaît que l’entrée de l’utilisateur possède maintenant un attribut supplémentaire memberof avec la valeur du groupe auquel il appartient.
¬
Pour plus d’information, il sera utile de regarder les manpages : man slapo-memberof.