- Curator must allow itself to be framed (the Allow iframe embedding setting).
- Every web server, proxy, load balancer, or firewall in front of Curator must also allow it to be framed.
- The system that hosts the iframe must allow Curator’s domain to be loaded in a frame, and your users’ browsers must be able to reach Curator.
This page is about putting Curator inside another system. To embed content from another system inside a
Curator page, see Manual Embed - (iFrames) instead.
Enabling Iframe Embedding in Curator
- Navigate to the backend of the system (e.g.
https://curatorexample.com/backend) and log in if prompted. - Navigate to Settings > Curator > Portal Settings.
- On the General tab, scroll to the Security section.
- Enable Allow iframe embedding and save.
X-Frame-Options: sameorigin with every
page, which tells browsers to show Curator in a frame only when the surrounding page is on the same Curator domain.
Turning the setting on stops Curator from sending that header on its frontend pages. It does not add any header that
names which sites may embed Curator; if you want to restrict that, add a frame-ancestors policy at your web server
as described below.
The setting also changes how the login session cookie is sent. Over HTTPS, the session cookie is sent as
SameSite=None; Secure when this setting is on, and also when the authentication type is Portal, so a user who logs
in inside the iframe stays logged in. Over plain HTTP the cookie cannot be marked this way, and browsers do not send
it inside a frame on another site, so users cannot stay logged in. Serve Curator over HTTPS before embedding it.
Allowing embedding lets any website frame Curator unless you restrict it at the web server. Only enable this if you
need it.
Web Server, Proxy, Load Balancer, and Firewall Requirements
Curator’s setting only controls the headers that Curator itself sends. Web servers (IIS, Apache, Nginx), reverse proxies, load balancers, and web application firewalls (WAFs) in front of Curator often add their own security headers, and any of them can still block the embed. Check every layer between users and Curator:-
Remove or adjust
X-Frame-Options. If any layer addsX-Frame-Options: DENYorX-Frame-Options: SAMEORIGIN, the browser refuses to show Curator inside another site. Remove the header from that layer.X-Frame-Optionshas no supported way to name another site, so it cannot be used to allow a specific host. -
Add or adjust
Content-Security-Policy: frame-ancestors. This header lists the sites that may frame Curator. If a layer already sendsframe-ancestors 'self'orframe-ancestors 'none', add the embedding host to it. For example, to allow Curator to be framed by its own domain and byhttps://intranet.example.com:Usingframe-ancestorsis the recommended way to limit which systems can embed Curator once the Allow iframe embedding setting is on.
Embedding System Requirements
The system that contains the iframe can also block it. Many applications send their ownContent-Security-Policy
header with a frame-src (or the older child-src) directive that lists which sites may be loaded in frames on its
pages. If that list does not include your Curator domain, the browser blocks the iframe before it contacts Curator.
Ask the administrator of the embedding system to add your Curator address, for example
https://curatorexample.com, to its allowed frame sources. Some applications, especially desktop applications with
a built-in browser, keep this list in their own configuration rather than in a web server header.
Network Requirements
The iframe is loaded by each user’s browser, not by the embedding system’s server. Every user’s device must be able to reach Curator directly:- DNS: the Curator hostname must resolve on the user’s network.
- VPN and firewalls: if Curator is only reachable on an internal network or over a VPN, users outside that network cannot load the iframe.
- Certificate trust: the Curator SSL certificate must be valid for the hostname used in the iframe and trusted by the user’s device. Browsers do not offer a “proceed anyway” option inside an iframe, so a certificate error shows as a blank or failed frame.
Logging In Within an Iframe
When Curator is embedded on a different site than the one Curator is served from, the browser treats it as a third-party site, so login depends on the browser allowing third-party cookies. An iframe on the same site as Curator, such as HTTPS subdomains of the same registrable domain, is generally not third-party and is not affected. Some browsers, such as Safari, block third-party cookies by default, which can cause users to be asked to log in again and again. See Third Party Cookies for how to warn users about this and how to allow cookies in Safari.Troubleshooting
Open the page that contains the iframe, open the browser’s developer tools (F12), and reload the page. Look for the Curator request on the Network tab and for messages on the Console tab. In the table below, the Side column shows where the fix belongs:- Curator: Curator’s Allow iframe embedding setting, or the web server, proxy, load balancer, or WAF in front of Curator.
- Embedding system: the website or application that contains the iframe.
- Network: DNS, VPN, firewalls, or certificate trust between the user’s device and Curator.
For any other message that says
violates the following Content Security Policy directive, the directive name shows
the side: frame-ancestors is sent by the Curator side, while frame-src and child-src come from the embedding
system. A certificate error means the Curator SSL certificate is not trusted by the device, does not match the
hostname in the iframe, or has expired. For repeated login prompts, see
Logging In Within an Iframe.