首页 > 代码库 > 第三方系统通过IFrame的方式访问BIEE报表

第三方系统通过IFrame的方式访问BIEE报表

BIEE开发的报表经常会与现有系统集成 ,通常可以用iframe的方式嵌入到需要集成的系统,在这里有两种方式可以集成 :

1,通过SSO,将BI与业务集成做单点登录,可以参考类似“BI 与CAS的文章”,这类文章很多。这种方式的安全性比较好。

2,直接在集成的URL中带上NQUser、NQPassword在没有安全性要求不高的情况下是最简单经济的一种方式,需要注意的是需要集成的系统与BI在同一个域中,不然会出现二次登录的情况 。

默认情况下BIEE不能直接使用iframe ,需要修改一些配置来达成我们的目的,步骤如下:
 

1、修改$BI_HOME/instances/instance1/config/OracleBIPresentationServicesComponent/coreapplication_obips1/目录下的instanceconfig.xml

找到<Security>...</Security>这一段,如下:
<Security>
<!--This Configuration setting is managed by Oracle Enterprise Manager Fusion Middleware Control-->
<ClientSessionExpireMinutes>210</ClientSessionExpireMinutes>
</Security>

添加:
<InIFrameRenderingMode>allow</InIFrameRenderingMode> 

完成后<Security>...</Security>段的内容为:
<Security>
<!--This Configuration setting is managed by Oracle Enterprise Manager Fusion Middleware Control-->
<InIFrameRenderingMode>allow</InIFrameRenderingMode> 
<ClientSessionExpireMinutes>210</ClientSessionExpireMinutes>
</Security>

2、修改$BI_HOME/home/oraclebi/biee/Oracle_BI1/bifoundation/web/appv2/web.xml
        这里注意一下:appv2,可能您的实际环境是app,目前我的版本是11.1.1.7,似乎11.1.1.6是app,具体原因也没深究了,只要路径对了就可以了。
        添加以下内容:
<context-param>
  <param-name>Oracle.adf.view.rich.security.FRAME_BUSTING</param-name>
  <param-value>never</param-value>
</context-param>

修改完之后重启BI服务并清除浏览器缓存,若还是出现“OBIEE content can not be displayed in the IFrame

          可能您是使用的方式2的集成 ,并且直接通过IP的方式而不是通过域名的方式来访问的,当您再次访问就OK了,这也就是我在开头提到的“二次登录的情况”,需要注意。


总结:通过IFrame方式集成biee,最好是通过做单点登录(SSO)的方式,安全性高;若无条件的话只能简单集成,需要注意被集成系统与BIEE服务器需要通过域名访问的方式进行交互。


第三方系统通过IFrame的方式访问BIEE报表