\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]{dim. oct. 20 16:39:30 CEST 2013}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={slapd-relay},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Backend relay},
CreationDate={D:20131020163930},
ModDate={D:20131020163930},
Keywords={LDAP;OpenLDAP;Lightweight Directory Access Protocol}
}}
\begin{document}
 
\begin{center}
{\Huge slapd-relay }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Backend relay}
 
\vspace{10mm}
 
\hspace{1mm}  backend relay. Il permet de mapper un contexte de nommage, avec manipulation d'attributs et classes d'objet. Il nécessite l'overlay slapo-rwm
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge OPTIONS }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} relay <real naming context>]{Le contexte de nommage qui sera présenté sous un contexte de nommage virtuel.}
\end{description}
 
\vspace{1cm}{\huge ACL }
 
\
 
\hspace{1mm}  Un problème important est que les règles d'accès sont basés sur l'identité qui a soumis l'opération. Après le massaging du contexte de nommage, le frontend vois les opérations effectuées par l'identité du vrai contexte de nommage. En concéquence, le base doit fournir ses propre règles.
\vspace{5mm} \\
\hspace{1mm}  relay n'honore aucune ACL, il délègue les règles aux bases distantes.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Exemples }
 
\
 
\hspace{1mm} Pour implémenter un mappage de contexte de nommage qui réfère à une simple base: \\
\hspace{1mm} \textbf{database relay} \\
\hspace{1mm} \textbf{suffix "dc=virtual,dc=naming,dc=context"} \\
\hspace{1mm} \textbf{relay "dc=real,dc=naming,dc=context"} \\
\hspace{1mm} \textbf{overlay rwm} \\
\hspace{1mm} \textbf{rwm-suffixmassage "dc=real,dc=naming,dc=context"} \\
\hspace{1mm} Pour implémenter un mappage de contexte de nommage qui recherche le vrai contexte de nommage pour chaque opération: \\
\hspace{1mm} \textbf{database relay} \\
\hspace{1mm} \textbf{suffix "dc=virtual,dc=naming,dc=context"} \\
\hspace{1mm} \textbf{overlay rwm} \\
\hspace{1mm} \textbf{rwm-suffixmassage "dc=real,dc=naming,dc=context"} \\
\hspace{1mm} Une configuration identique mais en remplaçant suffixmassage par une réécriture explicite: \\
\hspace{1mm} \textbf{database relay} \\
\hspace{1mm} \textbf{suffix "dc=virtual,dc=naming,dc=context"} \\
\hspace{1mm} \textbf{relay "dc=real,dc=naming,dc=context"} \\
\hspace{1mm} \textbf{overlay rwm} \\
\hspace{1mm} \textbf{rwm-rewriteEngine on} \\
\hspace{1mm} \textbf{rwm-rewriteContext default} \\
\hspace{1mm} \textbf{rwm-rewriteRule "dc=virtual,dc=naming,dc=context" "dc=real,dc=naming,dc=context" ":@"} \\
\hspace{1mm} \textbf{rwm-rewriteContext searchFilter} \\
\hspace{1mm} \textbf{rwm-rewriteContext searchEntryDN} \\
\hspace{1mm} \textbf{rwm-rewriteContext searchAttrDN} \\
\hspace{1mm} \textbf{rwm-rewriteContext matchedDN} \\
\hspace{1mm} Configuration des règles d'accès: \\
\hspace{1mm} \textbf{database bdb} \\
\hspace{1mm} \textbf{suffix "dc=example,dc=com"} \\
\hspace{1mm} \textbf{\# skip...} \\
\hspace{1mm} \textbf{access to dn.subtree="dc=example,dc=com"} \\
\hspace{1mm} \textbf{by dn.exact="cn=Supervisor,dc=example,dc=com" write} \\
\hspace{1mm} \textbf{by * read} \\
\hspace{1mm} \textbf{database relay} \\
\hspace{1mm} \textbf{suffix "o=Example,c=US"} \\
\hspace{1mm} \textbf{relay "dc=example,dc=com"} \\
\hspace{1mm} \textbf{overlay rwm} \\
\hspace{1mm} \textbf{rwm-suffixmassage "dc=example,dc=com"} \\
\hspace{1mm} \textbf{\# skip ...} \\
\hspace{1mm} \textbf{access to dn.subtree="o=Example,c=US"} \\
\hspace{1mm} \textbf{by dn.exact="cn=Supervisor,dc=example,dc=com" write} \\
\hspace{1mm} \textbf{by dn.exact="cn=Relay Supervisor,dc=example,dc=com" write} \\
\hspace{1mm} \textbf{by * read} \\
\end{flushleft}
\end{document}
