第三方系統通過IFrame的方式訪問BIEE報表,iframebiee
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伺服器需要通過網域名稱訪問的方式進行互動。