...
详情请见: https://blog.csdn.net/qq_37788558/article/details/104484888?fps=1&locationNum=2
...
如果Smartbi 与第三方系统部署在不同的机器上,或者部署在同一机器不同的应用服务器域下,即出现跨域访问,就会导致在第三方系统通过iframe的方式集成Smartbi的资源,单点登录的时候获取不到对应的用户信息。
2.为什么浏览器要做这方面的限制?
之所以谷歌浏览器会对进行这里集成限制,是从安全考虑的,因为如果不限制,第三方系统上外嵌的iframe可能会存在被设置成钓鱼网站的风险。
3.对于相同版本的Chrome有些会有些不会的原因分析
以前的谷歌版本跨域是允许传递cookie的,但最近谷歌的新版本开始会有很多不允许跨域传递cookie的情况,所以开始出现问题。具体从哪个版本开始目前我们也不是很清楚,根据客户的反馈以及我们测试,大多是chrome 版本 80.0.3987.132(正式版本)会有不允许跨域传递cookie的情况。但不是所有人用这个版本都会有问题,谷歌采用灰度测试,即使是同版本,也是部分覆盖,部分不覆盖。且后续谷歌的新版本可能会一直存在不允许跨域传递cookie的情况。
...
解决方法
方案一(推荐):
如果第三方集成系统本身是通过域名访问方式,因为本质是跨域问题导致的,可以先从域名/ip方面解决跨域的问题,如把smartbi服务器跟第三方系统集成环境的服务器加到一个域名/IP下解决跨域问题。
...
通过在第三方系统的应用服务器上部署代理来解决跨域问题,即可解决本问题。。(PS:在第三方系统所在机器上部署代理,设置代理服务器的IP和端口号和第三方系统保持一致,集成连接使用代理的集成地址,通过代理转发smartbi的请求,这样可以起到同源的作用)
跨域问题解决文档:https://history.wiki.smartbi.com.cn/pages/viewpage.action?pageId=35750879
...
特点:操作比较简单,但是通用性差,无法控制用户访问的浏览器类型。
...
方案五(不推荐):
如果应用服务器是tomcat,Tomcat官方提供了通过升级tomcat到 8.5.53以上版本 ,修改 context.xml文件实现同源访问,具体请查看: http://tomcat.apache.org/tomcat-8.5-doc/config/cookie-processor.html ,但必须要注意的是除了修改context.xml文件配置外,还要求应用服务器配置https协议。
...
另外如果是集群环境,集群环境是使用smartbi_proxy.war作为分发服务器的,smartbi_proxy.war所在Tomcat服务器也需要升级到Tomcat8.5.53版本以上,并且配置成受信证书的https访问方式,为了避免因协议不匹配集成环境也需要配置成https访问。
适用场景:应用服务器为tomcat, 并且传输协议为https。
...
注意:Tomcat版本的更新,对于安全性要求越来越高,高版本Tomcat目前已知的集成访问问题请查看wiki文档:https://history.wiki.smartbi.com.cn/pages/viewpage.action?pageId=44040479
Viewtracker |
---|
...