解决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Высокая оценка Поделиться
Соответствующие рекомендации
Замечания Украсть диван
头像
Добро пожаловать, чтобы оставить ценные идеи!
提交
头像

Прозвище

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

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