informatique:reseau:ldap:dynlist

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
informatique:reseau:ldap:dynlist [2020/01/08 10:47] – créée bn8informatique:reseau:ldap:dynlist [2024/05/27 17:10] (Version actuelle) – [Module dynlist] bn8
Ligne 1: Ligne 1:
 +====== 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//.** 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//.**
  
Ligne 7: Ligne 9:
 <note important>**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 : <code>( 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 )</code></note> <note important>**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 : <code>( 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 )</code></note>
  
-<note warning>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.**</note>+<note warning>**Avant la version 2.5** d'OpenLDAP (Debian Bookworm), comme pour le module //memberof//, **il n'était pas possible de faire de recherche d'utilisateur avec un filtre sur la valeur de 
 +l'attribut listant ses groupes.** Cette limitation a été supprimée en version 2.5, mais cela n'est pas sans impacte sur les performances. Il est donc toujours conseillé de privilégier d'utiliser 
 +la //méthode traditionnelle// pour lister les groupes d'un utilisateur.
  
-<note tip>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é.</note>+Il est par ailleurs à noter que dans les premières versions disponibles d'OpenLDAP 2.5, il y avait une 
 +[[https://lists.openldap.org/hyperkitty/list/openldap-technical@openldap.org/thread/EOIWWJM4YNU367YVSILDBM5WISKPRSDP/|nette perte de performances]] lorsque ce module était activé par rapport à la version 2.4. 
 +Ces problèmes furent en grandes partie corrigés dans la version [[https://git.openldap.org/openldap/openldap/-/blob/OPENLDAP_REL_ENG_2_5_17/CHANGES|2.5.17]] d'OpenLDAP 
 +(disponible en backports sur le [[https://apt.easter-eggs.com/|dépôt Easter-eggs]]).</note>
  
 +<note tip>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é.</note>
 ===== Installation ===== ===== Installation =====
  
-Il faut d'abord charger le modules //dynlist// : +Il faut d'abord charger le module //dynlist// : <code bash>ldapmodify -Y EXTERNAL -H ldapi:/// << EOF 
-  * Créer le fichier ///tmp/load-module.ldif// <code>dn: cn=module{0},cn=config+dn: cn=module{0},cn=config
 changetype: modify changetype: modify
 add: olcModuleLoad add: olcModuleLoad
-olcModuleLoad: dynlist</code> +olcModuleLoad: dynlist 
-  * Jouer ce LDIF via //ldapmodify// : <code bash>ldapmodify -x -D cn=admin,cn=config -W -f /tmp/load-module.ldif +EOF</code>
-# Ou : +
-ldapmodify -Y EXTERNAL -H ldapi:/// -f /tmp/load-module.ldif</code>+
  
-Il faut ensuite activer ce module pour votre //database// : +Il faut charger également le schéma LDAP propre à ce module (fourni par le paquet Debian //slapd//) : <code bash>ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/dyngroup.ldif</code> 
-  * Créer le fichier ///tmp/config-module.ldif// : <code>dn: olcOverlay={0}dynlist,olcDatabase={1}mdb,cn=config+ 
 +Il faut ensuite activer ce module pour votre //database// : <code bash>ldapadd -Y EXTERNAL -H ldapi:/// << EOF 
 +dn: olcOverlay=dynlist,olcDatabase={1}mdb,cn=config
 objectClass: olcOverlayConfig objectClass: olcOverlayConfig
 objectClass: olcDynamicList objectClass: olcDynamicList
 olcOverlay: dynlist olcOverlay: dynlist
 olcDlAttrSet: zioPersonne zioMemberOfURI memberOf olcDlAttrSet: zioPersonne zioMemberOfURI memberOf
 +EOF
 </code> </code>
-  * Jouer ce LDIF avec //ldapadd// : <code bash>ldapadd -x -D cn=admin,cn=config -W -f /tmp/config-module.ldif + 
-# Ou +<note tip>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 : <code ldif>dn: cn=memberof,cn=schema,cn=config 
-ldapadd -Y EXTERNAL -H ldapi:/// -f /tmp/config-module.ldif</code>+cnmemberof 
 +objectClassolcSchemaConfig 
 +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 )</code></note>
  • informatique/reseau/ldap/dynlist.1578480442.txt.gz
  • Dernière modification : 2020/01/08 10:47
  • de bn8