> Tech > Taille de page maximale LDAP

Taille de page maximale LDAP

Tech - Par iTPro - Publié le 24 juin 2010
email

Vous savez probablement qu’AD supporte LDAP (Lightweight Directory Access Protocol) 3.0. Cela vous permet de faire une recherche dans le répertoire à partir d’un client conforme à LDAP. Pour vous protéger contre des attaques par DOS (Denial of Service) et des recherches susceptibles de dégrader la performance, AD impose une

taille de page maximale de 1 000 lors du renvoi des résultats des requêtes LDAP. Autrement dit, AD ne renvoie pas plus de 1 000 enregistrements à la fois en réponse à une requête LDAP. Ainsi, si vous exécutez une recherche en sous-arborescence LDAP portant sur tous les objets utilisateur de votre domaine, elle renverra 1 000 enregistrements, et une erreur Size Limit Exceeded si votre domaine contient plus de 1 000 objets utilisateur.

Vous pouvez contourner cette limite de deux manières. La première consiste à changer la taille de page maximale à partir du client ; la seconde consiste à modifier MaxPageSize LDAP sur vos DC (domain controllers) pour hausser la limite. Il est conseillé d’utiliser la première méthode et de ne pas recourir à LDAP. Dès lors que les utilisateurs et les applications utilisent de plus en plus AD, le risque de requêtes LDAP inefficaces s’accroît. Le paramètre Taille de page maximale protège AD contre ce genre d’inefficacité. Le principal danger que l’on court en modifiant la stratégie LDAP est de diminuer la performance DC. Pour en savoir plus sur le changement des stratégies LDAP, voir l’article Microsoft « HOW TO: View and Set Lightweight Directory Access Protocol Policies by Using Ntdsutil.exe in Windows 2000 » (http://support.microsoft. com/?kbid=315071).

Une manière de fixer la taille de page maximale sur un client LDAP consiste à utiliser le client LDAP ldp.exe à partir des outils de support Windows 2000 ou Win2K. Pour utiliser cette méthode :

  • Ouvrez ldp.exe.
  • Connectez-vous au répertoire et liez-vous à lui. Pour cela, cliquez sur la rubrique du menu Connection, puis cliquez sur Connect. Entrez le nom du DC auquel vous voulez vous connecter, en format FQDN (Fully Qualified Domain Name) (par exemple, dc1.mydomain.com) – ou laissez simplement le champ vierge si vous voulez vous connecter à un DC de proximité dans le domaine par défaut – et cliquez sur OK. Pour effectuer un lien LDAP au DC, cliquez sur Bind dans le menu Connection, renseignez les champs utilisateur, mot de passe et domaine, en utilisant un compte de domaine muni des permissions appropriées (généralement un compte utilisateur ordinaire suffira), et cliquez sur OK. Cliquez sur Browse puis sur Search.
  • Cliquez sur Options et changez les paramètres conformément au contenu de la figure 1.

La figure 1 montre que j’ai changé le Search Call Type par défaut de Sync en Paged. Ce changement ordonne au DC de renvoyer les résultats des recherches en lots spécifiés dans le paramètre Page size, avec pour effet de contourner la limite de 1 000 enregistrements. A cet égard, la terminologie est trompeuse. On se souvient que la stratégie LDAP du DC est appelée MaxPageSize. Cette stratégie n’a aucun rapport avec le paramètre Page size du client LDAP. La valeur MaxPageSize représente simplement le nombre maximum d’enregistrements que le serveur renvoie. Le paramètre Page size dans mon exemple ldp.exe ordonne au serveur de renvoyer les résultats en lots de 16 (par défaut). Il n’est pas nécessaire de changer la valeur par défaut. Je mets Timeout (s) à 60, une valeur qui, d’après mon expérience, contribue à éviter les problèmes de timeout quand on utilise le paging. J’ai aussi changé le paramètre Attributes à 1.1, pour ordonner au DC de ne renvoyer aucun attribut. (Par défaut, le DC continue à renvoyer l’attribut distinguishedName dans les résultats.) Ceux qui s’intéressent vraiment à LDAP doivent savoir que ldp.exe définit la taille de page par l’application du contrôle LDAP pageResultsControl. Vous trouverez d’autres informations sur l’utilisation de ce contrôle LDAP dans la RFC (Request for Comments) 2696 de l’IETF (Internet Engineering Task Force) (http://www.ietf.org/rfc/rfc 2696.txt).

On peut aussi définir la taille de page en utilisant ADO (ActiveX Data Objects) dans un script VBScript. Le listing 1 montre un script qui cherche tous les comptes utilisateur dans un domaine. Dans un environnement de plus de 1 000 utilisateurs, le script échouera si vous n’utilisez pas le paramètre Page size. Comme avec l’exemple ldp.exe, le fait de spécifier une valeur de taille de page spécifique ordonne au serveur de renvoyer les résultats en lots, ce qui permet de contourner la limite de 1 000 enregistrements. Pour exécuter le script, créez un nouveau fichier (PageSize.vbs), modifiez le code du renvoi A dans le listing 1 en incluant votre propre nom de domaine puis sauvegardez le fichier. Ouvrez une invite de commande, changez pour adopter le même répertoire que celui dans lequel vous avez sauvegardé le fichier, et tapez la ligne suivante :

cscript PageSize.vbs

Téléchargez gratuitement cette ressource

*** SMART DSI *** VERSION NUMÉRIQUE

*** SMART DSI *** VERSION NUMÉRIQUE

Découvrez SMART DSI, la nouvelle revue du Décideur IT en version numérique. Analyses et dossiers experts pour les acteurs de la transformation numérique de l'entreprise, Gagnez en compétences et expertise IT Professionnelle avec le contenu éditorial premium de SMART DSI.

Tech - Par iTPro - Publié le 24 juin 2010