\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{geometry}
\geometry{top=15mm, bottom=15mm, left=1cm, right=1cm}
\usepackage[french]{babel}
\usepackage{pslatex}
\usepackage[colorlinks=true,urlcolor=black]{hyperref}
\usepackage{graphicx}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\footrulewidth}{0.4pt}
\fancyfoot[L]{Uubu.fr}
\fancyfoot[R]{jeu. sept. 26 22:25:18 CEST 2013}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={OpenLDAP - Limites},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={configuration des limites de slapd},
CreationDate={D:20130926222518},
ModDate={D:20130926222518},
Keywords={LDAP;OpenLDAP;Lightweight Directory Access Protocol}
}}
\begin{document}
 
\begin{center}
{\Huge OpenLDAP - Limites }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large configuration des limites de slapd}
 
\vspace{10mm}
 
\hspace{1mm}  Il est généralement préférable de limiter les ressources du serveur pour qu'il soit accessible à tous les clients. OpenLDAP fournit 2 type de limites : un limite de taille, qui peut être restreinte par le nombre d'entrées qu'un client peut récupérer en une seule opération, et une limite de temps, qui restreint le temps qu'une opération peut se poursuivre.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Limites Soft et Hard }
 
\
 
\hspace{1mm}  L'administrateur du serveur peut limiter les limites \textbf{hard} et \textbf{soft}. Les limites \textbf{soft} sont les valeurs de limite par défaut, les limites \textbf{hard} sont les limites qui ne peuvent pas être dépassée par les utilisateurs LDAP.
\vspace{5mm} \\
\hspace{1mm}  Les clients LDAP peuvent spécifier leur propre limites de taille et de temps pour les opérations de recherche.
\vspace{5mm} \\
\hspace{1mm}  Si le client spécifie une limite alors la plus faible des valeurs entre celle-ci et la \textbf{hard limit} sera choisie. Si le client ne spécifie pas de limite, la \textbf{soft limit} s'applique.
\vspace{5mm} \\
 
 
\hspace{1mm} Le rootdn n'est pas sujet à ces limites. \\
\hspace{1mm} \textbf{sizelimit \{<integer>|unlimited\} \# défaut 500} \\
\hspace{1mm} \textbf{timelimit \{<integer>|unlimited\} \# défaut 3600} \\
\hspace{1mm} Une forme étendue permet aux limites soft et hard d'être séparés. \\
\hspace{1mm} \textbf{sizelimit size[.\{soft|hard|unchecked\}]=<integer> [...]} \\
\hspace{1mm} \textbf{timelimit time.\{soft=<integer>\} [...]} \\
\hspace{1mm} exemple \\
\hspace{1mm} \textbf{sizelimit size.soft=10 size.hard=75} \\
 
\hspace{1mm}  Le mot clé \textbf{unchecked} spécifie une limite du nombre d'entrées que le serveur va examiner une fois qu'il a crée un lot de résultats candidat en utilisant les indices. Ça peut être très important dans les gros annuaires, quand une recherche qui ne peut pas être satisfaite depuis un index peut nécessiter d'examiner des millions d'entrées.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Limites par base }
 
\
 
\hspace{1mm}  Chaque base de donnée peut avoir ses propres limites. La syntaxe est plus flexible, et permet différentes limites à appliquer à différentes entités. le terme entité est utilisé pour indiquer l'ID de la personne ou du processus qui a initié l'opération LDAP. Dans \textbf{slapd.conf} le mot clé est \textbf{limits}. En utilisant le backend slapd config, l'attribut correspondant est \textbf{olcLimits}. La syntaxe est la même dans les 2 cas.
\vspace{5mm} \\
 
 
\hspace{1mm} \textbf{limits <who> <limit> [<limit> [ ... ]]} \\
 
\hspace{1mm}  la clause limits peut être spécifiée plusieurs fois. Le serveur examine chaque clause jusqu'à ce qu'il en trouve une qui corresponde à l'ID qui a requis l'opération. Si aucune correspondante n'est trouvée, les limites globales sont utilisées.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Spécifier à qui s'applique les limites }
 
\
 
\hspace{1mm} La partie <who> peut prendre les valeurs suivante:
 
{\ttfamily
*\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_All, including anonymous and authenticated users\\ anonymous\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_Anonymous (non-authenticated) users\\ users\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_Authenticated users\\ self\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_User associated with target entry\\ dn\texttt{[}.<basic-style>\texttt{]}=<regex>\_\_\_Users matching a regular expression\\ dn.<scope-style>=<DN>\_\_\_\_\_\_\_\_Users within scope of a DN\\ group\texttt{[}/oc\texttt{[}/at\texttt{]}\texttt{]}=<pattern>\_\_\_\_Members of a group\\
}
\vspace{8mm}
 
