He creado una aplicación dotnet core 3.1 que está alojada en Azure. Me gustaría poder usar un iframe e incrustar la aplicación en Sharepoint; sin embargo, recibo un error de conexión rechazada cuando intento crear y obtener una vista previa del iframe. ¿Es esto algo que Azure no me permitirá hacer o hay una configuración de seguridad en el código que se debe agregar?
Hay dos formas de bloquear un sitio web para que se incruste en otro sitio.
Esta es la recomendación actual del W3C
Por ejemplo: Content-Security-Policy: frame-ancestors 'self' https://www.example.org;
Por ejemplo: X-Frame-Options: ALLOW-FROM allowed uri
No necesita usar ambos, como puede leer en la documentación del W3C . Content-Security-Policy es el preferido y x-frame-options solo funcionará para navegadores muy antiguos o cuando no configure Content-Security-Policy .
La directiva frame-ancestors deja obsoleto el encabezado X-Frame-Options. Si un recurso tiene ambas políticas, la política de ancestros de marco DEBERÍA aplicarse y la política de opciones de marco X DEBERÍA ignorarse
Probablemente su aplicación o su servidor esté inyectando uno de los encabezados anteriores para bloquear el contenido que se va a incrustar.
Para permitir que su aplicación se incruste en un iframe , debe agregar en su encabezado de respuesta uno de estos dos encabezados, preferiblemente con el dominio específico que puede incrustarlo.
Entonces, antes que nada, verifique si su aplicación está agregando el encabezado que está bloqueando la incrustación de su contenido. Si ha configurado AntiForgery en su aplicación, probablemente sea así. Ya que esto lo hace por defecto Antiforgery . Por lo tanto, debe configurarlo para que no agregue esta configuración de encabezado SuppressXFrameOptionsHeader = true al configurar AntiForgery.
services.AddAntiforgery(o => o.SuppressXFrameOptionsHeader = true); Tenga en cuenta que cuando deshabilite ese encabezado en Antiforgery, debe manejarlo usted mismo manualmente. El código anterior eliminará las X-Frame-Options de todas sus respuestas. Por lo tanto, debe escribir su propia lógica para agregar este encabezado para limitar los dominios que pueden incrustar su sitio web.
Si esto no resuelve su problema, probablemente sea su servidor, CDN o proxy inverso el que está inyectando este encabezado. Por lo tanto, debe analizar su infraestructura para descubrir quién es responsable de eso y luego realizar la configuración adecuada.