Intégration de Fab Manager sur un site tier via iframe – X-Frame-Options SAMEORIGIN

Bonjour,

J’ai été chargé de déployer Fab Manager et de l’intégrer à un site statique déjà existant (LAMP/Wordpress).
J’ai donc effectuer l’installation docker de Fab Manager sur un VPS (Docker on Ubuntu 16.04) qui s’est effectué dans problème.
Celui-ci est accessible depuis un sous-domaine du site via une redirection DNS.

J’aimerais pouvoir intégrer Fab Manager au site Wordpress grâce à un Iframe, ce que ne le permet pas l’en-tête http par défaut (X-Frame-Options = SAMEORIGIN).

Je n’arrive pas à trouver à quel endroit de la configuration cette valeur est définie.

Quand je change la configuration de Nginx afin de paramétrer X-Frame-Options avec comme valeur : « ALLOW-FROM https//monsite.com », cela résulte en un conflit de valeurs.

Pourriez-vous éclairer ma lanterne la dessus ?

Bien cordialement,
Marin

Bonjour,

Normalement la directive nginx suivante devrait faire l’affaire:

add_header X-Frame-Options "ALLOW-FROM https://my.fab-manager.com";

Néanmoins, il faut bien garder à l’esprit que ALLOW-FROM n’est supporté que par très peu de navigateurs : X-Frame-Options#Browser_compatibility, elle est d’ailleurs décrite comme obsolète dans la documentation de mozilla, qui recommande d’utiliser plutôt frame-ancerstors à la place

Bonjour Sylvain,

Merci de ta réponse rapide !
J’avais bien ajouté cette directive dans la configuration de Nginx (dans le premier bloc server qui écoute le port 443), cela « n’écrase » pas la directive « SAMEORIGIN » et résulte en un conflit de valeurs.

J’ai le message suivant dans la console de chrome :

Refused to display ‹ https://fabmanager.monsite.com/#!/ › in a frame because it set multiple ‹ X-Frame-Options › headers with conflicting values (‹ SAMEORIGIN, ALLOW-FROM https://monsite.com ›). Falling back to ‹ deny ›.

D’ailleurs quand j’utilise la commande cURL dans le terminal pour accéder au sous domaine qui pointe vers le VPS de FabManager, l’en-tête http contient les deux directives.

J’ai aussi essayé d’effectuer un grep du repos git de fabmanager, du dossier /etc/Nginx et /etc/Apache2 avec l’expression « X-Frame-Options » sans parvenir à trouver d’où venait cette directive.

Merci pour le conseil, je vais essayer également avec frame-ancestors.

EDIT :
J’ai testé la directive avec « frame-ancestors », et elle a l’air d’écraser celle avec « X-Frame-Options », cela donne la directive suivante :
add_header Content-Security-Policy "frame-ancestors monsite.com";
Il faudra que je jettes un coup d’oeil à la compatibilité avec des navigateurs plus anciens.

Merci beaucoup Sylvain pour ton aide !

ps : j’ai fait quelques mises à jour au niveau de la documentation et des fichiers de configuration d’exemples dans un fork perso du repo de fabmanager, suite aux petits soucis que j’ai pu rencontrer pendant le déploiement.

C’est cool si frame-ancestors a résolu ton problème ! Avec plaisir :slight_smile:

Si tu penses que tes modifs de doc peuvent être utiles à d’autres personnes, tu peux ouvrir une pull request sur GitHub pour qu’on l’intègre dans la doc principale.