Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
informatique:reseau:ldap:dynlist [2022/07/25 13:39] – [Installation] bn8 | informatique:reseau:ldap:dynlist [2024/05/27 17:10] (Version actuelle) – [Module dynlist] bn8 |
---|
<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 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> | 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> |
| |
Il faut ensuite activer ce module pour votre //database// : <code bash>ldapmodify -Y EXTERNAL -H ldapi:/// << EOF | Il faut ensuite activer ce module pour votre //database// : <code bash>ldapadd -Y EXTERNAL -H ldapi:/// << EOF |
dn: olcOverlay={0}dynlist,olcDatabase={1}mdb,cn=config | dn: olcOverlay=dynlist,olcDatabase={1}mdb,cn=config |
objectClass: olcOverlayConfig | objectClass: olcOverlayConfig |
objectClass: olcDynamicList | objectClass: olcDynamicList |