informatique:reseau:ldap:dynlist

Différences

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

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
informatique:reseau:ldap:dynlist [2020/11/23 11:45] – [Installation] bn8informatique:reseau:ldap:dynlist [2024/05/27 17:10] (Version actuelle) – [Module dynlist] bn8
Ligne 9: 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 module //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 bash>cat << EOF > /tmp/load-module.ldif+
 dn: cn=module{0},cn=config dn: cn=module{0},cn=config
 changetype: modify changetype: modify
Ligne 22: Ligne 28:
 olcModuleLoad: dynlist olcModuleLoad: dynlist
 EOF</code> EOF</code>
-  * Jouer ce LDIF via //ldapmodify// : <code bash>ldapmodify -x -D cn=admin,cn=config -W -f /tmp/load-module.ldif 
-# Ou : 
-ldapmodify -Y EXTERNAL -H ldapi:/// -f /tmp/load-module.ldif</code> 
  
-Il faut charger également le schéma LDAP propre à ce module (fourni par le paquet Debian //slapd//) : <code bash>ldapadd -x -D cn=admin,cn=config -W -f /etc/ldap/schema/dyngroup.ldif +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>
-# Ou : +
-ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/dyngroup.ldif</code>+
  
-Il faut ensuite activer ce module pour votre //database// : +Il faut ensuite activer ce module pour votre //database// : <code bash>ldapadd -Y EXTERNAL -H ldapi:/// << EOF 
-  * Créer le fichier ///tmp/config-module.ldif// : <code bash>cat << EOF > /tmp/config-module.ldif +dn: olcOverlay=dynlist,olcDatabase={1}mdb,cn=config
-dn: olcOverlay={0}dynlist,olcDatabase={1}mdb,cn=config+
 objectClass: olcOverlayConfig objectClass: olcOverlayConfig
 objectClass: olcDynamicList objectClass: olcDynamicList
Ligne 39: Ligne 39:
 EOF EOF
 </code> </code>
-  * Jouer ce LDIF avec //ldapadd// : <code bash>ldapadd -x -D cn=admin,cn=config -W -f /tmp/config-module.ldif 
-# Ou : 
-ldapadd -Y EXTERNAL -H ldapi:/// -f /tmp/config-module.ldif</code> 
  
 <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 <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
  • informatique/reseau/ldap/dynlist.1606131922.txt.gz
  • Dernière modification : 2020/11/23 11:45
  • de bn8