Proxification d'une application avec le Security-Proxy

73 views
Skip to first unread message

Sébastien Vigroux

unread,
Feb 11, 2021, 3:23:26 AM2/11/21
to georchestra
Bonjour tous le monde,

Je suis en train de placer un drupal derrière le Security-Proxy. J'ai donc mis en place une plateforme georchestra en local (avec docker) pour faire mes tests.
Tout fonctionne correctement et je m'attaque donc à la configuration du security-proxy.

En suivant les instructions suivantes https://github.com/georchestra/georchestra/blob/master/security-proxy/README.md#how-to-integrate-a-new-application-in-georchestra- , j'ai ajouté l'url de mon application dans targets-mapping.properties
Quand j'accède à l'URL, https://georchestra.mydomain.org/monApp, je suis bien redirigé vers mon application (je n'ai pas encore verifié que les headers sont présent mais je pense qu'il n'y a pas de soucis), en revanche tous les scripts de ma page qui sont en absolu (par exemple: <link rel="stylesheet" media="all" href="/core/modules/system/css/components/align.module.css?qnp8jo">) sont appelé à l'URL suivante : https://georchestra.mydomain.org/core/modules/system/css/components/align.module.css?qnp8jo et donc j'obtiens une erreur 404.

Il y a probablement quelque chose que j'ai mal compris dans la configuration ou dans le fonctionnement. Est-ce que vous pourriez éclairer ma lanterne ?

Bonne journée,
Sébastien Vigroux

Remi Desgrange

unread,
Feb 11, 2021, 8:03:53 AM2/11/21
to georc...@googlegroups.com
Bonjour.

Il faut effectivement que t'es assets dans ta page soient référencé de manière relative.

Je viens de lancer un container https://hub.docker.com/r/containous/whoami derrière le SP. Une requêtes vers ce conteneur te renvoie tout les headers utilisé. Dans mon cas j'ai:

...redacted...
X-Forwarded-For: 172.29.0.1
X-Forwarded-Host: georchestra.mydomain.org
X-Forwarded-Port: 443
X-Forwarded-Proto: https
X-Forwarded-Server: 66aa466dd320
... redacted... 

On voit bien ici qu'il nous manque un X-Forwarded-Path. Je ne connais pas Drupal mais je crois que c'est du symfony comme base non ? dans ce cas on doit pouvoir configurer quelque chose.


--
--
Vous avez reçu ce message, car vous êtes abonné au groupe
Groupe "georchestra" georc...@googlegroups.com
voir http://groups.google.fr/group/georchestra
 
Site web : http://www.georchestra.org

---
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes "georchestra".
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse georchestra...@googlegroups.com.
Cette discussion peut être lue sur le Web à l'adresse https://groups.google.com/d/msgid/georchestra/33471c70-bef5-4fde-a167-f6cbe02ffce9n%40googlegroups.com.


--
Cordialement, Rémi Desgrange

Sébastien Vigroux

unread,
Feb 11, 2021, 3:53:56 PM2/11/21
to georchestra
Bonjour,

Si je comprend bien, tu veux dire que le SP devrait me renvoyer l'url initiale (monapp.com) de mon appli dans le header X-Forwarded-Path afin que j'utilise cette valeur pour remplacer dans tous mes liens en absolu ?

Sinon j'ai également fait des tests en mettant dans la configuration du SP tous les mappings qui vont vers mon application

.....
....

mais je ne sais pas si c'est une solution intéressante.

(En faisant, ça j'ai également rencontré un problème avec les URLs qui sont sous la forme suivante : https://georchestra.mydomain.org/api/datasets/2.0/search/facet.field=[%22organization%22,%22tags%22,%22theme%22,%22features%22]&rows=12&start=0&q=text:undefined&coordReq=() . La partie en gars ne semblent pas être accepté par le SP).

Bonne soirée,
Sébastien

Remi Desgrange

unread,
Feb 12, 2021, 2:46:09 AM2/12/21
to georc...@googlegroups.com
Non, actuellement tu a un header X-Forwarded-Host. Qui te donne le domaine (qui prévaut sur le header Host quand il est présent). Tu dois en réalité expliquer a ton appli qu'elle pointe vers monapp.com/monPathPrefix au lieu de monapp.com.

Exemple avec Symfony (mais je ne sais comment drupal surcharge ça) https://symfony.com/doc/current/deployment/proxies.html



--
Cordialement, Rémi Desgrange

Sébastien Vigroux

unread,
Feb 19, 2021, 3:32:16 AM2/19/21
to georchestra
Bonjour,

Merci pour la réponse. J'ai pu mettre mon application dans un subdirectory pour obtenir une structure monapp.com/monPathPrefix (non sans mal :) ).

Je suis en train de refaire mes tests derrière le SP mais j'ai un soucis au niveau du format d'une URL (c'est le même qu'évoqué plus haut).
Je fais l'appel en ajax et j'obtiens une erreur 503.
https://georchestra.mydomain.org/data4citizen/d4c/api/datasets/2.0/search/facet.field=[%22organization%22,%22tags%22,%22theme%22,%22features%22]&rows=14&start=0

Est-ce que tu aurais une idée s'il y a des charactères non acceptés par le proxy ?

Pierre Mauduit

unread,
Feb 19, 2021, 4:25:37 AM2/19/21
to georc...@googlegroups.com
Sébastien Vigroux a écrit :
> Bonjour,
>
> Merci pour la réponse. J'ai pu mettre mon application dans un subdirectory pour
> obtenir une structure monapp.com/monPathPrefix (non sans mal :) ).
>
> Je suis en train de refaire mes tests derrière le SP mais j'ai un soucis au
> niveau du format d'une URL (c'est le même qu'évoqué plus haut).
> Je fais l'appel en ajax et j'obtiens une erreur 503.
> https://georchestra.mydomain.org/data4citizen/d4c/api/datasets/2.0/search/
> facet.field=[%22organization%22,%22tags%22,%22theme%22,%22features%22]&rows=14&
> start=0
>
> Est-ce que tu aurais une idée s'il y a des charactères non acceptés par le
> proxy ?

Au moins les point-virgules, cf la doc de spring-security:
https://docs.spring.io/spring-security/site/docs/4.2.20.RELEASE/apidocs/org/springframework/security/web/firewall/StrictHttpFirewall.html

Normalement il y a une option dans le datadir pour désactiver cela:
https://github.com/georchestra/datadir/blob/master/security-proxy/security-proxy.properties#L170-L172

Mais ce n'est prévu coté geOrchestra que pour les points-virgule, normalement il
faut normaliser les urls avant de les envoyer.

Après, l'erreur 500 n'est pas très jolie, on a une issue github ouverte sur le
sujet:
https://github.com/georchestra/georchestra/issues/3295


-- Pierre
Reply all
Reply to author
Forward
0 new messages