Embarquement en iframe

La console encadre ses applications sœurs (Mail, SMS, SEO, …) à l'intérieur d'iframes pour qu'elles apparaissent comme un seul produit. Deux choses rendent cela possible : une Content-Security-Policy à l'échelle de la plateforme qui autorise le framing, et le transfert SSO qui authentifie silencieusement l'utilisateur encadré.

La CSP globale

Une unique Content-Security-Policy est appliquée à l'échelle de la plateforme (pas par site). Elle définit :

Directive Valeur Effet
frame-src inclut https://*.inklura.fr et https://auth.1clic.pro La console peut encadrer ses sœurs (et l'IdP)
frame-ancestors https://*.inklura.fr Chaque application peut être encadrée par un parent *.inklura.fr

Ainsi frame-src régit ce que la console peut embarquer, et frame-ancestors régit qui est autorisé à embarquer une application donnée — tous deux cloisonnés à la famille *.inklura.fr plus l'IdP.

Attention

La CSP par site n'est pas honorée pour les sites auto-vhost. La politique globale fait autorité — un en-tête Content-Security-Policy que vous définissez sur votre propre application PRISM n'est pas ce qui régit le framing.

Astuce

Tout sous-domaine *.inklura.fr est déjà couvert par la politique globale. Mettre en place un nouveau sous-domaine inklura ne nécessite aucune modification de CSP pour être encadrable par la console.

Embarquer une application sœur

Ne pointez pas l'iframe directement sur la page de l'application — pointez-le sur le transfert SSO de la console, afin que l'application encadrée s'authentifie silencieusement avant de s'afficher :

<iframe src="/api/manage/designer-sso?app=mail&next=/inbox&embed=1"></iframe>

La route designer-sso génère le token de transfert à courte durée, redirige en 302 dans la sœur sur le même domaine enregistrable, et la route d'atterrissage de l'application génère sa session locale puis atterrit sur next. Voir Single Sign-On pour le token, le TTL et les vérifications d'audience.

Même site vs nouvel onglet

Toutes les sœurs ne sont pas embarquées. Quand la console lance une application :

  • Les applications du même site (même domaine enregistrable) sont embarquées dans l'iframe — la CSP ci-dessus le permet.
  • Les applications d'un site différent sont lancées dans un nouvel onglet plutôt qu'encadrées.

Voir aussi