BIEE 11 g集積オープンソースCAS実現SSO
13821 ワード
CASおよびSSOの原理については、以下の記事を参照してください.
---20120824更新開始----
Webを必要とします.xmlの次の部分を削除します.そうしないと、ダッシュボードTABページを切り替えるときにエラーが発生します.
また、以下の部分を削除する後も、URLにsawが含まれないことが解決する.dll?bieehome接尾辞は間違った問題を報告します!
---20120824更新終了----
SSO(Single Sign-on) in Action
http://www.blogjava.net/security/archive/2006/10/02/sso_in_action.html
自分でCASサーバーを構築することについて
次の文書を参照してください.
JAVA CASワンポイントログイン(SSO)チュートリアル
http://www.cnblogs.com/mylitboy/archive/2011/07/15/2155634.html
CASサーバがSSLを有効にしている場合は、クライアント(つまりBIEEアプリケーションがあるサーバであるweblogic)に証明書をインポートする必要があります.証明書をインポートする方法は、上記の文書を参照してください.
CASとBIEE 11 gの統合について説明します
CASは主にfilterを追加することで要求をブロックするため、BIEE analyticsアプリケーションのwebを手動で変更する必要がある.xml、必要なfilterを追加します.
これをwarはパケットを解く(7-zipまたはWin-rarを使えばよい)、WEB-INF下のwebを修正する.xml
注意:analytics.earは$MVからHOME/Oracle_BI 1/bifoundation/jeeで見つけ、analytics.解凍してanalyticsを得るwarとanalytics-ws.war
修正したwebxmlは次のとおりです.
注:sso.test.comはCASサーバーがあるサーバーのドメイン名、demo.us.oracle.comはBIEEサービスがあるサーバのドメイン名です.
皆さんは自分の実情に合わせて変更してください!
修正後、CASクライアントのjarパッケージ(cas-client-core-3.2.1.jarなど)をWEB-INFのlibディレクトリに配置する必要があります.
修正後、JDKが持参したjarを使って再パッケージし、
例:jar-cf analytics.war .
そしてanalytics.war及びanalytics-ws.warは、以前の同級ディレクトリのMETA-INFフォルダとともにanalyticsにパッケージ化されています.ear
例:jar-cf analytics.ear .
その後、weblogic consoleにアプリケーションを再配置し、起動します.
さらに、CASに接続されているユーザ認証ライブラリ(AD、LDAP、またはデータベース)に接続するためのセキュリティ領域にProviderを新規作成することも重要です.
BIEEはCAS認証に合格したユーザー名を持ってこのProviderに問い合わせているので、存在しなければログインできません.
最後にemでBIに対してSSOを有効にする
次の図に示します.
変更をアクティブにし、opmnのすべてのコンポーネントを再起動すればOKです.
次にhttp://xxxxx:9704/analytics/saw.dll?bieehomeBIEEにアクセスすればいい!
注意:urlは必ず後ろのsawを持ってきてください.dll?bieehome接尾辞、さもなくば間違いを報告します!
---20120824更新開始----
Webを必要とします.xmlの次の部分を削除します.そうしないと、ダッシュボードTABページを切り替えるときにエラーが発生します.
また、以下の部分を削除する後も、URLにsawが含まれないことが解決する.dll?bieehome接尾辞は間違った問題を報告します!
- <!-- , 。
-->
- <filter>
<filter-name>CAS Single Sign Out Filter</filter-name>
<filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
</filter>
- <filter-mapping>
<filter-name>CAS Single Sign Out Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
---20120824更新終了----
SSO(Single Sign-on) in Action
http://www.blogjava.net/security/archive/2006/10/02/sso_in_action.html
自分でCASサーバーを構築することについて
次の文書を参照してください.
JAVA CASワンポイントログイン(SSO)チュートリアル
http://www.cnblogs.com/mylitboy/archive/2011/07/15/2155634.html
CASサーバがSSLを有効にしている場合は、クライアント(つまりBIEEアプリケーションがあるサーバであるweblogic)に証明書をインポートする必要があります.証明書をインポートする方法は、上記の文書を参照してください.
CASとBIEE 11 gの統合について説明します
CASは主にfilterを追加することで要求をブロックするため、BIEE analyticsアプリケーションのwebを手動で変更する必要がある.xml、必要なfilterを追加します.
これをwarはパケットを解く(7-zipまたはWin-rarを使えばよい)、WEB-INF下のwebを修正する.xml
注意:analytics.earは$MVからHOME/Oracle_BI 1/bifoundation/jeeで見つけ、analytics.解凍してanalyticsを得るwarとanalytics-ws.war
修正したwebxmlは次のとおりです.
<?xml version="1.0" encoding="UTF-8" ?>
- <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
- <filter>
<filter-name>ApplCoreSessionIntegrationFilter</filter-name>
<filter-class>com.siebel.analytics.web.integration.ApplCoreSessionIntegrationFilter</filter-class>
</filter>
- <filter>
<filter-name>HyperionCSSAuthenticatorFilter</filter-name>
<filter-class>com.siebel.analytics.web.integration.HyperionCSSAuthenticatorFilter</filter-class>
</filter>
- <filter>
<filter-name>LoadBalancerHTTPFilter</filter-name>
<filter-class>com.siebel.analytics.web.integration.LoadBalancerHTTPFilter</filter-class>
- <init-param>
<param-name>oracle.bi.presentation.loadbalance.ServerKeySources</param-name>
<param-value>GET,POST,COOKIE,SESSION</param-value>
</init-param>
</filter>
- <filter>
<filter-name>AddStaticHeadersFilter</filter-name>
<filter-class>com.siebel.analytics.web.integration.AddStaticHeadersFilter</filter-class>
- <init-param>
<param-name>oracle.bi.presentation.staticheaders.1.name</param-name>
<param-value>Cache-Control</param-value>
</init-param>
- <init-param>
<param-name>oracle.bi.presentation.staticheaders.1.value</param-name>
<param-value>max-age=3600</param-value>
</init-param>
</filter>
- <!-- <filter>
<filter-name>AddStaticServerVariables</filter-name>
<filter-class>com.siebel.analytics.web.integration.AddStaticHeadersFilter</filter-class>
<init-param>
<param-name>oracle.bi.presentation.staticservervariables.1.name</param-name>
<param-value>SERVERVARIABLE_NAME</param-value>
</init-param>
<init-param>
<param-name>oracle.bi.presentation.staticservervariables.1.value</param-name>
<param-value>SERVERVARIABLE_VALUE</param-value>
</init-param>
</filter>
-->
- <filter>
<filter-name>FirewallFilter</filter-name>
<filter-class>com.siebel.analytics.web.integration.FirewallFilter</filter-class>
- <!--
Uncomment AllowedRequests param below to allow only SOAP requests and prohibit UI ones
Uncomment ProhibitedRequests param below to prhibit SOAP requests and allow UI ones
-->
- <!-- <init-param>
<param-name>oracle.bi.presentation.AllowedRequests</param-name>
<param-value>SOAP</param-value>
</init-param>
<init-param>
<param-name>oracle.bi.presentation.ProhibitedRequests</param-name>
<param-value>SOAP</param-value>
</init-param>
-->
</filter>
- <!-- <filter-mapping>
<filter-name>FirewallFilter</filter-name>
<servlet-name>SAWBridge</servlet-name>
</filter-mapping>
-->
- <!-- <filter-mapping>
<filter-name>AddStaticServerVariables</filter-name>
<servlet-name>SAWBridge</servlet-name>
</filter-mapping>
-->
- <!-- ======================== ========================
-->
- <!-- , ,
-->
- <listener>
<listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
</listener>
- <!-- , 。
-->
- <filter>
<filter-name>CAS Single Sign Out Filter</filter-name>
<filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
</filter>
- <filter-mapping>
<filter-name>CAS Single Sign Out Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
- <!-- ,
-->
- <filter>
<filter-name>CASFilter</filter-name>
<filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
- <init-param>
<param-name>casServerLoginUrl</param-name>
<param-value>https://sso.test.com:8443/cas-server-webapp-3.5.0/login</param-value>
- <!-- server IP
-->
</init-param>
- <init-param>
<param-name>serverName</param-name>
<param-value>http://demo.us.oracle.com:9704</param-value>
</init-param>
</filter>
- <filter-mapping>
<filter-name>CASFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
- <!-- Ticket ,
-->
- <filter>
<filter-name>CAS Validation Filter</filter-name>
<filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>
- <init-param>
<param-name>casServerUrlPrefix</param-name>
<param-value>https://sso.test.com:8443/cas-server-webapp-3.5.0</param-value>
</init-param>
- <init-param>
<param-name>serverName</param-name>
<param-value>http://demo.us.oracle.com:9704</param-value>
</init-param>
</filter>
- <filter-mapping>
<filter-name>CAS Validation Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
- <!-- HttpServletRequest ,
HttpServletRequest getRemoteUser() SSO
-->
- <filter>
<filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
<filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>
</filter>
- <filter>
<filter-name>CAS Assertion Thread Local Filter</filter-name>
<filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class>
</filter>
- <filter-mapping>
<filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
- <!-- ======================== ========================
-->
- <filter-mapping>
<filter-name>LoadBalancerHTTPFilter</filter-name>
<servlet-name>SAWBridge</servlet-name>
</filter-mapping>
- <filter-mapping>
<filter-name>ApplCoreSessionIntegrationFilter</filter-name>
<servlet-name>SAWBridge</servlet-name>
</filter-mapping>
- <filter-mapping>
<filter-name>HyperionCSSAuthenticatorFilter</filter-name>
<servlet-name>SAWBridge</servlet-name>
</filter-mapping>
- <!--
<filter-mapping>
<filter-name>AddStaticHeadersFilter</filter-name>
<url-pattern>/res/*</url-pattern>
</filter-mapping>
-->
- <servlet>
<servlet-name>SAWBridge</servlet-name>
<servlet-class>com.siebel.analytics.web.SAWBridge</servlet-class>
- <init-param>
<param-name>oracle.bi.presentation.sawserver.Host</param-name>
<param-value>localhost</param-value>
</init-param>
- <init-param>
<param-name>oracle.bi.presentation.sawserver.Port</param-name>
<param-value>9710</param-value>
</init-param>
- <init-param>
<param-name>oracle.bi.presentation.biapplication</param-name>
<param-value>coreapplication</param-value>
</init-param>
</servlet>
- <servlet>
<description>Hyperion Related Content request handler</description>
<display-name>RelatedContent</display-name>
<servlet-name>RelatedContent</servlet-name>
<servlet-class>oracle.bi.server.workspace.RelatedContent</servlet-class>
- <init-param>
<param-name>oracle.bi.presentation.relatedContent.dimensionMappingFilePath</param-name>
<param-value>${oracle.domain.config.dir}/biinstances/${oracle.bi.application}/FRDimensionsMapping.properties</param-value>
</init-param>
- <init-param>
<param-name>oracle.bi.presentation.relatedContent.SAWServlet</param-name>
<param-value>saw.dll</param-value>
</init-param>
</servlet>
- <servlet-mapping>
<servlet-name>SAWBridge</servlet-name>
<url-pattern>/saw.dll/*</url-pattern>
</servlet-mapping>
- <servlet-mapping>
<servlet-name>RelatedContent</servlet-name>
<url-pattern>/RelatedContent</url-pattern>
</servlet-mapping>
- <login-config>
<auth-method>CLIENT-CERT</auth-method>
</login-config>
- <mime-mapping>
<extension>xsd</extension>
<mime-type>text/xml</mime-type>
</mime-mapping>
- <mime-mapping>
<extension>xml</extension>
<mime-type>text/xml</mime-type>
</mime-mapping>
- <mime-mapping>
<extension>js</extension>
<mime-type>text/javascript</mime-type>
</mime-mapping>
- <mime-mapping>
<extension>css</extension>
<mime-type>text/css</mime-type>
</mime-mapping>
- <mime-mapping>
<extension>png</extension>
<mime-type>image/png</mime-type>
</mime-mapping>
- <mime-mapping>
<extension>swf</extension>
<mime-type>application/x-shockwave-flash</mime-type>
</mime-mapping>
- <welcome-file-list>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
注:sso.test.comはCASサーバーがあるサーバーのドメイン名、demo.us.oracle.comはBIEEサービスがあるサーバのドメイン名です.
皆さんは自分の実情に合わせて変更してください!
修正後、CASクライアントのjarパッケージ(cas-client-core-3.2.1.jarなど)をWEB-INFのlibディレクトリに配置する必要があります.
修正後、JDKが持参したjarを使って再パッケージし、
例:jar-cf analytics.war .
そしてanalytics.war及びanalytics-ws.warは、以前の同級ディレクトリのMETA-INFフォルダとともにanalyticsにパッケージ化されています.ear
例:jar-cf analytics.ear .
その後、weblogic consoleにアプリケーションを再配置し、起動します.
さらに、CASに接続されているユーザ認証ライブラリ(AD、LDAP、またはデータベース)に接続するためのセキュリティ領域にProviderを新規作成することも重要です.
BIEEはCAS認証に合格したユーザー名を持ってこのProviderに問い合わせているので、存在しなければログインできません.
最後にemでBIに対してSSOを有効にする
次の図に示します.
変更をアクティブにし、opmnのすべてのコンポーネントを再起動すればOKです.
次にhttp://xxxxx:9704/analytics/saw.dll?bieehomeBIEEにアクセスすればいい!
注意:urlは必ず後ろのsawを持ってきてください.dll?bieehome接尾辞、さもなくば間違いを報告します!