diff options
author | Rich Bowen <rbowen@apache.org> | 2015-04-15 18:33:41 +0200 |
---|---|---|
committer | Rich Bowen <rbowen@apache.org> | 2015-04-15 18:33:41 +0200 |
commit | cf8ed4e44a1bc1c51d7e7df4f631a7c44f7e29f6 (patch) | |
tree | 1aa70ec748a2a5f81f4b94bf05ba97396ed38ad0 /docs/manual/mod/mod_auth_form.html.fr | |
parent | Adjust template to align page content with table of contents (diff) | |
download | apache2-cf8ed4e44a1bc1c51d7e7df4f631a7c44f7e29f6.tar.xz apache2-cf8ed4e44a1bc1c51d7e7df4f631a7c44f7e29f6.zip |
Rebuilds Daniel's change to the order of directictives vs topics in
manual docs.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1673854 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'docs/manual/mod/mod_auth_form.html.fr')
-rw-r--r-- | docs/manual/mod/mod_auth_form.html.fr | 578 |
1 files changed, 289 insertions, 289 deletions
diff --git a/docs/manual/mod/mod_auth_form.html.fr b/docs/manual/mod/mod_auth_form.html.fr index cdbc78e5bd..1d47e5d234 100644 --- a/docs/manual/mod/mod_auth_form.html.fr +++ b/docs/manual/mod/mod_auth_form.html.fr @@ -105,295 +105,6 @@ l'authentification</a></li> </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="basicconfig" id="basicconfig">Configuration de base</a></h2> - - <p>Pour protéger une URL particulière avec le module - <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, vous devez déterminer l'endroit où - vous allez stocker votre <var>session</var>, ainsi que la méthode - d'authentification. Dans cet exemple simple, les informations de - connexion sont stockées dans une session à l'aide du module - <code class="module"><a href="../mod/mod_session_cookie.html">mod_session_cookie</a></code>, et l'authentification utilise - un fichier en s'appuyant sur le module - <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>. Si l'authentification échoue, - l'utilisateur dera redirigé vers la page du formulaire de - connexion.</p> - - <div class="example"><h3>Exemple simple</h3><pre class="prettyprint lang-config">AuthFormProvider file -AuthUserFile conf/passwd -AuthType form -AuthName realm -AuthFormLoginRequiredLocation http://example.com/login.html -Session On -SessionCookieName session path=/ -SessionCryptoPassphrase secret</pre> -</div> - - <p>L'authentification <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> est activée - en affectant la valeur <var>form</var> à la directive <code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code>. Les directives - <code class="directive"><a href="#authformprovider">AuthFormProvider</a></code> et - <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code> - spécifient que les noms d'utilisateurs et mots de passe seront - vérifiés en utilisant le fichier choisi.</p> - - <p>Les directives <code class="directive"><a href="../mod/mod_session.html#session">Session</a></code>, <code class="directive"><a href="../mod/mod_session_cookie.html#sessioncookiename">SessionCookieName</a></code> et - <code class="directive"><a href="../mod/mod_session_crypto.html#sessioncryptopassphrase">SessionCryptoPassphrase</a></code> - créent une session chiffrée stockée dans un cookie HTTP au niveau - du navigateur. Pour plus d'informations à propos des différentes - options de configuration des sessions, reportez-vous à la - documentation du module <code class="module"><a href="../mod/mod_session.html">mod_session</a></code>.</p> - - <p>Dans l'exemple simple ci-dessus, une URL a été protégée par - <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, mais on doit maintenant fournir - à l'utilisateur un moyen d'entrer un nom et un mot de passe. À cet - effet, on peut soit écrire une page de connexion indépendante - dédiée, soit inclure le formulaire de connexion dans la page - courante.</p> - </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="standalone" id="standalone">Page de connexion dédiée</a></h2> - - <p>Le formulaire de connexion peut être contenu dans une page - indépendante, ou être inclus dans la page courante. </p> - - <p>Lorsque la connexion s'effectue à partir d'une page - indépendante et si la tentative d'authentification échoue, - l'utilisateur doit être redirigé vers un formulaire de connexion, - créé à cet effet sur le site web, en utilisant la directive - <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code>. - En général, la page de connexion contiendra un formulaire HTML - demandant à l'utilisateur de fournir un nom et un mot de passe.</p> - - <div class="example"><h3>Exemple de formulaire de connexion</h3><pre class="prettyprint lang-html"><form method="POST" action="/dologin.html"> - Username: <input type="text" name="httpd_username" value="" /> - Password: <input type="password" name="httpd_password" value="" /> - <input type="submit" name="login" value="Login" /> -</form></pre> -</div> - - <p>La partie où s'effectue la connexion proprement dite est - traitée par le gestionnaire <var>form-login-handler</var>. - L'action de ce formulaire doit pointer vers ce gestionnaire, ce - que l'on configure dans Apache httpd comme suit :</p> - - <div class="example"><h3>Exemple de configuration du gestionnaire de - formulaire de connexion</h3><pre class="prettyprint lang-config"><Location /dologin.html> - SetHandler form-login-handler - AuthFormLoginRequiredLocation http://example.com/login.html - AuthFormLoginSuccessLocation http://example.com/success.html - AuthFormProvider file - AuthUserFile conf/passwd - AuthType form - AuthName realm - Session On - SessionCookieName session path=/ - SessionCryptoPassphrase secret -</Location></pre> -</div> - - <p>L'URL spécifiée par la directive - <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code> - référencera en général une page expliquant à l'utilisateur que sa - tentative de connexion a échoué, et qu'il doit la renouveler. La - directive <code class="directive"><a href="#authformloginsuccesslocation">AuthFormLoginSuccessLocation</a></code> - spécifie l'URL vers laquelle l'utilisateur doit être redirigé s'il - s'est authentifié avec succès.</p> - - <p>Alternativement, l'URL vers laquelle doit être redirigé - l'utilisateur s'il s'est authentifié avec succès peut être - intégrée dans le formulaire de connexion, comme dans l'exemple - ci-dessous. Il en découle que le même gestionnaire - <var>form-login-handler</var> pourra être utilisé pour différentes - zones du site web.</p> - - <div class="example"><h3>Exemple de formulaire d'authentification multizone</h3><pre class="prettyprint lang-html"><form method="POST" action="/dologin.html"> - Username: <input type="text" name="httpd_username" value="" /> - Password: <input type="password" name="httpd_password" value="" /> - <input type="submit" name="login" value="Login" /> - <input type="hidden" name="httpd_location" value="http://example.com/success.html" /> -</form></pre> -</div> - - </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="inline" id="inline">Connexion à la volée</a></h2> - - <div class="warning"><h3>Avertissement</h3> - <p>Il existe un risque, dans certaines circonstances, que le - formulaire de connexion configuré pour une connexion à la volée - soit soumis plusieurs fois, révélant de ce fait les paramètres - de connexion à l'application sous-jacente. L'administrateur doit - s'assurer que cette dernière est correctement sécurisée afin - d'éviter les éventuels abus. En cas de doute, utilisez une page - de connexion indépendante dédiée.</p> - </div> - - <p>Comme alternative à la page de connexion dédiée pour un site - web, il est possible de configurer <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> - pour authentifier les utilisateurs à la volée, sans les rediriger - vers une autre page, ce qui permet de conserver l'état de la page - courante au cours de la tentative de connexion. Ceci peut s'avérer - utile dans le cas d'une session limitée dans le temps, si le délai - de la session a expiré pendant la requête de l'utilisateur. Ce - dernier peut alors se réauthentifier à la même place, et - poursuivre son activité à partir du point où il en était resté.</p> - - <p>Si un utilisateur non authentifié tente d'accéder à une page - protégée par <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, et si ce dernier - n'est pas configuré avec une directive <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code>, - un code de statut <var>HTTP_UNAUTHORIZED</var> est renvoyé vers le - navigateur, indiquant à l'utilisateur qu'il n'est pas autorisé à - accéder à cette page.</p> - - <p>Pour configurer l'authentification à la volée, l'administrateur - remplace le message d'erreur renvoyé par le code de statut - <var>HTTP_UNAUTHORIZED</var> par un message d'erreur personnalisé - contenant le formulaire de connexion comme suit :</p> - - <div class="example"><h3>Exemple simple d'authentification à la volée</h3><pre class="prettyprint lang-config">AuthFormProvider file -ErrorDocument 401 /login.shtml -AuthUserFile conf/passwd -AuthType form -AuthName realm -AuthFormLoginRequiredLocation http://example.com/login.html -Session On -SessionCookieName session path=/ -SessionCryptoPassphrase secret</pre> -</div> - - <p>La page du message d'erreur doit contenir un formulaire de - connexion dont la propriété action est vide, comme dans l'exemple - ci-dessous. Ceci a pour effet de soumettre le formulaire à l'URL - protégée originale, cette dernière n'ayant pas besoin d'être - connue de la page en cours.</p> - - <div class="example"><h3>Exemple de formulaire de connexion à la volée</h3><pre class="prettyprint lang-html"><form method="POST" <strong>action=""</strong>> - Username: <input type="text" name="httpd_username" value="" /> - Password: <input type="password" name="httpd_password" value="" /> - <input type="submit" name="login" value="Login" /> -</form></pre> -</div> - - <p>Lorsque l'utilisateur final a entré ses informations de - connexion, le formulaire effectue une requête HTTP POST pour l'URL - originale protégée par mot de passe. - <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> va alors intercepter cette requête - POST, et dans le cas où des champs HTML Utilisateur et Mot de - passe corrects sont présents, l'utilisateur sera connecté, et - l'URL originale protégée par mot de passe lui sera retournée en - tant que requête GET.</p> - - </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="inlinepreservebody" id="inlinepreservebody">Connexion à la volée avec - conservation du contenu</a></h2> - - <p>Il existe une limite à la technique de connexion à la volée - décrite ci-dessus ; si un formulaire HTML POST entraîne une - demande d'authentification ou de réauthentification, le contenu du - formulaire original envoyé par le navigateur sera perdu. Cela peut - s'avérer plus ou moins gênant pour l'utilisateur final selon la - fonction du site web.</p> - - <p>Comme solution à ce problème, <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> - permet d'intégrer la méthode et le contenu de la requête originale - dans le formulaire de connexion. Si l'authentification réussit, - Apache httpd pourra refaire une tentative avec la méthode et le contenu - originaux, tout en conservant l'état de la requête originale.</p> - - <p>Pour mettre en oeuvre la conservation du contenu, vous devez - ajouter trois champs supplémentaires au formulaire de connexion - comme dans l'exemple suivant :</p> - - <div class="example"><h3>Exemple de formulaire avec conservation du - contenu</h3><pre class="prettyprint lang-html"><form method="POST" action=""> - Username: <input type="text" name="httpd_username" value="" /> - Password: <input type="password" name="httpd_password" value="" /> - <input type="submit" name="login" value="Login" /> - <br /> <strong><input type="hidden" name="httpd_method" value="POST" /> - <input type="hidden" name="httpd_mimetype" value="application/x-www-form-urlencoded" /> - <input type="hidden" name="httpd_body" value="name1=value1&name2=value2" /></strong><br /> -</form></pre> -</div> - - <p>La manière dont la méthode, le type MIME et le contenu de la - requête originale seront intégrés dans le formulaire de connexion - vont dépendre de la plate-forme et de la technologie utilisées au - sein du site web. - </p> - - <p>Une option consiste à utiliser le module - <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> en association avec la directive - <code class="directive"><a href="../mod/mod_request.html#keptbodysize">KeptBodySize</a></code>, ainsi - qu'un script CGI adapté pour intégrer les variables dans le - formulaire.</p> - - <p>Une autre option consiste à présenter le formulaire de - connexion en utilisant un script CGI ou une autre technologie - dynamique.</p> - - <div class="example"><h3>Exemple avec script CGI</h3><pre class="prettyprint lang-config"> AuthFormProvider file - ErrorDocument 401 /cgi-bin/login.cgi - ...</pre> -</div> - - </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="loggingout" id="loggingout">Déconnexion</a></h2> - - <p>Pour permettre à un utilisateur de se déconnecter d'une session - particulière, vous devez configurer une page pour qu'elle soit - traitée par le gestionnaire <var>form-logout-handler</var>. Tout - accès à cette URL va entraîner la suppression de l'Utilisateur et - du Mot de passe de la session courante, ce qui aura pour effet de - déconnecter l'utilisateur.</p> - - <p>Vous pouvez spécifier une URL vers laquelle le navigateur sera - redirigé en cas de déconnection réussie, en définissant la - directive <code class="directive"><a href="#authformlogoutlocation">AuthFormLogoutLocation</a></code>. Cette - URL devra expliquer à l'utilisateur qu'il a été déconnecté, et lui - donner la possibilité de se connecter à nouveau.</p> - - <div class="example"><h3>Exemple simple de configuration de la - déconnexion</h3><pre class="prettyprint lang-config">SetHandler form-logout-handler -AuthName realm -AuthFormLogoutLocation http://example.com/loggedout.html -Session On -SessionCookieName session path=/ -SessionCryptoPassphrase secret</pre> -</div> - - <p>Notez que la déconnexion d'un utilisateur ne supprime pas la - session ; elle supprime seulement l'utilisateur et le mot de passe - de la session. Si la session qui en résulte est vide, elle sera - probablement supprimée, mais ce n'est pas garanti. Si vous voulez - être sûr que la session sera supprimée, affectez une valeur faible - à la directive <code class="directive"><a href="../mod/mod_session.html#sessionmaxage">SessionMaxAge</a></code>, par exemple 1 - (affecter à cette directive la valeur zéro signifie une session - sans limite d'âge). - </p> - - <div class="example"><h3>Exemple simple avec durée de validité de session - limitée</h3><pre class="prettyprint lang-config">SetHandler form-logout-handler -AuthFormLogoutLocation http://example.com/loggedout.html -Session On -SessionMaxAge 1 -SessionCookieName session path=/ -SessionCryptoPassphrase secret</pre> -</div> - - </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> -<div class="section"> -<h2><a name="urlencoding" id="urlencoding">Noms d'utilisateurs et mots de - passe</a></h2> - <p>Notez que la soumission d'un formulaire implique l'encodage URL - (URLEncoding) des données du formulaire, ici le nom d'utilisateur et - le mot de passe. Vous devez donc choisir des noms d'utilisateurs et - mots de passe qui ne contiennent pas de caractères susceptibles - d'être encodés URL lors de la soumission du formulaire, sous peine - d'obtenir des résultats inattendus.</p> - </div> -<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="authformauthoritative" id="authformauthoritative">Directive</a> <a name="AuthFormAuthoritative" id="AuthFormAuthoritative">AuthFormAuthoritative</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Détermine si l'autorisation et l'authentification sont confiés à @@ -786,6 +497,295 @@ connexion</td></tr> d'utilisateur qui sera utilisé pour la connexion.</p> </div> +<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="basicconfig" id="basicconfig">Configuration de base</a></h2> + + <p>Pour protéger une URL particulière avec le module + <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, vous devez déterminer l'endroit où + vous allez stocker votre <var>session</var>, ainsi que la méthode + d'authentification. Dans cet exemple simple, les informations de + connexion sont stockées dans une session à l'aide du module + <code class="module"><a href="../mod/mod_session_cookie.html">mod_session_cookie</a></code>, et l'authentification utilise + un fichier en s'appuyant sur le module + <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>. Si l'authentification échoue, + l'utilisateur dera redirigé vers la page du formulaire de + connexion.</p> + + <div class="example"><h3>Exemple simple</h3><pre class="prettyprint lang-config">AuthFormProvider file +AuthUserFile conf/passwd +AuthType form +AuthName realm +AuthFormLoginRequiredLocation http://example.com/login.html +Session On +SessionCookieName session path=/ +SessionCryptoPassphrase secret</pre> +</div> + + <p>L'authentification <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> est activée + en affectant la valeur <var>form</var> à la directive <code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code>. Les directives + <code class="directive"><a href="#authformprovider">AuthFormProvider</a></code> et + <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code> + spécifient que les noms d'utilisateurs et mots de passe seront + vérifiés en utilisant le fichier choisi.</p> + + <p>Les directives <code class="directive"><a href="../mod/mod_session.html#session">Session</a></code>, <code class="directive"><a href="../mod/mod_session_cookie.html#sessioncookiename">SessionCookieName</a></code> et + <code class="directive"><a href="../mod/mod_session_crypto.html#sessioncryptopassphrase">SessionCryptoPassphrase</a></code> + créent une session chiffrée stockée dans un cookie HTTP au niveau + du navigateur. Pour plus d'informations à propos des différentes + options de configuration des sessions, reportez-vous à la + documentation du module <code class="module"><a href="../mod/mod_session.html">mod_session</a></code>.</p> + + <p>Dans l'exemple simple ci-dessus, une URL a été protégée par + <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, mais on doit maintenant fournir + à l'utilisateur un moyen d'entrer un nom et un mot de passe. À cet + effet, on peut soit écrire une page de connexion indépendante + dédiée, soit inclure le formulaire de connexion dans la page + courante.</p> + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="standalone" id="standalone">Page de connexion dédiée</a></h2> + + <p>Le formulaire de connexion peut être contenu dans une page + indépendante, ou être inclus dans la page courante. </p> + + <p>Lorsque la connexion s'effectue à partir d'une page + indépendante et si la tentative d'authentification échoue, + l'utilisateur doit être redirigé vers un formulaire de connexion, + créé à cet effet sur le site web, en utilisant la directive + <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code>. + En général, la page de connexion contiendra un formulaire HTML + demandant à l'utilisateur de fournir un nom et un mot de passe.</p> + + <div class="example"><h3>Exemple de formulaire de connexion</h3><pre class="prettyprint lang-html"><form method="POST" action="/dologin.html"> + Username: <input type="text" name="httpd_username" value="" /> + Password: <input type="password" name="httpd_password" value="" /> + <input type="submit" name="login" value="Login" /> +</form></pre> +</div> + + <p>La partie où s'effectue la connexion proprement dite est + traitée par le gestionnaire <var>form-login-handler</var>. + L'action de ce formulaire doit pointer vers ce gestionnaire, ce + que l'on configure dans Apache httpd comme suit :</p> + + <div class="example"><h3>Exemple de configuration du gestionnaire de + formulaire de connexion</h3><pre class="prettyprint lang-config"><Location /dologin.html> + SetHandler form-login-handler + AuthFormLoginRequiredLocation http://example.com/login.html + AuthFormLoginSuccessLocation http://example.com/success.html + AuthFormProvider file + AuthUserFile conf/passwd + AuthType form + AuthName realm + Session On + SessionCookieName session path=/ + SessionCryptoPassphrase secret +</Location></pre> +</div> + + <p>L'URL spécifiée par la directive + <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code> + référencera en général une page expliquant à l'utilisateur que sa + tentative de connexion a échoué, et qu'il doit la renouveler. La + directive <code class="directive"><a href="#authformloginsuccesslocation">AuthFormLoginSuccessLocation</a></code> + spécifie l'URL vers laquelle l'utilisateur doit être redirigé s'il + s'est authentifié avec succès.</p> + + <p>Alternativement, l'URL vers laquelle doit être redirigé + l'utilisateur s'il s'est authentifié avec succès peut être + intégrée dans le formulaire de connexion, comme dans l'exemple + ci-dessous. Il en découle que le même gestionnaire + <var>form-login-handler</var> pourra être utilisé pour différentes + zones du site web.</p> + + <div class="example"><h3>Exemple de formulaire d'authentification multizone</h3><pre class="prettyprint lang-html"><form method="POST" action="/dologin.html"> + Username: <input type="text" name="httpd_username" value="" /> + Password: <input type="password" name="httpd_password" value="" /> + <input type="submit" name="login" value="Login" /> + <input type="hidden" name="httpd_location" value="http://example.com/success.html" /> +</form></pre> +</div> + + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="inline" id="inline">Connexion à la volée</a></h2> + + <div class="warning"><h3>Avertissement</h3> + <p>Il existe un risque, dans certaines circonstances, que le + formulaire de connexion configuré pour une connexion à la volée + soit soumis plusieurs fois, révélant de ce fait les paramètres + de connexion à l'application sous-jacente. L'administrateur doit + s'assurer que cette dernière est correctement sécurisée afin + d'éviter les éventuels abus. En cas de doute, utilisez une page + de connexion indépendante dédiée.</p> + </div> + + <p>Comme alternative à la page de connexion dédiée pour un site + web, il est possible de configurer <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> + pour authentifier les utilisateurs à la volée, sans les rediriger + vers une autre page, ce qui permet de conserver l'état de la page + courante au cours de la tentative de connexion. Ceci peut s'avérer + utile dans le cas d'une session limitée dans le temps, si le délai + de la session a expiré pendant la requête de l'utilisateur. Ce + dernier peut alors se réauthentifier à la même place, et + poursuivre son activité à partir du point où il en était resté.</p> + + <p>Si un utilisateur non authentifié tente d'accéder à une page + protégée par <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, et si ce dernier + n'est pas configuré avec une directive <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code>, + un code de statut <var>HTTP_UNAUTHORIZED</var> est renvoyé vers le + navigateur, indiquant à l'utilisateur qu'il n'est pas autorisé à + accéder à cette page.</p> + + <p>Pour configurer l'authentification à la volée, l'administrateur + remplace le message d'erreur renvoyé par le code de statut + <var>HTTP_UNAUTHORIZED</var> par un message d'erreur personnalisé + contenant le formulaire de connexion comme suit :</p> + + <div class="example"><h3>Exemple simple d'authentification à la volée</h3><pre class="prettyprint lang-config">AuthFormProvider file +ErrorDocument 401 /login.shtml +AuthUserFile conf/passwd +AuthType form +AuthName realm +AuthFormLoginRequiredLocation http://example.com/login.html +Session On +SessionCookieName session path=/ +SessionCryptoPassphrase secret</pre> +</div> + + <p>La page du message d'erreur doit contenir un formulaire de + connexion dont la propriété action est vide, comme dans l'exemple + ci-dessous. Ceci a pour effet de soumettre le formulaire à l'URL + protégée originale, cette dernière n'ayant pas besoin d'être + connue de la page en cours.</p> + + <div class="example"><h3>Exemple de formulaire de connexion à la volée</h3><pre class="prettyprint lang-html"><form method="POST" <strong>action=""</strong>> + Username: <input type="text" name="httpd_username" value="" /> + Password: <input type="password" name="httpd_password" value="" /> + <input type="submit" name="login" value="Login" /> +</form></pre> +</div> + + <p>Lorsque l'utilisateur final a entré ses informations de + connexion, le formulaire effectue une requête HTTP POST pour l'URL + originale protégée par mot de passe. + <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> va alors intercepter cette requête + POST, et dans le cas où des champs HTML Utilisateur et Mot de + passe corrects sont présents, l'utilisateur sera connecté, et + l'URL originale protégée par mot de passe lui sera retournée en + tant que requête GET.</p> + + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="inlinepreservebody" id="inlinepreservebody">Connexion à la volée avec + conservation du contenu</a></h2> + + <p>Il existe une limite à la technique de connexion à la volée + décrite ci-dessus ; si un formulaire HTML POST entraîne une + demande d'authentification ou de réauthentification, le contenu du + formulaire original envoyé par le navigateur sera perdu. Cela peut + s'avérer plus ou moins gênant pour l'utilisateur final selon la + fonction du site web.</p> + + <p>Comme solution à ce problème, <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> + permet d'intégrer la méthode et le contenu de la requête originale + dans le formulaire de connexion. Si l'authentification réussit, + Apache httpd pourra refaire une tentative avec la méthode et le contenu + originaux, tout en conservant l'état de la requête originale.</p> + + <p>Pour mettre en oeuvre la conservation du contenu, vous devez + ajouter trois champs supplémentaires au formulaire de connexion + comme dans l'exemple suivant :</p> + + <div class="example"><h3>Exemple de formulaire avec conservation du + contenu</h3><pre class="prettyprint lang-html"><form method="POST" action=""> + Username: <input type="text" name="httpd_username" value="" /> + Password: <input type="password" name="httpd_password" value="" /> + <input type="submit" name="login" value="Login" /> + <br /> <strong><input type="hidden" name="httpd_method" value="POST" /> + <input type="hidden" name="httpd_mimetype" value="application/x-www-form-urlencoded" /> + <input type="hidden" name="httpd_body" value="name1=value1&name2=value2" /></strong><br /> +</form></pre> +</div> + + <p>La manière dont la méthode, le type MIME et le contenu de la + requête originale seront intégrés dans le formulaire de connexion + vont dépendre de la plate-forme et de la technologie utilisées au + sein du site web. + </p> + + <p>Une option consiste à utiliser le module + <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> en association avec la directive + <code class="directive"><a href="../mod/mod_request.html#keptbodysize">KeptBodySize</a></code>, ainsi + qu'un script CGI adapté pour intégrer les variables dans le + formulaire.</p> + + <p>Une autre option consiste à présenter le formulaire de + connexion en utilisant un script CGI ou une autre technologie + dynamique.</p> + + <div class="example"><h3>Exemple avec script CGI</h3><pre class="prettyprint lang-config"> AuthFormProvider file + ErrorDocument 401 /cgi-bin/login.cgi + ...</pre> +</div> + + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="loggingout" id="loggingout">Déconnexion</a></h2> + + <p>Pour permettre à un utilisateur de se déconnecter d'une session + particulière, vous devez configurer une page pour qu'elle soit + traitée par le gestionnaire <var>form-logout-handler</var>. Tout + accès à cette URL va entraîner la suppression de l'Utilisateur et + du Mot de passe de la session courante, ce qui aura pour effet de + déconnecter l'utilisateur.</p> + + <p>Vous pouvez spécifier une URL vers laquelle le navigateur sera + redirigé en cas de déconnection réussie, en définissant la + directive <code class="directive"><a href="#authformlogoutlocation">AuthFormLogoutLocation</a></code>. Cette + URL devra expliquer à l'utilisateur qu'il a été déconnecté, et lui + donner la possibilité de se connecter à nouveau.</p> + + <div class="example"><h3>Exemple simple de configuration de la + déconnexion</h3><pre class="prettyprint lang-config">SetHandler form-logout-handler +AuthName realm +AuthFormLogoutLocation http://example.com/loggedout.html +Session On +SessionCookieName session path=/ +SessionCryptoPassphrase secret</pre> +</div> + + <p>Notez que la déconnexion d'un utilisateur ne supprime pas la + session ; elle supprime seulement l'utilisateur et le mot de passe + de la session. Si la session qui en résulte est vide, elle sera + probablement supprimée, mais ce n'est pas garanti. Si vous voulez + être sûr que la session sera supprimée, affectez une valeur faible + à la directive <code class="directive"><a href="../mod/mod_session.html#sessionmaxage">SessionMaxAge</a></code>, par exemple 1 + (affecter à cette directive la valeur zéro signifie une session + sans limite d'âge). + </p> + + <div class="example"><h3>Exemple simple avec durée de validité de session + limitée</h3><pre class="prettyprint lang-config">SetHandler form-logout-handler +AuthFormLogoutLocation http://example.com/loggedout.html +Session On +SessionMaxAge 1 +SessionCookieName session path=/ +SessionCryptoPassphrase secret</pre> +</div> + + </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> +<div class="section"> +<h2><a name="urlencoding" id="urlencoding">Noms d'utilisateurs et mots de + passe</a></h2> + <p>Notez que la soumission d'un formulaire implique l'encodage URL + (URLEncoding) des données du formulaire, ici le nom d'utilisateur et + le mot de passe. Vous devez donc choisir des noms d'utilisateurs et + mots de passe qui ne contiennent pas de caractères susceptibles + d'être encodés URL lors de la soumission du formulaire, sous peine + d'obtenir des résultats inattendus.</p> + </div> </div> <div class="bottomlang"> <p><span>Langues Disponibles: </span><a href="../en/mod/mod_auth_form.html" hreflang="en" rel="alternate" title="English"> en </a> | |