Après un bon moment de galère avec le paramétrage d'ACL de OpenLDAP, je me suis rendu compte que le man slapd.access est bien plus détaillé que l'admin guide !

Pour l'annecdote, mon but était de :

  • Interdire les accès anonymes aux données de l'annuaire
  • Limiter l'accès en lecture aux utilisateurs authentifiés à leur seules données
  • Donner un accès en lecture à tout l'annuaire pour un utilisateur applicatif

Le problème était le matching sur le DN avec la directive by dn= qui ne fonctionnait pas. En fait, pour matcher un DN il faut indiquer by dn.base= ou by dn.exact=

Le résultat :

access to attr=userPassword
        by anonymous auth

access to *
        by self read
        by dn.exact="cn=userappli,dc=xxx, dc=fr" read

defaultaccess   none