Connexion impossible à Jeedom quand affiché dans une frame

Bonjour,

J’ai vérifié sans trouver que le sujet avait déjà été traité. Voici mon problème :

Je souhaite afficher ma session Jeedom dans une iframe. Quel que soit le navigateur que j’utilise, j’arrive bien sur la page d’authentification Jeedom mais quand je m’authentifie (avec les bons identifiants il va de soit), je suis redirigé vers le formulaire d’authentification et ma session ne démarre pas : j’obtiens ce comportement avec Chrome et Edge.

Par contre, sous Firefox, ça passe, j’arrive sur mon dashboard incrusté dans ma frame.

Je suppose que le problème est plutôt lié au navigateur qu’à Jeedom en tant que tel, mais si quelqu’un a une idée du pourquoi du comment ?

D’avance merci.

C’est surtout pas fait pour a la base

Hello @Olivier,

En effet, ce n’est pas super méga supporté, mais il y a certaines limitations de nos jours pour éviter de potentiels problèmes de sécurité avec le iframes.

Tu peux nous poster un exemple du code de ton iframe appelant ?
Tu utilises du HTTPS ? pour la page contenant l’iframe ? Jeedom dedans ?
La page contenant l’iframe est sur le même « domaine » que jeedom ?

Bonjour @Bad et merci pour tes pistes.

Une précision sur l’usage déjà, pour éteindre les « débats » … je gère une sorte d’intranet local chez moi avec l’accès aux divers serveurs/services que j’ai à la maison et j’ai une page d’accueil constituée d’un menu avec des liens vers mes applications, les liens ouvrent les applications dans cette frame(je souhaite garder le frame de menu toujours visible sur ma tablette ou autre pour switcher comme je veux d’un service à l’autre, d’où l’utilisation de frame… certains liens pointent direct vers des design affichés en plein écran, d’autres pointent en dehors de Jeedom). Donc, ce n’est peut être « pas fait pour », mais il n’empêche que c’est cela mon « respectable usage » :slightly_smiling_face:.

Niveau du code de la page, voici celui de la page-test destinée à contenir Jeedom (@aux lecteurs, je ne suis pas du tout développeur, de l’indulgence svp…) :

<!DOCTYPE html>
<html class="img-no-display">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>intranet</title>
</head>

<frameset rows="*" framespacing="0" border="0">
<frame name="principal" src="https://#######.dns#.jeedom.com/)" scrolling="yes" noresize="noresize" target="_self">
<noframes>
<body>
</body>
</noframes>
</frameset>
</html>

L’intranet est hébergé en local, accès via l’IP locale 192.168. … quand j’appelle l’URL de Jeedom dans la frame, que ce soit avec l’url locale ou via le dns jeedom, pas de différence de comportement.

Effectivement, j’appelle Jeedom en https, alors que la page appelante est en http.

Merci encore.

Hello @Olivier,

Je pense que c’est un glitch, mais tu as une parenthèse fermante à la fin de l’URL de Jeedom :

Sinon as-tu essayé de l’appeler directement en HTTP, avec le nom local ou l’IP pour voir ?

Ajoute aussi le Header suivant à Jeedom :
Content-Security-Policy: frame-ancestors 'self' <url intranet> <ip intranet> ;
(Source)

Je ne sais pas trop où l’ajouter, peut-être que le mieux c’est dans le .htaccess, exemple.

Hope it helps