From adf0ea8cebe551c292589f52968d9c2d54f44ba8 Mon Sep 17 00:00:00 2001
From: Lucien Gentis L'authentification à base de formulaire dépend des modules
+ L'authentification à base de formulaire dépend des modules
Ce module permet de restreindre l'accès en recherchant les
- utilisateurs dans les fournisseurs spécifiés à l'aide d'un
- formulaire de connexion HTML. Les formulaires HTML requièrent
- davantage de configuration que les méthodes d'authentification
- alternatives, mais ils peuvent s'avérer beaucoup plus conviviaux
+ Ce module permet de restreindre l'accès en recherchant les
+ utilisateurs dans les fournisseurs spécifiés à l'aide d'un
+ formulaire de connexion HTML. Les formulaires HTML requièrent
+ davantage de configuration que les méthodes d'authentification
+ alternatives, mais ils peuvent s'avérer beaucoup plus conviviaux
pour les utilisateurs.
L'authentification HTTP de base est fournie par le module
- Lorsque l'utilisateur a été authentifié avec succès, ses
- informations de connexion sont stockés dans une session fournie par
+ Lorsque l'utilisateur a été authentifié avec succès, ses
+ informations de connexion sont stockés dans une session fournie par
le module Pour protéger une URL particulière avec le module
- Pour protéger une URL particulière avec le module
+ L'authentification
Les directives
Dans l'exemple simple ci-dessus, une URL a été protégée par +
Vous pouvez éventuellement ajouter une directive
Dans l'exemple simple ci-dessus, une URL a été protégée par
Le formulaire de connexion peut être contenu dans une page - indépendante, ou être inclus dans la page courante.
+Le formulaire de connexion peut être contenu dans une page + indépendante, ou être inclus dans la page courante.
-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 +
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
La partie où s'effectue la connexion proprement dite est - traitée par le gestionnaire form-login-handler. +
La partie où s'effectue la connexion proprement dite est + traitée par le gestionnaire form-login-handler. L'action de ce formulaire doit pointer vers ce gestionnaire, ce que l'on configure dans Apache httpd comme suit :
@@ -157,11 +164,11 @@ SessionCryptoPassphrase secret <Location "/dologin.html"> SetHandler form-login-handler AuthFormLoginRequiredLocation "http://example.com/login.html" - AuthFormLoginSuccessLocation "http://example.com/success.html" + AuthFormLoginSuccessLocation "http://example.com/admin/index.html" AuthFormProvider file AuthUserFile "conf/passwd" AuthType form - AuthName realm + AuthName /admin Session On SessionCookieName session path=/ SessionCryptoPassphrase secret @@ -169,20 +176,20 @@ SessionCryptoPassphrase secret -L'URL spécifiée par la directive +
L'URL spécifiée par la directive
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 - form-login-handler pourra être utilisé pour différentes + spécifie l'URL vers laquelle l'utilisateur doit être redirigé s'il + s'est authentifié avec succès.
+ +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 + form-login-handler pourra être utilisé pour différentes zones du site web.
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.
+ 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.Comme alternative à la page de connexion dédiée pour un site +
Comme alternative à la page de connexion dédiée pour un site
web, il est possible de configurer
Si un utilisateur non authentifié tente d'accéder à une page
- protégée par Si un utilisateur non authentifié tente d'accéder à une page
+ protégée par
Pour configurer l'authentification à la volée, l'administrateur - remplace le message d'erreur renvoyé par le code de statut - HTTP_UNAUTHORIZED par un message d'erreur personnalisé +
Pour configurer l'authentification à la volée, l'administrateur + remplace le message d'erreur renvoyé par le code de statut + HTTP_UNAUTHORIZED par un message d'erreur personnalisé contenant le formulaire de connexion comme suit :
-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 + 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.
-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.
-
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.
+
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 +
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.
-Comme solution à ce problème,
Comme solution à ce problème,
Pour mettre en oeuvre la conservation du contenu, vous devez - ajouter trois champs supplémentaires au formulaire de connexion + ajouter trois champs supplémentaires au formulaire de connexion comme dans l'exemple suivant :
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 +
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.
-Une option consiste à utiliser le module +
Une option consiste à utiliser le module
Une autre option consiste à présenter le formulaire de +
Une autre option consiste à présenter le formulaire de connexion en utilisant un script CGI ou une autre technologie dynamique.
@@ -334,54 +340,52 @@ SessionCryptoPassphrase secretPour 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 form-logout-handler. Tout - accès à cette URL va entraîner la suppression de l'Utilisateur et +
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 form-logout-handler. 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.
+ déconnecter l'utilisateur. -Vous pouvez spécifier une URL vers laquelle le navigateur sera - redirigé en cas de déconnection réussie, en définissant la +
Vous pouvez spécifier une URL vers laquelle le navigateur sera
+ redirigé en cas de déconnection réussie, en définissant la
directive
Notez que la déconnexion d'un utilisateur ne supprime pas la +
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
Notez que la soumission d'un formulaire implique l'encodage URL - (URLEncoding) des données du formulaire, ici le nom d'utilisateur et + (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.
+ 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.La directive file
est implémenté par le module
+ définir quel fournisseur sera utilisé pour authentifier les
+ utilisateurs pour la zone concernée. Le fournisseur par défaut
+ file
est implémenté par le module
Les différents fournisseurs sont implémentés par les modules +
Les différents fournisseurs sont implémentés par les modules
Normalement, chacun des modules d'autorisation spécifiés par la +
Normalement, chacun des modules d'autorisation spécifiés par la
directive Off
on
- confie les processus d'authentification et d'autorisation à des
+ Off
on
+ confie les processus d'authentification et d'autorisation à des
modules ne s'appuyant pas sur des fournisseurs, si aucun
- identifiant utilisateur ou aucune règle ne
- correspond à l'identifiant utilisateur fourni. Ceci ne peut s'avérer
- nécessaire que si l'on combine
La directive
La directive
La directive
La directive
En ajoutant au formulaire les champs décrits dans
La directive
En ajoutant au formulaire les champs décrits dans
La directive
En ajoutant au formulaire les champs décrits dans
La directive
Si une requête de connexion entrante possède une taille - supérieure à cette valeur, elle sera rejetée avec le code de réponse +
Si une requête de connexion entrante possède une taille
+ supérieure à cette valeur, elle sera rejetée avec le code de réponse
HTTP HTTP_REQUEST_TOO_LARGE
.
Si vous avez ajouté au formulaire des champs décrits dans
La directive HTTP_UNAUTHORIZED
est renvoyé avec la
- page spécifiée par la directive HTTP_UNAUTHORIZED
est renvoyé avec la
+ page spécifiée par la directive
Vous pouvez utiliser cette directive si vous voulez présenter une - page de connexion personnalisée à vos utilisateurs.
+Vous pouvez utiliser cette directive si vous voulez présenter une + page de connexion personnalisée à vos utilisateurs.
La directive
Vous pouvez utiliser cette directive si vous possédez une URL de - connexion personnalisée, et si vous n'avez pas intégré la page de +
Vous pouvez utiliser cette directive si vous possédez une URL de + connexion personnalisée, et si vous n'avez pas intégré la page de destination dans le formulaire de connexion.
Le drapeau Authentification de base
- sera ajoutée aux en-têtes de la requête. On peut utiliser cette
- méthode pour présenter le nom d'utilisateur et le mot de passe à
- l'application sous-jacente, sans que cette dernière ait besoin de
- connaître la manière dont le processus de connexion a été mené à
+ détermine si une en-tête d'Authentification de base
+ sera ajoutée aux en-têtes de la requête. On peut utiliser cette
+ méthode pour présenter le nom d'utilisateur et le mot de passe Ã
+ l'application sous-jacente, sans que cette dernière ait besoin de
+ connaître la manière dont le processus de connexion a été mené Ã
bien.
La directive
Lorsqu'un accès est tenté sur un URI traité par le gestionnaire
- form-logout-handler
, la page spécifiée par cette
- directive sera présentée à l'utilisateur final. Par exemple :
Lorsqu'un accès est tenté sur un URI traité par le gestionnaire
+ form-logout-handler
, la page spécifiée par cette
+ directive sera présentée à l'utilisateur final. Par exemple :
Si un utilisateur tente d'accéder à l'URI /logout/, il - sera déconnecté, et la page /loggedout.html lui sera - présentée. Assurez-vous que la page loggedout.html n'est - pas protégée par mot de passe, car dans le cas contraire, elle ne - serait pas affichée.
+Si un utilisateur tente d'accéder à l'URI /logout/, il + sera déconnecté, et la page /loggedout.html lui sera + présentée. Assurez-vous que la page loggedout.html n'est + pas protégée par mot de passe, car dans le cas contraire, elle ne + serait pas affichée.
Le drapeau Cache-Control no-store
lorsqu'une
- page avec code d'erreur 401 est renvoyée, si l'utilisateur n'est pas
- encore connecté. Avec cette en-tête, il est plus difficile pour une
+ l'envoi d'un en-tête Cache-Control no-store
lorsqu'une
+ page avec code d'erreur 401 est renvoyée, si l'utilisateur n'est pas
+ encore connecté. Avec cette en-tête, il est plus difficile pour une
application ecmascript
de resoumettre un formulaire de connexion, et
- ainsi révéler le nom d'utilisateur et le mot de passe à
- l'application sous-jacente. Vous devez être conscient des risques
- encourus si vous le désactivez.
La directive
On peut insérer le mot de passe dans une session utilisateur en - ajoutant cette directive à la configuration concernant le +
On peut insérer le mot de passe dans une session utilisateur en + ajoutant cette directive à la configuration concernant le gestionnaire form-login-handler. Le gestionnaire - form-login-handler, quant à lui, effectuera toujours les - vérifications d'authentification, qu'un mot de passe soit spécifié + form-login-handler, quant à lui, effectuera toujours les + vérifications d'authentification, qu'un mot de passe soit spécifié ou non.
Si la session est présentée à l'utilisateur à l'aide du module +
Si la session est présentée à l'utilisateur à l'aide du module