2009-09-23 8 views
2

Je suis curieux de savoir quelles sont les répercussions sur les performances de l'utilisation de HTTP Basic Auth sur un serveur Web comme Apache ou lighttpd ou nginx. J'imagine que le goulot d'étranglement est la lecture réelle du fichier par le serveur pour authentifier un utilisateur. Il me semble également que le coût de lecture du fichier pour authentifier un utilisateur est proportionnel au nombre d'utilisateurs dans ce fichier. 1. Y a-t-il un nombre spécifique d'utilisateurs pour lesquels le fichier d'authentification de base commence à chuter dramatiquement ou est-il linéaire par rapport au nombre d'utilisateurs dans le fichier?
2. Étant donné la nature sans état de http, si un utilisateur a été authentifié en utilisant HTTP Basic Auth par le serveur Web sur une requête:
- transfère-t-il simplement les informations d'identification sur chaque requête et le serveur Web doit analyser le fichier de mot de passe à chaque fois. afin de déterminer s'il s'agit d'une demande d'un utilisateur valide?
ou
- obtenir quelque chose comme un jeton qu'il utilise dans l'en-tête http sur les demandes suivantes, permettant au serveur d'éviter d'analyser à nouveau le fichier de mot de passe?Authentification HTTP de base, lecture du fichier de mot de passe et performances

merci à l'avance

Répondre

3
  1. Relativement linéaire. Je ne m'inquiéterais pas. HTTP Basic Auth est avéré être évolutif. Prenez l'API Twitter comme exemple. Il utilise l'authentification de base.

  2. « Parce que le protocole HTTP est sans état, chaque demande sera traitée de la même manière, même si elles sont du même client. Ainsi, toutes les ressources qui sont demandées à partir du serveur devra fournir l'authentification Les informations d'identification sont récupérées afin de recevoir la ressource Heureusement, le navigateur s'occupe des détails ici, de sorte qu'il vous suffit de taper votre nom d'utilisateur et votre mot de passe une fois par session de navigateur - vous devrez peut-être taper à nouveau la prochaine fois que vous ouvrez votre navigateur et visitez le même site Web. "

informations détaillées dans le Apache Auth documentation.

+0

merci. fondamentalement waht je regarde est un backend django fonctionnant sur apache2 avec mod_wsgi et lighttpd ou nginx sur le front. Il semblerait que cela serait coûteux si l'authentification des médias sécurisés était gérée par django car chaque requête pour chaque élément de média statique devrait atteindre django, s'authentifier, puis remonter à nginx ou à lighttpd. Je me demandais juste si faire une authentification de base au niveau lighttpd ou nginx serait moins cher. c'est certainement plus simple. –

0

un fichier une fois Parsing à l'ouverture de session devrait évoluer assez bien, peu importe combien d'utilisateurs il y a. Je ne m'inquiéterais vraiment pas à ce sujet. À l'avenir, vous pouvez développer une approche basée sur une base de données avec une indexation appropriée. Je soupçonne de tous les goulots d'étranglement que vous allez rencontrer dans le développement d'un site, Basic Auth ne sera pas l'un d'entre eux pour très longtemps - à moins que votre serveur web soit VASTE sous-alimenté.

1

Mon expérience est avec Apache 2.x seulement.

  1. Oui. Ce sera linéaire avec le fournisseur d'authentification par défaut (fichier). Il utilise ap_cfg_getline() donc il sera linéaire au nombre de lignes (utilisateurs).
  2. Oui. mod_aaa doit analyser le mot de passe à chaque fois. Vous pouvez utiliser quelque chose comme MemCookie pour l'authentification par cookie ou par jeton.
Questions connexes