lemonldap-ng/build/lemonldap-ng/doc/faq-fr.html

662 lines
29 KiB
HTML

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 1 September 2005), see www.w3.org" />
<title>FAQ LEMONLDAP::NG</title>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
</head>
<body>
<div class="main-content">
<h2 class="heading-1"><span id="HFoireauxquestionsLemonldap3A3ANG">Foire
aux questions Lemonldap::NG</span></h2>
<p class="paragraph"></p>
<ul>
<li>
<a href="#HLemonldap3A3ANG">Lemonldap::NG</a>
<ul>
<li><a href="#HQu27estcequ27unWebSSO3F">Qu'est-ce qu'un Web-SSO
?</a></li>
<li><a href=
"#HQu27apporteLemonldap3A3ANGparrapportauxautresSSO3F">Qu'apporte
Lemonldap::NG par rapport aux autres SSO ?</a></li>
</ul>
</li>
<li>
<a href="#HConfiguration">Configuration</a>
<ul>
<li><a href=
"#HQuelsystC3A8medestockagedeconfigurationchoisir3F">Quel
syst&egrave;me de stockage de configuration choisir ?</a></li>
<li><a href=
"#HL27exemplefournifonctionneenHTTP2CmaispasenHTTPS">L'exemple
fourni fonctionne en HTTP, mais pas en HTTPS.</a></li>
<li><a href="#HAquoisertleparamC3A8trehttpsduhandler3F">A quoi sert
le param&egrave;tre https du handler ?</a></li>
<li><a href="#HQu27estcequ27uneCGIautoprotC3A9gC3A9e3F">Qu'est ce
qu'une CGI auto-prot&eacute;g&eacute;e ?</a></li>
<li><a href=
"#HCommentfairefonctionnerLemonldap3A3ANGavecunannuaireActiveDirectory3F">
Comment faire fonctionner Lemonldap::NG avec un annuaire
Active-Directory ?</a></li>
<li><a href=
"#HCommentutiliserLemonldap3A3ANGenreverseproxy3F">Comment utiliser
Lemonldap::NG en reverse-proxy ?</a></li>
</ul>
</li>
<li>
<a href="#HFonctionnement">Fonctionnement</a>
<ul>
<li><a href="#HAquoisertlecachelocaldesagents28handlers293F">A quoi
sert le cache local des agents (handlers) ?</a></li>
<li><a href=
"#HPourquoinepeutonpasconfigurerlecachelocaldesagents28handlers29danslaconsoled27administration3F">
Pourquoi ne peut-on pas configurer le cache local des agents
(handlers) dans la console d'administration ?</a></li>
<li><a href=
"#HQu27estcequele7E7ECrossDomainAuthentication7E7E28CDA293F">Qu'est
ce que le <i class="italic">Cross Domain Authentication</i> (CDA)
?</a></li>
<li><a href=
"#HCommentfonctionnele7E7ECrossDomainAuthentication7E7E28CDA293F">Comment
fonctionne le <i class="italic">Cross Domain Authentication</i>
(CDA) ?</a></li>
</ul>
</li>
<li>
<a href="#HAuthentification">Authentification</a>
<ul>
<li><a href="#HPeutonchangerlemoded27authentification3F">Peut-on
changer le mode d'authentification ?</a></li>
</ul>
</li>
<li>
<a href="#HMessagesd27erreuretdedC3A9boguage">Messages d'erreur et de
d&eacute;boguage</a>
<ul>
<li><a href="#H22IncorrectXML22">"Incorrect XML"</a></li>
<li><a href=
"#H22Byteorderisnotcompatible22ou22Magicnumbercheckingonstorablestringfailed22">
"Byte order is not compatible" ou "Magic number checking on storable
string failed"</a></li>
<li><a href=
"#H22Configurationisinoldformat2Cyou27vetomigrate2122">"Configuration
is in old format, you've to migrate !"</a></li>
<li><a href="#H22My3A3APackage3Agetconfiguration122">"My::Package:
get configuration 1"</a></li>
<li><a href="#H22My3A3APackage3Astoreconfiguration122">"My::Package:
store configuration 1"</a></li>
<li><a href="#H22My3A3APackage3ANocookiefound22">"My::Package: No
cookie found"</a></li>
<li><a href=
"#H22Redirect26lt3Bxxxx26gt3Btoportal28urlwas2F2922">"Redirect
&lt;x.x.x.x&gt; to portal (url was /)"</a></li>
<li><a href="#H22FoundaCDAidRedirecting22">"Found a CDA id.
Redirecting"</a></li>
<li><a href="#H22Usersomeonewasauthorizatedtoaccessto2F22">"User
someone was authorizated to access to /"</a></li>
<li><a href="#H22My3A3APackage3Aremovingcookie22">"My::Package:
removing cookie"</a></li>
<li><a href=
"#H22ErrorwhilereadingconfigurationwithglobalStorageOptionskey3A22">"Error
while reading configuration with globalStorageOptions key:"</a></li>
<li><a href=
"#H22UserrejectedbecauseVirtualHosttestexamplecomhasnoconfiguration22">
"User rejected because VirtualHost test.example.com has no
configuration"</a></li>
<li><a href=
"#H22Thecookiexxxxisn27tyetavailable3AObjectdoesnotexistinthedatastoreat2Fusr2Fshare2Fperl52FApache2FSession2FStore2FFilepmline905Cn22">
"The cookie xxxx isn't yet available: Object does not exist in the
data store at /usr/share/perl5/Apache/Session/Store/File.pm line
90.n"</a></li>
<li><a href=
"#H22Thecookiexxxxisn27tyetavailable3A7E7E26lt3BerreurdumoduleApache3A3ASession26gt3B7E7E">
"The cookie xxxx isn't yet available: <i class="italic">&lt;erreur
du module Apache::Session&gt;</i></a></li>
</ul>
</li>
</ul>
<h3 class="heading-1-1"><span id=
"HLemonldap3A3ANG">Lemonldap::NG</span></h3>
<h4 class="heading-1-1-1"><span id="HQu27estcequ27unWebSSO3F">Qu'est-ce
qu'un Web-SSO ?</span></h4>
<p class="paragraph"></p>Un SSO <i class="italic">(Single Sign On)</i> est
un dispositif qui permet de partager les authentifications entre plusieurs
applications. L'utilisateur ne s'authentifie ainsi qu'une fois et n'est
pas interrompu lorsqu'il change d'application. Kerberos (utilis&eacute;
dans Active Directory) par exemple est un SSO. Le probl&egrave;me de ces
syst&egrave;mes est qu'outre leur lourdeur, ils ne s'appliquent
qu'&agrave; des Intranets sur des machines relativement homog&egrave;nes.
<p class="paragraph"></p>Le Web-SSO est le portage de ce principe
restreint aux applications Web. L'utilisateur est donc authentifi&eacute;
au premier acc&egrave;s &agrave; une application web
prot&eacute;g&eacute;e et les authentifications se propagent lorsqu'il
change d'application. Le gros avantage est alors que le syst&egrave;me est
utilisable sur Internet sans pr&eacute;-requis sur les postes clients (il
suffit d'accepter les cookies de session). Par exemple, lorsqu'un
utilisateur acc&egrave;de &agrave; une bo&icirc;te-aux-lettres Google, il
n'est pas r&eacute;authentifi&eacute; s'il acc&egrave;de &agrave;
l'application de gestion des groupes ou tout autre application Google.
<p class="paragraph"></p>Lemonldap::NG est un des syst&egrave;mes
permettant la gestion du Web-SSO.
<h4 class="heading-1-1-1"><span id=
"HQu27apporteLemonldap3A3ANGparrapportauxautresSSO3F">Qu'apporte
Lemonldap::NG par rapport aux autres SSO ?</span></h4>
<ul class="star">
<li>Lemonldap comme lemonldap::NG sont des modules Apache Perl et
offrent des performances qui rendent imperceptible le traitement de
l'acc&egrave;s.</li>
<li>Un des autres points forts de Lemonldap::NG est sa capacit&eacute;
&agrave; g&eacute;rer les droits de fa&ccedil;on centralis&eacute;e: les
SSO type Kerberos ou CAS permettent le partage des authentifications
mais d&eacute;l&egrave;guent aux applications la gestion des
autorisations d'acc&egrave;s. Dans le cas de Lemonldap::NG, la gestion
des droits peut &ecirc;tre centralis&eacute;e totalement, en partie ou
pas du tout pour chaque application: Lemonldap::NG fournit un
syst&egrave;me d'autorisations bas&eacute; sur le tri des URL par
expressions r&eacute;guli&egrave;res auquelles on associe une
r&egrave;gle. Il fournit &eacute;galement des en-t&ecirc;tes HTTP
&agrave; l'application contenant n'importe quel attribut issue de
l'annuaire LDAP. Celle-ci peut alors g&eacute;rer la
tra&ccedil;abilit&eacute; des acc&egrave;s et &eacute;ventuellement des
droits d'acc&egrave;s (voir la <span class="wikiexternallink"><a href=
"http://wiki.lemonldap.objectweb.org/xwiki/bin/view/NG/Presentation#HMC3A9canismesd27authentification2Cd27autorisationetdetraC3A7abilitC3A9">
documentation AAA</a></span>).</li>
<li>Lemonldap::NG n'imose aucune modification de l'annuaire: les droits
sont calcul&eacute;s &agrave; partir de n'importe quel attribut.</li>
<li>Lemonldap::NG peut publier n'importe quel attribut LDAP ou des
expressions calcul&eacute;es &agrave; partir de ces attributs dans les
en-t&ecirc;tes HTTP. On peut ainsi &eacute;viter aux applications
d'avoir &agrave; consulter l'annuaire LDAP.</li>
<li>Lemonldap::NG traite tous les sites h&eacute;berg&eacute;s (virtuels
ou r&eacute;els) ind&eacute;pendamment: on peut ainsi fournir &agrave;
chaque application des en-t&ecirc;tes personnalis&eacute;s.</li>
<li>Lemonldap::NG fournit une interface web d'administration
pr&eacute;sentant simplement la configuration, les droits d'acc&egrave;s
et les en-t&ecirc;tes par site prot&eacute;g&eacute; (voir la
d&eacute;monstration&gt;<span class="nobr"><a href=
"http://lemonldap.objectweb.org/NG/ManagerDemo/fr/">http://lemonldap.objectweb.org/NG/ManagerDemo/fr/</a></span>).
On peut &eacute;galement ne montrer qu'une partie de la configuration en
lecture seule et une autre en lecture &eacute;criture: l'interface
d'administration peut ainsi &ecirc;tre partiellement
d&eacute;l&eacute;gu&eacute;e par site prot&eacute;g&eacute;.</li>
</ul>
<h3 class="heading-1-1"><span id=
"HConfiguration">Configuration</span></h3>
<h4 class="heading-1-1-1"><span id=
"HQuelsystC3A8medestockagedeconfigurationchoisir3F">Quel syst&egrave;me de
stockage de configuration choisir ?</span></h4>
<p class="paragraph"></p>Lemonldap::NG fournit 3 types de stockage de
configuration:
<ul class="star">
<li><strong class="strong">File</strong>: le syst&egrave;me le plus
simple, il ne permet en revanche de partager la configuration que parmi
les serveurs qui partagent un syst&egrave;me de fichier. On peut ainsi
l'utiliser dans le cas o&ugrave; tous les VirtualHosts &agrave;
prot&eacute;ger se trouvent sur le m&ecirc;me serveur,</li>
<li><strong class="strong">DBI</strong>: <span class=
"wikiexternallink"><a href=
"http://www.linuxmanpages.com/man3/DBI.3pm.php">DBI(3)</a></span> est
une couche d'abstraction de l'acc&egrave;s aux bases de donn&eacute;es
fournie par Perl. Utilis&eacute;e dans Lemonldap::NG, elle permet de
partager la configuration entre serveurs mais suppose que tous ces
serveurs acc&egrave;dent &agrave; la m&ecirc;me base de donn&eacute;e.
C'est une solution recommand&eacute;e pour partager la configuration sur
un r&eacute;seau de serveurs,</li>
<li><strong class="strong">SOAP</strong>: Ce syst&egrave;me n'est pas
&agrave; proprement parler un syst&egrave;me de stockage, mais permet
&agrave; un serveur distant d'acc&eacute;der &agrave; la configuration
par une simple connexion HTTP(S). Le serveur SOAP acc&egrave;de lui
&agrave; la configuration par un des syst&egrave;mes
pr&eacute;c&eacute;dents (File ou DBI).</li>
</ul>
<h4 class="heading-1-1-1"><span id=
"HL27exemplefournifonctionneenHTTP2CmaispasenHTTPS">L'exemple fourni
fonctionne en HTTP, mais pas en HTTPS.</span></h4>
<p class="paragraph"></p>Dans le m&eacute;canisme des redirections vers le
portail puis vers le site prot&eacute;g&eacute;, il faut indiquer &agrave;
l'agent (handler) s'il est de type HTTPS ou non. Ceci est fait par le
param&egrave;tre <tt>https</tt> qui doit &ecirc;tre mis &agrave; 1. Ce
param&egrave;tre n'est pas accessible dans la configuration (manager), car
il est sp&eacute;cifique aux h&ocirc;tes virtuels. C'est donc lors de
l'appel &agrave; la fonction <tt>init</tt> (dans le fichier My::Package)
qu'il doit &ecirc;tre renseign&eacute;:
<p class="paragraph"></p>
<pre>
__PACKAGE__-&gt;init ( {
localStorage =&gt; "Cache::FileCache",
localStorageOptions =&gt; {
'namespace' =&gt; 'MyNamespace',
'default_expires_in' =&gt; 600,
'directory_umask' =&gt; '007',
'cache_root' =&gt; '/tmp',
'cache_depth' =&gt; 5,
},
configStorage =&gt; {
type =&gt; 'File',
dirName =&gt; '/var/lib/lemonldap-ng/conf',
},
<strong class="strong">https =&gt; 1</strong>,
} );
</pre>
<h4 class="heading-1-1-1"><span id=
"HAquoisertleparamC3A8trehttpsduhandler3F">A quoi sert le param&egrave;tre
https du handler ?</span></h4>
<p class="paragraph"></p>Ce param&egrave;tre n'est utilis&eacute; que dans
les redirections vers le portail d'authentification. Il sert juste
&agrave; indiquer &agrave; ce dernier qu'apr&egrave;s authentification,
l'utilisateur doit &ecirc;tre redirig&eacute; vers l'application en https
et non en http.
<h4 class="heading-1-1-1"><span id=
"HQu27estcequ27uneCGIautoprotC3A9gC3A9e3F">Qu'est ce qu'une CGI
auto-prot&eacute;g&eacute;e ?</span></h4>
<p class="paragraph"></p>Lorsqu'on a qu'une seule page Perl &agrave;
prot&eacute;ger dans un VirtualHost, plut&ocirc;t que de la
prot&eacute;ger en utilisant un agent Lemonldap::NG dans Apache, on peut
utiliser une CGI auto-prot&eacute;g&eacute;e:
<p class="paragraph"></p>
<pre>
use Lemonldap::NG::Handler::CGI;
my $cgi = Lemonldap::NG::Handler::CGI-&gt;new ( {
# m&ecirc;mes param&egrave;tres qu'un agent Lemonldap::NG::Handler::SharedConf
}
);
$cgi-&gt;authenticate;
</pre>
<p class="paragraph"></p>Dans l'exemple ci-dessus, $cgi est un objet de
type CGI(3). La seule diff&eacute;rence est qu'il b&eacute;n&eacute;ficie
de quelques fonctions suppl&eacute;mentaires:
<ul class="star">
<li>authenticate : pour appeler le m&eacute;canisme d'authentification
Lemonldap::NG,</li>
<li>autorize : si on veut g&eacute;rer les droits avec le manager,</li>
<li>user : retourne la table de hash des param&egrave;tres
utilisateurs,</li>
<li>group : permet de valider l'appartenance &agrave; un groupe.</li>
</ul>Ce type de CGI est tr&egrave;s utile lorsque les droits ne peuvent
&ecirc;tre distingu&eacute;s par URL (requ&ecirc;tes POST par exemple). La
page de manuel Lemonldap::NG::Handler::CGI(3) d&eacute;taille son
utilisation.
<h4 class="heading-1-1-1"><span id=
"HCommentfairefonctionnerLemonldap3A3ANGavecunannuaireActiveDirectory3F">Comment
faire fonctionner Lemonldap::NG avec un annuaire Active-Directory
?</span></h4>
<p class="paragraph"></p>Active-Directory utilise le champ <tt>cn</tt>
comme identifiant unique au lieu de <tt>uid</tt>. Il faut donc modifier la
configuration de Lemonldap::NG en deux points&nbsp;:
<ol>
<li>la recherche de l'utilisateur dans l'annuaire doit &ecirc;tre
effectu&eacute;e avec le champ <tt>cn</tt> (ou
<tt>samAccountName</tt>),</li>
<li>les journaux d'Apache doivent &ecirc;tre enrichis avec ce m&ecirc;me
champ.</li>
</ol>Pour le deuxi&egrave;me point, la modification est tr&egrave;s simple
: il faut remplacer <tt>$uid</tt> par <tt>$cn</tt> dans le champ
"Param&egrave;tres g&eacute;n&eacute;raux -&gt; Donn&eacute;e &agrave;
inscrire dans les journaux d'Apache" (et v&eacute;rifier que cette
variable est d&eacute;clar&eacute;e dand les attributs &agrave; exporter).
Le changement de filtre de recherche n&eacute;cessite la surcharge d'une
m&eacute;thode dans le portail. Cette modification peut &ecirc;tre
effectu&eacute;e comme suit:
<pre>
#!/usr/bin/perl
use Lemonldap::NG::Portal::SharedConf;
my $portal = Lemonldap::NG::Portal::SharedConf-&gt;new(
{
configStorage =&gt; {
type =&gt; 'File',
dirName =&gt; '/var/lib/lemonldap-ng/conf',
},
<strong class="strong">formateFilter =&gt; sub {</strong>
my $self = shift;
$self-&gt;{filter} = "(&amp;(cn=" . $self-&gt;{user} . ")(objectClass=person))";
PE_OK;
} # fin de la surcharge
}
);
</pre>
<h4 class="heading-1-1-1"><span id=
"HCommentutiliserLemonldap3A3ANGenreverseproxy3F">Comment utiliser
Lemonldap::NG en reverse-proxy ?</span></h4>
<p class="paragraph"></p>Lemonldap::NG prot&egrave;ge simplement les
VirtualHosts d'Apache. Pour fonctionner en reverse-proxy, il suffit donc
de configurer Apache en reverse-proxy:
<p class="paragraph"></p>
<pre>
# httpd.conf
&lt;VirtualHost *&gt;
ServerName monappli
PerlRequire MyFile
PerlHeaderParserHandler My::Package
ProxyPass / <span class="nobr"><a href=
"http://serveur-reel/">http://serveur-reel/</a></span>
ProxyPassReverse / <span class="nobr"><a href=
"http://serveur-reel/">http://serveur-reel/</a></span>
# on peut aussi utiliser mod_rewrite
# RewriteEngine On
# RewriteRule /(.*)$ <span class="nobr"><a href=
"http://serveur-reel/$1">http://serveur-reel/$1</a></span> [P]
&lt;/VirtualHost&gt;
</pre>
<p class="paragraph"></p>Si toutefois vous pr&eacute;f&eacute;rez utiliser
un proxy Perl, Lemonldap::NG en fournit un
(Lemonldap::NG::Handler::Proxy(3)).
<h3 class="heading-1-1"><span id=
"HFonctionnement">Fonctionnement</span></h3>
<h4 class="heading-1-1-1"><span id=
"HAquoisertlecachelocaldesagents28handlers293F">A quoi sert le cache local
des agents (handlers) ?</span></h4>
<p class="paragraph"></p>Le cache local des agents a deux fonctions:
<ul class="star">
<li>partager la configuration entre processus Apache: on &eacute;vite
ainsi un t&eacute;l&eacute;chargement de la configuration &agrave;
chaque cr&eacute;ation d'un processus. C'est &eacute;galement
indispensable pour utiliser le m&eacute;canisme de rechargement de la
configuration sans relance du serveur Apache,</li>
<li>partager les sessions en cours entre processus et threads Apache:
ceci permet d'&eacute;viter d'avoir &agrave; effectuer une requ&ecirc;te
au magasin central des sessions &agrave; chaque requ&ecirc;te (on ne
retombe en effet pas n&eacute;cessairement sur le m&ecirc;me processus).
Dans le cas o&ugrave; le cache central des sessions est accessible par
le r&eacute;seau, on transforme ainsi une requ&ecirc;te TCP en une
requ&ecirc;te au syst&egrave;me de ficher voir simplement &agrave; la
m&eacute;moire partag&eacute;e ce qui augmente fortement les
performances.</li>
</ul>
<h4 class="heading-1-1-1"><span id=
"HPourquoinepeutonpasconfigurerlecachelocaldesagents28handlers29danslaconsoled27administration3F">
Pourquoi ne peut-on pas configurer le cache local des agents (handlers)
dans la console d'administration ?</span></h4>
<p class="paragraph"></p>Le cache local doit &ecirc;tre choisi ou
param&eacute;tr&eacute; en fonction du serveur: si on choisit par exemple
le module Cache::FileCache, le r&eacute;pertoire de stockage n'est pas
n&eacute;cessairement le m&ecirc;me partout. De plus, une modification du
cache ne peut &ecirc;tre appliqu&eacute;e sans red&eacute;marrage du
serveur Apache contrairement aux autres param&egrave;tres
g&eacute;r&eacute;s par la console d'administration.
<h4 class="heading-1-1-1"><span id=
"HQu27estcequele7E7ECrossDomainAuthentication7E7E28CDA293F">Qu'est ce que
le <i class="italic">Cross Domain Authentication</i> (CDA) ?</span></h4>
<p class="paragraph"></p>Le syst&egrave;me de propagation de la session
Lemonldap::NG est bas&eacute; sur des cookies. Or ces cookies sont
attach&eacute;s au domaine dont ils sont issus. Lemonldap::NG fournit un
dispositif permettant de passer outre ce probl&egrave;me: il suffit
d'utiliser le portail Lemonldap::NG::Portal::CDA et les agents
Lemonldap::NG::Handler::CDA sur les sites prot&eacute;g&eacute;s en dehors
du domaine du portail.
<h4 class="heading-1-1-1"><span id=
"HCommentfonctionnele7E7ECrossDomainAuthentication7E7E28CDA293F">Comment
fonctionne le <i class="italic">Cross Domain Authentication</i> (CDA)
?</span></h4>
<p class="paragraph"></p>Un portail Lemonldap::NG::Portal::CDA
d&eacute;tecte si l'URL demand&eacute;e n'est pas dans le m&ecirc;me
domaine. Si c'est le cas, il ajoute un param&egrave;tre &agrave; cette
requ&ecirc;te correspondant au cookie de session. Lorsque l'utilisateur
est renvoy&eacute; vers cette URL, l'agent Lemonldap::NG::Handler::CDA
reconna&icirc;t ce param&egrave;tre et g&eacute;n&egrave;re alors le
cookie dans son domaine. Il retire alors le param&egrave;tre ajout&eacute;
par le portail et effectue le traitement normal de la requ&ecirc;te.
<h3 class="heading-1-1"><span id=
"HAuthentification">Authentification</span></h3>
<h4 class="heading-1-1-1"><span id=
"HPeutonchangerlemoded27authentification3F">Peut-on changer le mode
d'authentification ?</span></h4>
<p class="paragraph"></p>Lemonldap::NG fournit plusieurs modes
d'authentification (&agrave; param&eacute;trer dans le champ
"authentification" de l'interface d'administration) :
<ul class="star">
<li><strong class="strong">ldap</strong> : c'est le mode par
d&eacute;faut: le portail tente de se connecter avec les
&eacute;l&eacute;ments fournis par l'utilisateur</li>
<li><strong class="strong">CAS</strong> : le portail Lemonldap::NG
devient alors un simple relais CAS: si l'utilisateur n'est pas
authentifi&eacute;, on le revoie vers le portail CAS</li>
<li><strong class="strong">SSL</strong> : ce dispositif confie &agrave;
Apache le soin d'authentifier les utilisateurs par m&eacute;canisme SSL.
Ce dispositif est tr&egrave;s int&eacute;ressant lorsqu'on utilise des
certificats SSL: si on prot&egrave;ge toutes les applications par
certificats mutuels les nombreuses n&eacute;gociations SSL
p&eacute;naliserons les performances et en cas d'emploi de cartes
&agrave; puces prot&eacute;geant chaque op&eacute;ration, l'utilisateur
devra saisir plusieurs fois son code. Avec ce dispositif, seule
l'acc&egrave;s au portail Lemonldap::NG n&eacute;cessite la
pr&eacute;sentation du certificat client. Ensuite, c'est le cookie
s&eacute;curis&eacute; qui assure la propagation de
l'authentification.</li>
<li><strong class="strong">Apache</strong> : dans le m&ecirc;me esprit,
on confie &agrave; Apache l'authentification. Par exemple avec Kerberos,
le module Kerberos d'Apache assure la protection du portail. On
am&eacute;liore ainsi les performances puisqu'une seule
n&eacute;gociation Kerberos est n&eacute;cessaire pour toute la
session.</li>
</ul>
<h3 class="heading-1-1"><span id=
"HMessagesd27erreuretdedC3A9boguage">Messages d'erreur et de
d&eacute;boguage</span></h3>
<p class="paragraph"></p>Lemonldap::NG produit des messages de
d&eacute;boguage et d'erreur enregistr&eacute;s dans le journal d'Apache
(error.log par d&eacute;faut). Vous pouvez modifier le niveau d'affichage
en adaptant le param&egrave;tre LogLevel d'Apache.
<h4 class="heading-1-1-1"><span id="H22IncorrectXML22">"Incorrect
XML"</span></h4>
<p class="paragraph"></p>Ce message appara&icirc;t au chargement du
Manager lorsque celui-ci n'arrive pas &agrave; charger la configuration.
Dans ce cas, consultez les journaux d'Apache&nbsp;: la v&eacute;ritable
erreur y sera enregistr&eacute;e.
<h4 class="heading-1-1-1"><span id=
"H22Byteorderisnotcompatible22ou22Magicnumbercheckingonstorablestringfailed22">
"Byte order is not compatible" ou "Magic number checking on storable
string failed"</span></h4>
<p class="paragraph"></p>Ce message appara&icirc;t lorsque la
configuration stock&eacute;e est malform&eacute;e ou sur les versions
ant&eacute;rieures &agrave; la version 0.8.2.3 lorsqu'on utilise
Lemonldap::NG sur des serveurs de type diff&eacute;rents (32 et 64 bits en
particulier). Dans ce dernier cas, il suffit d'installer une version au
moins &eacute;gale &agrave; la version 0.8.2.3.
<h4 class="heading-1-1-1"><span id=
"H22Configurationisinoldformat2Cyou27vetomigrate2122">"Configuration is in
old format, you've to migrate !"</span></h4>
<p class="paragraph"></p>Ce message d'avertissement appara&icirc;t
lorsqu'une configuration g&eacute;n&eacute;r&eacute;e &agrave; partir
d'une version ant&eacute;rieure &agrave; la 0.8.2.3 est lue par une
version plus r&eacute;cente. Un simple r&eacute;engistrement de la
configuration par le manager fait dispara&icirc;tre cet avertissement.
<h4 class="heading-1-1-1"><span id=
"H22My3A3APackage3Agetconfiguration122">"My::Package: get configuration
1"</span></h4>
<p class="paragraph"></p>Ce message de d&eacute;boguage montre qu'un des
processus fils d'Apache charge la configuration.
<h4 class="heading-1-1-1"><span id=
"H22My3A3APackage3Astoreconfiguration122">"My::Package: store
configuration 1"</span></h4>
<p class="paragraph"></p>Ce message de d&eacute;boguage montre qu'un des
processus fils d'Apache enregistre la derni&egrave;re version de la
configuration dans le cache local. Elle sera lue par les autres fils
d'Apache dans les 10 minutes qui suivent.
<h4 class="heading-1-1-1"><span id=
"H22My3A3APackage3ANocookiefound22">"My::Package: No cookie
found"</span></h4>
<p class="paragraph"></p>Ce message indique qu'un utilisateur non
authentifi&eacute; se pr&eacute;sente sur l'application.
<h4 class="heading-1-1-1"><span id=
"H22Redirect26lt3Bxxxx26gt3Btoportal28urlwas2F2922">"Redirect
&lt;x.x.x.x&gt; to portal (url was /)"</span></h4>
<p class="paragraph"></p>Message de d&eacute;boguage indiquant que le
client correspondant &agrave; l'adresse IP est redirig&eacute; vers le
portail d'authentification.
<h4 class="heading-1-1-1"><span id="H22FoundaCDAidRedirecting22">"Found a
CDA id. Redirecting"</span></h4>
<p class="paragraph"></p>Message de d&eacute;boguage indiquant que le
client a &eacute;t&eacute; authentifi&eacute; dans un autre domaine
(m&eacute;canisme CDA). L'agent g&eacute;n&egrave;re alors le cookie dans
le nouveau domaine.
<h4 class="heading-1-1-1"><span id=
"H22Usersomeonewasauthorizatedtoaccessto2F22">"User someone was
authorizated to access to /"</span></h4>
<p class="paragraph"></p>Message de d&eacute;boguage indiquant que le
client est autoris&eacute; &agrave; acc&eacute;der &agrave; cette URL.
<h4 class="heading-1-1-1"><span id=
"H22My3A3APackage3Aremovingcookie22">"My::Package: removing
cookie"</span></h4>
<p class="paragraph"></p>Message de d&eacute;boguage indiquant que l'agent
retire le cookie apr&egrave;s l'avoir exploit&eacute;&nbsp;: les
applications n'ont pas &agrave; conna&icirc;tre ce cookie mais ne se fient
qu'aux en-t&ecirc;tes.
<h4 class="heading-1-1-1"><span id=
"H22ErrorwhilereadingconfigurationwithglobalStorageOptionskey3A22">"Error
while reading configuration with globalStorageOptions key:"</span></h4>
<p class="paragraph"></p>Une erreur a &eacute;t&eacute; relev&eacute;e
dans la configuration.
<h4 class="heading-1-1-1"><span id=
"H22UserrejectedbecauseVirtualHosttestexamplecomhasnoconfiguration22">"User
rejected because VirtualHost test.example.com has no
configuration"</span></h4>
<p class="paragraph"></p>Lorsqu'un VirtualHost est prot&eacute;g&eacute;
mais pas configur&eacute;, Lemonldap::NG le bloque. Inscrivez alors ce
VirtualHost dans la configuration de Lemonldap::NG.
<h4 class="heading-1-1-1"><span id=
"H22Thecookiexxxxisn27tyetavailable3AObjectdoesnotexistinthedatastoreat2Fusr2Fshare2Fperl52FApache2FSession2FStore2FFilepmline9026231103B22">
"The cookie xxxx isn't yet available: Object does not exist in the data
store at /usr/share/perl5/Apache/Session/Store/File.pm line
90.n"</span></h4>
<p class="paragraph"></p>Ce message appara&icirc;t lorsqu'un utilisateur
pr&eacute;sente un cookie qui n'existe pas ou plus dans la base des
sessions. Il est alors pri&eacute; de se r&eacute;-authentifier.
<h4 class="heading-1-1-1"><span id=
"H22Thecookiexxxxisn27tyetavailable3A7E7E26lt3BerreurdumoduleApache3A3ASession26gt3B7E7E">
"The cookie xxxx isn't yet available: <i class="italic">&lt;erreur du
module Apache::Session&gt;</i></span></h4>
<p class="paragraph"></p>Ce message appara&icirc;t lorsque l'agent
n'arrive pas &agrave; atteindre la base des sessions. La v&eacute;ritable
erreur est report&eacute;e.
<p class="paragraph"></p>
</div>
</body>
</html>