====== Module dynlist ====== Ce module permet la gestion d'attributs dynamiques listant les groupes d'un utilisateur sur la base de sa présence dans de son DN dans un attribut listant les membres au niveau des groupes. **Ce module peut-être utilisé à la place du module [[memberof]] dans un contexte de serveurs utilisant une réplication //syncrepl//.** **Contrairement au module //memberof//, un attribut est requis au niveau de l'objet utilisateur pour stocker l'URI de recherche des groupes d'un utilisateur.** Cet attribut doit donc être prévu dans votre schéma LDAP dans votre classe d'objet utilisateur. Par ailleurs, cet attribut doit forcément hériter de l'attribut //labeledURI//. **Exemple de définition d'un attribut pour stocker l'URI de recherche des groupes d'un utilisateur :** ( 1.3.6.1.4.1.10650.3.987512.31 NAME 'zioMemberOfURI' DESC 'Dynamic memberOf URI' SUP labeledURI ) **Il est important que l'attribut dynamique qui listera les groupes de l'utilisateur soit également défini** dans le schéma de l'annuaire. Dans l'exemple ci-dessous, nous utiliserons l'attribut //memberOf// qui est apporté par le module //memberof// et dont la définition est la suivante : ( 1.2.840.113556.1.2.102 NAME 'memberOf' DESC 'Group that the entry belongs to' SYNTAX '1.3.6.1.4.1.1466.115.121.1.12' EQUALITY distinguishedNameMatch ) Comme pour le module //memberof//, **il ne sera pas possible de faire de recherche d'utilisateur avec un filtre sur la valeur de l'attribut listant ses groupes.** Contrairement au module //memberof//, la configuration dynamique de ce module ne pose pas de soucis et il n'est pas nécessaire de "toucher" aux membres des groupes, pour que l'attribut dynamique soit alimenté. ===== Installation ===== Il faut d'abord charger le module //dynlist// : ldapmodify -Y EXTERNAL -H ldapi:/// << EOF dn: cn=module{0},cn=config changetype: modify add: olcModuleLoad olcModuleLoad: dynlist EOF Il faut charger également le schéma LDAP propre à ce module (fourni par le paquet Debian //slapd//) : ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/dyngroup.ldif Il faut ensuite activer ce module pour votre //database// : ldapadd -Y EXTERNAL -H ldapi:/// << EOF dn: olcOverlay=dynlist,olcDatabase={1}mdb,cn=config objectClass: olcOverlayConfig objectClass: olcDynamicList olcOverlay: dynlist olcDlAttrSet: zioPersonne zioMemberOfURI memberOf EOF La définition de l'attribut //memberof// est fourni par l'overlay OpenLDAP du même nom. Si vous avez l'erreur ''unable to find AttributeDescription #0 "memberOf"'', vous pouvez charger le overlay ''memberof'' ou bien ajouter le schéma LDAP suivant : dn: cn=memberof,cn=schema,cn=config cn: memberof objectClass: olcSchemaConfig olcAttributeTypes: {0}( 1.2.840.113556.1.2.102 NAME 'memberOf' DESC 'Group that the entry belongs to' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )