IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Partage de session entre deux applications [2.x]


Sujet :

Symfony PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 54
    Points : 35
    Points
    35
    Par défaut Partage de session entre deux applications
    Bonjour,

    Pour le besoin d'un projet, je souhaiterais partager une session entre deux applications.
    Ces deux applications vont partager quelques données en base et le switch de l'une vers l'autre devrait se faire de manière transparente, c'est-à-dire sans reconnexion.
    Faire une seule application serait très (trop) lourd, certains n'ayant accès qu'à une des deux (avec des droits limités à l'intérieur), certains objets étant relativement différents. La première application n'étant pas documentée (elle n'est pas de moi), le risque est très grand.

    Savez-vous comment faire pour partager une session de manière transparente ?

    Merci de votre aide

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 98
    Points : 163
    Points
    163
    Par défaut
    C'est pas possible directement en PHP pure, je m'explique:
    Tes objets ne vivent que la durée de l'execution d'un script, après ils sont détruits, et construits si besoin.
    En revanche ce qui est possible c'est de mettre en place une communication ( je te conseille vivement un webservice REST ) entre les deux applications.

    Certains bundles vont t'aider FosRestBundle, JSMserializer.

    C'est pas mal de boulot, mais je ne vois pas comment faire sinon.

    Une solution simple, c'est de connecter les deux applis à la meme base de donnés...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 54
    Points : 35
    Points
    35
    Par défaut
    Ah non, je me suis mal exprimé.
    Je voulais parler d'une session utilisateur, c'est-à-dire passer d'une application à l'autre sans avoir à se (re)connecter.
    Avoir comme Google par exemple : on peut passer de GMail à Drive sans avoir à se reconnecter.

    La base sera bien partagée oui. Pour le reste (les objets etc.), cela n'est pas utile.

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 98
    Points : 163
    Points
    163
    Par défaut
    C'est une mauvaise pratique de partager une session, tu crée du couplage, tes applications ne sont plus indépendantes, tu dois vérifier les donnés issues de la session avant de les utiliser, le risque de conflit est important, tu vas vite bourrer tes session, mais si tu y tiens vraiment c'est possible, tes sesssions sont stockés au niveau serveur, c'est "indépentant" de PHP, toutes les applications sur le meme serveur ont accès aux sessions sur le serveur.

    Google/Gmail/autre services google te demandes tous de te connecter la premiere fois, et stockent un cookie encrypté qui sert à la connexion.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 54
    Points : 35
    Points
    35
    Par défaut
    Je n'y tiens pas vraiment personnellement mais on m'a demandé de ne surtout pas avoir à se reconnecter...
    Je pourrais tout faire dans la même application mais j'ai peur des impacts, l'application de base est lourde et mal codée (du genre à être passée par deux frameworks différents)...

    Bon, je vais voir.
    Mais au cas où, pour le cookie, il me suffit de spécifier à mes applications symfony d'utiliser tel cookie (le même) ?

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 98
    Points : 163
    Points
    163
    Par défaut
    Oui c'est le concept, mais niveau sécurité, c'est tendu...
    Je te relance sur la BDD pourquoi si les deux appli partagent la meme bdd, ne pas juste permettre aux users de se conncter la premiere fois, et un "remember me" assez large derriere ?

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 168
    Points : 219
    Points
    219

  8. #8
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Points : 1 050
    Points
    1 050
    Par défaut
    Bonjour,


    ça devrait t'interesser également :

    "Parfois, il peut être nécessaire d'intégrer Symfony dans une vieille application ("legacy") où vous n'avez pas le niveau de contrôle dont vous avez besoin."
    http://symfony.com/fr/doc/current/co...hp_bridge.html

  9. #9
    Membre actif
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 546
    Points : 219
    Points
    219
    Par défaut
    Et pourquoi ne pas jouer avec les bundles ?
    Genre un bundle de base de donnée, un bundle pour l'appliA et un autre pour l'appliB et ca reste la même appli...
    Jérôme

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 54
    Points : 35
    Points
    35
    Par défaut
    Au final, nous allons rester sur une seule et même application (le cahier des charges à évolué).
    Mais merci de votre aide, cette lecture me sera utile dans le futur j'imagine.

  11. #11
    Expert éminent
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 418
    Points : 7 295
    Points
    7 295
    Par défaut
    Pour le futur, on a ici affaire a un typique cas de mise en place de SSO. (single sign on).*

    Il existe plusieurs façon de le mettre en place.

    Par kerberos, par CAS / SAML, oauth, NTLM je crois aussi, etc...

    En général, tu as une application vers laquelle tu redirige toutes les demandes de connexion. Cette appli te renvoie un cookies qui te garantie que l'auth s'est bien passé.

    Avantages de cette solution :
    - on écrit moins son mot de passe
    - si on parle d'un mot de passe réseau, on ne l'entre pas sur toutes les applications du SSO. On réduit donc les possibilité de récupération du mot de passe depuis l'application. (quand on soumet le formulaire, on fait forcement passé la donnée par le serveur, elle peut donc être capturée) Si on a pas toute confiance dans les développeurs ca peut être bien.
    - on sécurisé vraiment 1 serveur, les autres n'étant pas si important.(les audit de sécu sont plus simple)

    Si quelqu'un a ce besoin, c'est un peu chiant a mettre en place, mais pas impossible.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.4] Partage session entre deux domaines - Memcache
    Par Vrugar dans le forum Langage
    Réponses: 0
    Dernier message: 20/09/2013, 12h19
  2. Réponses: 4
    Dernier message: 02/11/2011, 09h43
  3. Partage de préférences entre deux applications
    Par nicroman dans le forum Android
    Réponses: 13
    Dernier message: 17/08/2011, 21h29
  4. Réponses: 0
    Dernier message: 07/07/2011, 14h12
  5. Transmission de sessions entre deux applications tomcat
    Par nicorama dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 09/12/2007, 13h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo