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

Apache Discussion :

mod_proxy et URL rewriting pour protéger plusieurs sites par authentification


Sujet :

Apache

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 19
    Points : 10
    Points
    10
    Par défaut mod_proxy et URL rewriting pour protéger plusieurs sites par authentification
    Bonjour voici le virtualhost de mon reverse proxy qui fonctionne mais il manque une fonctionnalité que j'aimerais.
    Le reverse proxy est sur le reseau local. Et ensuite il communique avec d'autres serveurs avec un parefeu entre.

    Avec un client sur mon reseau local qui ne communique qu'avec le reverse proxy (pas les autres serveurs)
    - quand je fais http://www.domaine.local/toutsaufsla... slashowncloud -> il m'envoie vers serv1
    - quand je fais www.domaine.local/subsonic -> il m'envoie vers serv2
    - quand je fais www.domaine.local/owncloud -> il m'envoie vers serv3

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <VirtualHost *:80>
    #
    ServerName www.domaine.local
     
    ProxyRequests Off
    ProxyPreserveHost On
     
     
    ProxyPass /subsonic/ http://serv2.domaine.local/subsonic/
    ProxyPassReverse /subsonic/ http://serv2.domaine.local/subsonic/
     
    ProxyPass /owncloud/ http://serv3.domaine.local/owncloud/
    ProxyPassReverse /owncloud/ http://serv3.domaine.local/owncloud/
     
    ProxyPass / http://serv1.domaine.local/                              
    ProxyPassReverse / http://serv1.domaine.local/
     
    </VirtualHost>

    Jusque là ça va


    Cependant sur serv1 j'ai une appli maison avec gestion des utilisateurs et sessions (mysql + annuaire ldap) et souhaiterais que seuls des utilisateurs authentifié sur mon appli(sur serv1), puissent avoir accès a la redirection vers serv2 ou serv3



    En gros je voudrais que le reverse proxy fasse :
    SI tu n'as pas une variable de session = true, Tu ne vois que cette partie du virtualhost
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ProxyPass / http://serv1.domaine.local/
    ProxyPassReverse / http://serv1.domaine.local/
    et celle ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ProxyPass /subsonic/ http://serv2.domaine.local/subsonic/
    ProxyPassReverse /subsonic/ http://serv2.domaine.local/subsonic/
    ProxyPass /owncloud/ http://serv3.domaine.local/owncloud/
    ProxyPassReverse /owncloud/ http://serv3.domaine.local/owncloud/
    tu n'y a pas droit ...


    Autrement dit je voudrais que mon reverse proxy puisse savoir si la requete http qui vient du client, comporte des infos d'authentification provenant de mon appli maison, et en fonction de ça donner acces à + ou - de redirections vers d'autres serveurs/applis

    Merci de votre aide. J'essai d'apprivoiser apache mais je trouve assez difficile, il se peut que je n'utilise pas la bonne méthode (reverse proxy) pour arriver à ce que je veux faire.
    Mais l'avantage que je trouve dans le reverse proxy c'est que le client n'a besoin de faire qu'une seule résolution de DNS ....


    Bonne journée

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    C'est compliqué comme problème. La manière la plus logique et élégante de le résoudre c'est de mettre en place un SSO entre tes applications. Car tu pourras imaginer des trucs avec des cookies, etc., Apache ne sera jamais honnêtement en mesure de dire si l'authentification sur le premier site a été un succès ou pas.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    Merci pour ta réponse.

    Je vais chercher de la doc sur le sso aurais tu des pistes ?
    En fait ce que je veux est un reverse portail captif

    Mais malheureusement, seule l'appli de base est "mon appli" le reste sont des appli opensource (streaming de musique, documents ..)
    Donc je ne sais pas si elles accepteront le sso ...

    Tu me diras que chaque appli opensource a son propre systeme d'authentification connecté au ldap, donc la securité est là .. Mais j'aurais aimé centraliser la connexion par mon appli pour donner des droits et des infos specifiques a chaque personne une fois celle ci connectées ..

    Arf je vais refarfouiller dans mon pfsense, entre le reverse proxy et le portail captif je vais bien trouver .... enfin c'est pas sur

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Dans ce cas, pourquoi ne pas chercher et utiliser directement une solution de portail captif ?

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    arf j'ai pas l'impression que ce sera assez souple pour mes besoins
    (1 utilisateur peut acceder a 0 ou N application) Donc si tu n'as pas/plus de compte pas besoin que tu accedes a l'url ...

    Est ce que avec REWRITE COND je pourrais pas tester une variable que j'aurais modifié en php, et du coup si tu as telle variable (HTTP-TRUC) tu accede a telle regle de reverse proxy ?

  6. #6
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Vu ce que tu disais à 21h52, c'est vraiment du SSO que tu veux ("centraliser la connexion par mon appli"). Après, si le fait de s'authentifier éventuellement 2 ou 3 fois n'est pas gênant, tu peux effectivement imaginer au moins 2 choses :
    1. Sur ton application, lorsque l'authentification est correcte, tu positionnes un cookie à une valeur bien précise et tu vérifies avec une RewriteCond (tu remplaces tes ProxyXxx par mod_rewrite) que le cookie est positionné. Le gros défaut de cette approche est qu'un cookie, ça se forge, ça se contourne facilement.
    2. Tu ne changes pas l'authentification de ton application, mais tu utilises mod_ext_filter avec un script en PHP qui est capable de vérifier la session de l'utilisateur. Si celle-ci n'est pas bonne ou a expiré, ton filtre redirige l'utilisateur vers ton application. C'est ce qu'il y aurait de mieux mais je ne saurais dire si c'est réellement possible.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    Super merci ! En début de semaine prochaine je testerai ta 2eme proposition. Et sinon je passerai par des cookies.

Discussions similaires

  1. Réponses: 61
    Dernier message: 29/12/2016, 12h58
  2. URL Rewriting pour site multi-langue (?lang=fr|en)
    Par Blabla72 dans le forum Apache
    Réponses: 3
    Dernier message: 22/06/2015, 16h16
  3. Réponses: 6
    Dernier message: 12/12/2010, 01h12
  4. URL rewriting pour un générateur de sites (CMS)
    Par vince-nantes dans le forum Apache
    Réponses: 5
    Dernier message: 25/03/2010, 11h28
  5. URL rewriting pour une meilleure visibilité
    Par Yoteco dans le forum MVC
    Réponses: 13
    Dernier message: 30/08/2007, 20h50

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