解决iframe嵌入VMware vRops提示SAMEORIGIN错误

前景:

VMware vRealize Operations是一款基于云的IT操作管理软件,可以提供自动化、智能化和协作化的IT运营管理,以促进业务持久性,同时提供更好的系统性能、可靠性和安全性。
VMware vRealize Operations提供业内领先的性能和容量管理,以及云规划和优化功能,其功能如下:
1.多云管理:提供对多个云环境(包括VMware、AWS、Azure等)的全面性能实时监控,并支持云规划和优化管理。
2.智能且自动化:智能分析数据并执行自动化操作,为运维人员减少重复性任务。
3.容量管理:可以监控系统容量,生成报告并预测即将到来的需要。
4.性能优化:提供分析工具以实时监测系统健康状况,发现和解决潜在问题。
5.协作式运维:带来更快的解决方案,实现跨部门和跨功能的协同工作,节省时间和人力成本。
VMware vRealize Operations还提供了成本优化、安全和遵从性等功能,是一款专为企业IT运营管理而设计的全面性能管理和协作管理软件。

简述:

在使用iframe嵌入VMware vRops(vRealize Operations Manager)共享的仪表盘时页面出现”xxx 拒绝了我们的连接请求”错误,检查console提示”Refused to display ‘https://***/’ in a frame because it set ‘X-Frame-Options’ to ‘sameorigin’.“

这个错误是由于VMware vRealize Operations 默认设置了X-Frame-Options头信息为SAMEORIGIN,止了其他域名下的页面嵌入该页面,因此无法在iframe中嵌入共享的仪表盘。这是出于安全考虑,以避免不必要的跨站点脚本攻击(XSS攻击)。可以尝试以下方法解决此问题:

  1. 将vROps的X-Frame-Options设置为ALLOW-FROM,以允许特定网站或者域在iframe中嵌入vROps共享的仪表盘。
  2. 尝试使用反向代理服务,如Nginx或Apache,来将vROps共享的仪表盘嵌入到自己的网站中。
  3. 另一种解决办法是使用浏览器插件,如“Ignore X-Frame-Options Header”,将框架政策忽略掉。

通过搜寻,留意到还有另一种方法,可以通过使用VMware vRealize Operations的REST API(vRealize Ops API)来修改仪表盘设置,使用curl命令访问vRealize Operations的REST API。在curl命令中指定要更新的仪表盘的ID、Authentication Token,以及要更改的设置。但是这种方法似乎更加繁琐,在这里引出,喜欢折腾的朋友可以参考,vRealize Ops API的文档可以访问https://vRopsIPaddress/suite-api/docs/rest/internal_index.html也可以参考VMware官方的文档vRealize Operations Manager API 编程指南

智能助手给出的示例:

curl -i -X PUT -H "Content-Type: application/json" -H "Authorization: Basic $(echo -n 'admin:your_password' | base64)" -d '{"allowedOrigins":["https://your-domain.com"]}' https://localhost/suite-api/api/settings/security/same-origin

需要注意的是,这些解决方法可能会增加安全风险,因此在实施之前,请仔细权衡利弊。

正文:

一、使用插件

通过测试使用插件确实可以直接无视服务器设置的X-Frame-Options头信息安全设置推荐插件名称为:Allow X-Frame-Options” 版本:“0.1.0” Edge可以直接在应用商店搜索扩展安装,Chrome也可以先用Edge安装好插件然后“移花接木”到Chrome上,Edge扩展目录通常是在C:UsersAdministratorAppDataLocalMicrosoftEdgeUser DataDefaultExtensions

安装好后点击插件图标开启即可测试是否能够屏蔽X-Frame-Options

使用插件简单粗暴而且有效,但是对于不同的应用或者项目可能并不能达到目标。一劳永逸的办法还是通过修改服务器安全配置来实现↓

二、修改服务器配置

请注意:这个方法仅在vRealize-Operations-Manager-8.5.0.18255622vRealize-Operations-Manager-8.2.0.16949153上经过测试,其他版本或同类产品可能需要修改的配置文件不同。

修改任何配置之前都应保留备份,最好对管理虚拟机创建快照或克隆!!!

由于采用的是Apache+Tomcat架构,经过测试通过修改/usr/lib/vmware-vcops/tomcat-web-app/webapps/ui/WEB-INF目录下的web.xml文件可以达到目的

打开web.xml文件进行编辑。在<web-app>标签内添加以下代码:

在编辑web.xml文件时,需要注意保留默认配置项。根据所使用的Tomcat版本,可能会存在不同的默认配置。如果不熟悉配置文件的操作,请务必在修改web.xml文件之前执行一次备份。

这段代码将使用Apache Tomcat自带的HttpHeaderSecurityFilter过滤器,禁用X-Frame-Options,并允许所有来源嵌入vROps共享的仪表盘。请注意,此更改具有安全风险,因为它会使您的网站容易受到点击劫持(clickjacking)攻击。如果您需要提高安全性,请使用更加安全的设置。

保存更改并重启VMware vRealize Operations虚拟机以测试是否生效。尽管可以通过systemctl restart httpd Или service vmware-vcops --full-restart 等命令来重启服务,建议还是在修改完成后重新启动vRops虚拟机来验证修改,仅重启服务有时并不能生效和发现错误。

2023年5月25日更新:

通过修改web.xml的方法经过一段时间的运行后iframe嵌入页面会再次出现X-Frame-Options SAMEORIGIN错误,重新启动VMware vRealize Operations可恢复,了解JAVA的同学可通过反编译/usr/lib/vmware-vcops/tomcat-web-app/webapps/ui/WEB-INF目录下的ui.war来尝试解决此问题。

番外:

1.共享仪表盘的方法:

登录vRealize Operations Manager点击“仪表盘”,点击左侧列表中需要共享的仪表盘,点击并打开后页面右侧右上角将会显示共享按钮,点击此按钮可以设生成共享连接并设置相应的共享方式和有效期。

2.vRealize-Operations-Manager-Appliance部署文件

包含:

vRealize-Operations-Manager-Appliance-8.2.0.16949153_OVF10.ova

vRealize-Operations-Manager-Appliance-8.5.0.18255622_OVF10.ova

下载地址:

解决iframe嵌入VMware vRops提示SAMEORIGIN错误-UU技术社区
解决iframe嵌入VMware vRops提示SAMEORIGIN错误
此内容为付费阅读,请付费后查看
10
Купить сразу
Вы в данный момент не зарегистрированы! Рекомендуется покупать после посадки, можно сохранить заказ на покупку
Если у вас есть вопросы, свяжитесь с QQ943271422.
付费阅读
© Заявление об авторском праве
THE END
Поддерживай, если хочешь.
Похвалить11Высокая оценка Поделиться
Замечания Украсть диван
头像
Добро пожаловать, чтобы оставить ценные идеи!
提交
头像

Прозвище

取消
ПрозвищеЛицоКодФотографии

    Нет комментариев