2011-09-14 4 views
13

J'ai une application Flask sur mon réseau local qui se connecte à un serveur de messagerie et à un service Web. Tous les trois utilisent la même source d'authentification LDAP, et je voudrais éviter d'exiger que les utilisateurs fournissent les mêmes informations d'identification chaque fois que l'application se connecte à l'une de ces interfaces.Comment stocker en toute sécurité des informations d'identification par session dans Flask

Quel est le moyen le plus sûr de conserver les informations d'identification d'un utilisateur pour la durée de la session afin qu'elles puissent être partagées avec les autres interfaces?

Une option que j'ai trouvée est Flask-KVSession, qui stocke les variables de session côté serveur.


Mise à jour: Lors des essais, j'ai expérimenté laisser tomber les pouvoirs en un dict dans app.config lorsqu'un utilisateur se connecte Il semble que ce devrait être une mauvaise idée, mais je n'ai pas compris pourquoi. encore. Je sais que cela crée la possibilité pour les informations d'identification pour une session active de disparaître, mais il est assez facile de voir si elles existent et de les inviter à nouveau si elles ne le font pas. De plus, ils ne seront pas écrits dans le système de fichiers comme les variables dans les sessions côté serveur.

J'aimerais savoir s'il me manque des problèmes évidents avec cette approche.

Répondre

12

Je voudrais certainement utiliser quelque chose comme Flask-KVSession pour stocker les informations d'identification de l'utilisateur dans la session côté serveur (+1 pour cela - je n'avais pas vu cette extension auparavant). Cela garantira que vous ne transmettez pas les informations d'identification de l'utilisateur dans un cookie. J'ajouterais Flask-Login pour traiter les parties les plus intéressantes de la gestion de session sans avoir à découvrir tous les problèmes vous-même.

Dropping les informations d'identification dans app.config n'est pas une bonne idée car app.config est pas un LocalProxyet thread-safe est donc pas. Vous n'êtes pas garanti que les modifications que vous apportez à app.config pour une demande seront et non liquidation affectant d'autres demandes. (Vous pouvez en savoir plus sur les localités contextuelles here et here).

+0

Merci pour l'explication. J'étais préoccupé par les mots de passe enregistrés avec les sessions sur le serveur, mais il est possible d'utiliser un magasin en mémoire, ce qui ne devrait même pas être un problème. –

+0

Comment utiliser Flask-Login au dessus de Flask-KVSession? –

Questions connexes