この章では、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トラストストアに信頼できる証明書としてインポートします)。