\vspace{1cm}{\huge Spécifier des limites de temps }
 
\
 
\hspace{1mm} \textbf{time.soft=<integer>} \\
\hspace{1mm} où integer est la durée en seconde. \\
\hspace{1mm} si soft ou hard ne sont pas spécifiés, la valeur est utilisée pour les 2: \\
\hspace{1mm} \textbf{limits anonymous time=27} \\
\hspace{1mm} la valeur unlimited peut être utilisé pour supprimer la limite de temps hard : \\
\hspace{1mm} \textbf{limits dn.exact="cn=anyuser,dc=example,dc=org" time.hard=unlimited} \\
\hspace{1mm} spécifier des tailles limites. \\
\hspace{1mm} \textbf{size[.soft|hard|unchecked]=integer>} \\
\hspace{1mm} où integer est le nombre d'entrée maximum que slapd va retourner. \\
 
\vspace{1cm}{\huge Limites de taille et résultats paginés }
 
\
 
\hspace{1mm}  Si le client LDAP ajoute le \textbf{pagedResultsControl} pour les opérations de recherche, la limite de taille hard est utilisée par défaut, parce que la requête pour une taille de page spécifique est considérée comme une requête explicite pour une limitation sur un nombre d'entrée à retourner. Cependant, la taille limite s'applique au compteur total des entrées retournées dans la recherche, et pas dans une simple page.
\vspace{5mm} \\
 
 
\hspace{1mm} \textbf{size.pr=\{<integer>|noEstimate|unlimited\}} \\
 
\begin{description} \normalsize
\item[\hspace{1mm} integer]{est la taille de page maximum si aucune taille implicite n'est donnée. \textbf{noEstimate} n'a pas d'effet dans l'implémentation courante vu que le serveur ne retourne pas une estimations de taille de résultat. \textbf{unlimited} indique qu'aucune limite n'est appliquée à la taille de page maximum.}
\item[\hspace{1mm} size.prtotal]{contrôle le nombre total d'entrées qui peuvent être retournés par une recherche paginée. Par défaut la limite est la même que la limite size.hard.}
\item[\hspace{1mm} size.prtotal=\{<integer>|unlimited|disabled\}]{}
\item[\hspace{1mm} unlimited]{supprime la limite sur le nombre d'entrée qui peuvent être retournés par une recherche paginée. \textbf{disabled} peut être utilisé pour désactiver sélectivement les recherche de résultat paginés.}
\end{description}
 
\vspace{1cm}{\huge Exemples }
 
\
 
\hspace{1mm} cet exemple applique des limites de temps et de taille pour toutes les recherche par les utilisateurs, excepté rootdn. \\
\hspace{1mm} \textbf{sizelimit 50} \\
\hspace{1mm} \textbf{timelimit 10} \\
\hspace{1mm} Limites hard et soft global: Il est parfois utile de limiter la taille des résultats mais de permettre aux clients de demander une limite plus élevée si nécessaire. Cela peut être fait en définissant des limites soft et hard séparés: \\
\hspace{1mm} \textbf{sizelimit size.soft=5 size.hard=100} \\
\hspace{1mm} Pour se prémunir des clients qui font des recherches non-indexées inefficaces, ajouter la limite unchecked: \\
\hspace{1mm} \textbf{sizelimit size.soft=5 size.hard=100 size.unchecked=100} \\
\hspace{1mm} Donner des limites plus grandes pour des utilisateurs spécifiques. \\
\hspace{1mm} \textbf{limits dn.exact="cn=anyuser,dc=example,dc=org" size=100000} \\
\hspace{1mm} \textbf{limits dn.exact="cn=personnel,dc=example,dc=org" size=100000} \\
\hspace{1mm} \textbf{limits dn.exact="cn=dirsync,dc=example,dc=org" size=100000} \\
\hspace{1mm} Il est généralement mieux d'éviter de mentionner des utilisateurs spécifiques dans la configuration serveur. Une meilleur manière est de donner des limites supérieurs à un groupe: \\
\hspace{1mm} \textbf{limits group/groupOfNames/member="cn=bigwigs,dc=example,dc=org" size=100000} \\
\hspace{1mm} Limiter qui peut faire des recherche paginées \\
\hspace{1mm} \textbf{limits group/groupOfNames/member="cn=dirsync,dc=example,dc=org" size.prtotal=unlimited} \\
\hspace{1mm} \textbf{limits users size.soft=5 size.hard=100 size.prtotal=disabled} \\
\hspace{1mm} \textbf{limits anonymous size.soft=2 size.hard=5 size.prtotal=disabled} \\
\end{flushleft}
\end{document}
