この章では、SOAコンポジット・アプリケーション固有のセキュリティ手順について説明します。
この章の内容は、次のとおりです。
|
注意: ポリシーのアタッチおよびデタッチについては、次の各項を参照してください。 |
この章では、SOAコンポジット・アプリケーション固有のセキュリティ手順について説明します。 ほとんどのSOAコンポジット・アプリケーションのセキュリティ手順は、SOA固有の手順を必要とせず、表6-1に示すドキュメントに従って実行できます。
表6-1 セキュリティに関するドキュメント
Oracle SOA Suiteでは、双方向SSL通信を構成するために、Oracle WebLogic ServerおよびSun社のSecure Socket Layer(SSL)スタックの両方を使用します。
インバウンドのWebサービス・バインディングの場合、Oracle SOA SuiteではOracle WebLogic Serverインフラストラクチャを使用し、SSL用にOracle WebLogic Serverライブラリを使用します。
アウトバウンドのWebサービス・バインディングの場合、Oracle SOA SuiteではJRF HttpClientを使用し、SSL用にSun JDKライブラリを使用します。
このように違いがあるため、次のJVMオプションを使用してOracle WebLogic Serverを起動します。
次のファイルを開きます。
UNIXオペレーティング・システムでは、$MIDDLEWARE_HOME\user_projects\domains\domain_name\bin\setDomainEnv.shを開きます。
Windowsオペレーティング・システムでは、MIDDLEWARE_HOME/user_projects/domains/domain_name/bin/setDomainEnv.batを開きます。
サーバーが一方向SSL(サーバー認可のみ)に対して有効な場合は、次の行をJAVA_OPTIONSセクションに追加します。
-Djavax.net.ssl.trustStore=your_truststore_location
双方向SSLの場合は、キーストア情報(場所とパスワード)が必要です。
ここでは、Oracle SOA SuiteとOracle HTTP Server間でSSL通信を構成する手順について説明します。
<Location /integration/services>場所ディレクティブを使用してmod_ssl.confを更新します。
LoadModule weblogic_module ${ORACLE_HOME}/ohs/modules/mod_wl_ohs.so
<IfModule mod_weblogic.c>
WebLogicHost host.domain.com
WLLogFile <logdir>/ohs_ssl.log
Debug ALL
DebugConfigInfo ON
SecureProxy ON
MatchExpression *.jsp
WlSSLWallet <OHS_
HOME>/instances/instance1/config/OHS/ohs1/keystores/default
</IfModule>
<Location /soa-infra>
WebLogicPort 8002
SetHandler weblogic-handler
ErrorPage http://host.domain.com:port/error.html
</Location>
<Location /b2b>
WebLogicPort 8002
SetHandler weblogic-handler
ErrorPage http://host.domain.com:port/error.html
</Location>
<Location /integration/worklistapp>
WebLogicPort 8002
SetHandler weblogic-handler
ErrorPage http://host.domain.com:port/error.html
</Location>
<Location /integration/services>
WebLogicPort 8002
SetHandler weblogic-handler
ErrorPage http://host.domain.com:port/error.html
</Location>
<Location /DefaultToDoTaskFlow>
WebLogicPort 8002
SetHandler weblogic-handler
ErrorPage http://host.domain.com:port/error.html
</Location>
<Location /OracleBAM>
WebLogicPort 9002
SetHandler weblogic-handler
ErrorPage http://host.domain.com:port/error.html
</Location>
<Location /OracleBAMWS>
> WebLogicPort 9002> SetHandler weblogic-handler
> ErrorPage http://host.domain.com:port/error.html
> </Location>
第6.2項「SOAコンポジット・アプリケーションの双方向SSL通信の構成」の説明に従って、Oracle WebLogic Serverを起動します。
Oracle HTTP Serverウォレットからユーザー証明書をエクスポートします。
orapki wallet export -wallet . -cert cert.txt -dn 'CN=\"Self-Signed Certificate for ohs1 \",OU=OAS,O=ORACLE,L=REDWOODSHORES,ST=CA,C=US'
エクスポートした証明書をOracle WebLogic Serverトラストストアに信頼できる証明書としてインポートします。
keytool -file cert.txt -importcert -trustcacerts -keystore DemoTrust.jks
Oracle WebLogic Serverトラストストアから証明書をエクスポートします。
keytool -keystore DemoTrust.jks -exportcert -alias wlscertgencab -rfc -file certgencab.crt
エクスポートした証明書をOracle HTTP Serverウォレットに信頼できる証明書としてインポートします。
orapki wallet add -wallet . -trusted_cert -cert certgencab.crt -auto_login_only
Oracle HTTP Serverを再起動します。
第6.2項「SOAコンポジット・アプリケーションの双方向SSL通信の構成」の説明に従って、Oracle WebLogic Serverを再起動します。
Security Assertion Markup Language(SAML)SSO環境で最初のOracle BPM Worklistから2番目のOracle BPM Worklistにアクセスするとき自動認証されるようにするには、次の手順を実行する必要があります。 この手順を実行しないと、2番目のOracle BPM Worklistにアクセスするときに再度ログインするように求められます。 この環境では、最初のOracle BPM WorklistはSAML IDプロバイダとして構成され、アクセスする2番目のOracle BPM WorklistはSAMLサービス・プロバイダとして構成されます。
/integration/worklistapp/*をworklistappのリダイレクトURLとして、SAMLサービス・プロバイダ・サイトのSAML2IdentityAsserter構成に追加します。
Oracle WebLogic Server管理コンソールで、「セキュリティ・レルム」を選択します。
サービス・プロバイダのレルムをクリックします。
「プロバイダ」タブを選択し、「認証」サブタブを選択します。
プロバイダ・リストから、SAML 2.0 IDアサーション・プロバイダと説明されているプロバイダを選択します。
SAML IDアサーション・プロバイダ構成が見つからない場合は、『Oracle Fusion Middleware Securing Oracle WebLogic Server』の説明に従ってください。
「管理」タブを選択します。
「管理」タブには、IDプロバイダ・パートナのリストが表示されます。 これらは、このSAML IDサービス・プロバイダ・サイトのSAML IDプロバイダ・パートナとして構成されているホストです。 この構成手順は、ワークリスト・アプリケーションがホスト管理されるIDサービス・プロバイダ・サイトで実行されることに注意してください。
ユーザーが最初のログインを実行するIDプロバイダ・サイトを選択します。
「リダイレクトURI」フィールドが表示されるまでページを下にスクロールします。
/integration/worklistapp/*をリストに追加します。
この手順を実行した後は、SAML IDプロバイダ・サイトで通常のURL /integration/worklistappからOracle BPM Worklistにログインできます。 必要に応じて、SAMLサービス・プロバイダ・サイトでURL /integration/worklistapp/ssologinに移動できます。ここで、Oracle BPM Worklistにアクセスして自動認証されます。
SAML2IdentityAsserter、およびWebブラウザとHTTPクライアントを使用したSSOの構成については、『Oracle Fusion Middleware Securing Oracle WebLogic Server』を参照してください。
Kerberosを使用したWindowsのネイティブ認証をOracle BPM Worklistで使用するには、保護されたURL /integration/worklistapp/ssologinを使用する必要があります。 たとえば、Windowsのネイティブ認証を構成した後は、次のようにOracle BPM Worklistにアクセスします。
http://host_name.domain_name:8001/integration/worklistapp/ssologin
Microsoftクライアントを使用したSSOの構成については、『Oracle Fusion Middleware Securing Oracle WebLogic Server』を参照してください。
Oracle BPM Worklistおよびワークフロー・サービスでは、Java Platform Security(JPS)と、ユーザーおよびロールAPIが使用されます。 このため、Oracle Internet Directoryでワークフローが使用されるときは、Oracle Internet Directory認証者が最初のプロバイダとして表示される必要があります。 Oracle Internet Directoryが最初に表示されない場合(たとえば、DefaultAuthenticatorの下に表示される場合)、ログイン認証は失敗します。
認証プロバイダの順序の変更方法については、『Oracle Fusion Middleware Securing Oracle WebLogic Server』を参照してください。
Oracle BPM Worklistで非SSLからSSL構成に切り替えるには、Oracle WebLogic Server管理コンソールで「フロントエンド・ホスト」および「フロントエンドHTTPSポート」フィールドを設定する必要があります。 設定しないと、To-Doタスクを作成するときに例外エラーが発生します。
Oracle WebLogic Server管理コンソールにログインします。
「環境」セクションで、「サーバー」を選択します。
管理対象サーバーの名前(たとえば、soa_server1)を選択します。
「プロトコル」を選択し、次に「HTTP」を選択します。
「フロントエンド・ホスト」フィールドに、Oracle BPM Worklistがあるホスト名を入力します。
「フロントエンドHTTPSポート」フィールドに、SSLリスナー・ポートを入力します。
「保存」をクリックします。
ヒューマン・ワークフロー・サービスのWSDLファイルを外部コンシューマに公開しない場合は、各サービスのWSDL公開フラグをfalseに設定します。
<expose-wsdl>false</expose-wsdl>
詳細は、『Oracle Fusion Middleware Developer's Guide for Oracle Web Services』を参照してください。
Oracle WebCacheおよびOracle HTTP Server環境では、「Webサービスのテスト」ページでOracle WebCacheとの通信が必要になる場合があります。 したがって、SOAコンポジット・アプリケーション・インスタンスとOracle WebCache間でSSLを構成する必要があります(つまり、ユーザー証明書をOracle WebCacheウォレットからエクスポートし、その証明書をOracle WebLogic Serverトラストストアに信頼できる証明書としてインポートします)。