Réponse : ajouter « ORDERING integerOrderingMatch
» à la définition de l'attribut.
Sur les attributs numériques (integer) de notre annuaire LDAP (OpenLDAP), nous aimerions faire des recherches de la forme « valeur supérieure ou égale à ». Exemples : trouver les prénoms+nom des personnels dont employeeNumber est >= XXXXXXXX ; trouver tous les uid des personnels dont pwdLastChange est <= 20191231 (cela fonctionne car la date est au format ISO 8601 dont le Hollandais Volant présente les avantages) ; trouver tous les uid des personnels dont gidNumber >= XXXXXXXX.
Notons que la norme LDAP ne permet pas des recherches avec les opérateurs strictement inférieur (<) et strictement supérieur (>). Uniquement <= et >=.
Notre recherche sur le gidNumber fonctionne. Elle échoue sur les autres attributs : aucun résultat est retourné alors que des objets correspondent à notre recherche.
J'ai déjà présenté les règles de comparaison qui peuvent être affectées à un attribut LDAP afin de pouvoir comparer deux objets LDAP entre eux et le fait que, par défaut, aucune régle de comparaison est associée à un attribut. Je pressens qu'il en va de même pour une recherche ordonnée portant sur des attributs numériques.
Je parcours à nouveau le RFC 4517. Bingo, il existe bien des règles de comparaison ordonnée.
Ainsi, pour être en mesure d'effectuer une recherche <= ou >= sur un attribut LDAP de type entier, il faut ajouter « ORDERING integerOrderingMatch
» à sa définition en mettant à jour le schéma qui la contient.