29 Webサービス・セキュリティの構成
注意:
12c (12.2.1.3.0)からは、Oracle WebCenter PortalでのJive機能(お知らせとディスカッション)のサポートは非推奨になりました。 以前のリリースからアップグレードする場合、これらの機能はアップグレード対象の既存のインストールで引き続き使用できます。
WS-Securityでは、OPSSキーストア・サービス(KSS)キーストアを使用し、1つ以上のドメインを対象として、WebCenter Portalアプリケーションと補助アプリケーションおよびコンポーネントのセキュリティ資格証明を取得および管理するメカニズムを提供します。KSSキーストアは、認証およびデータ整合性に使用可能な公開鍵および秘密鍵に関する情報を提供します。
次のトピックでは、WS-Securityを使用した標準トポロジを構成する方法(WebCenter PortalアプリケーションとWSRPプロデューサが同じドメインを共有し、BPELサーバーが外部SOAドメインに存在する場合)、およびこの構成をより複雑な環境用に拡張する方法について説明します(たとえば、2番目のディスカッション・サーバーが別のドメインに存在し、BPELサーバーが別のSOAドメインに存在し、1つのWSRPプロデューサが外部ポートレット・ドメインに存在する場合)。
権限:
この章のタスクを実行するには、Oracle WebLogic Server管理コンソールでWebLogic ServerのAdmin
ロールが付与されている必要があります。Monitor
またはOperator
ロールを持つユーザーは、セキュリティ情報を表示できますが変更することはできません。
「管理操作、ロールおよびツールの理解」も参照してください。
標準トポロジの場合のWS-Securityの構成
この項では、WebCenter Portalアプリケーション、WSRPプロデューサおよびディスカッション・サーバーは同一ドメインを共有しているが、BPEL (SOA)サーバーは外部ドメインに配置されているトポロジの場合にWS-Securityを構成する方法を説明します。
標準トポロジ
-
ドメイン1 : WebCenter Portal、ディスカッション、ポートレット・プロデューサ
-
ドメイン2 : SOA
標準の2つのドメイン・トポロジの場合にWS-Securityを構成する手順は、次の各項で説明しています。
WebCenter Portalドメイン・キーストアの作成
この項では、OPSSキーストア・サービス(KSS)を使用してWebCenter Portalキーストアおよびキーを作成する方法を説明します。キーストアとは、使用可能な公開鍵および秘密鍵の情報を提供するファイルです。キーは、認証やデータ整合性など、様々な目的に使用されます。また、ユーザー証明書や、ピア証明書の検証に必要なトラスト・ポイントも、キーストアにセキュアに格納されます。キーストアを作成すると、KSSを使用して、WebCenter Portal、ディスカッション・サーバー、BPELサーバーおよびWSRPプロデューサのセキュリティ資格証明を取得および管理できます。OPSSキーストア・サービスの詳細は、『Oracle Platform Security Servicesによるアプリケーションの保護』のキーストア・サービスを使用したキーと証明書の管理に関する項を参照してください。
WebCenter Portalドメイン・キーストアを作成するには:
SOAドメイン・キーストアの作成
この項では、OPSSキーストア(KSS)を使用してSOAドメイン・キーストアおよびキーを作成する方法を説明します。KSSコマンドの構文情報および参照情報は、『Oracle Fusion Middlewareインフラストラクチャ・セキュリティWLSTコマンド・リファレンス』のOPSSキーストア・サービス・コマンドに関する項を参照してください。
SOAドメイン・キーストアを作成するには:
ディスカッション・サーバーの構成
トポロジのディスカッション・サーバーがWC_Portal
サーバーと同じドメインにあり、本番環境で使用されない場合は、追加のキーストア構成は必要ありません。これは、WebCenter Portalドメインに構成されているキーストアがディスカッション・サーバーでも使用されるからです。ただし、本番環境では、ディスカッションWebサービス・エンドポイントをOWSMポリシーで保護し、ディスカッション・サーバー接続設定を構成する必要があります。これらの構成手順は、次の各トピックで説明します。
注意:
WebCenter Portalからディスカッション・サーバーに送信されるディスカッション固有のWebサービス・メッセージは暗号化されません。メッセージの機密保護のため、Secure Socket Layer (SSL)を介してディスカッション・サーバーのURLにアクセスする必要があります。詳細は、「SSLの構成」を参照してください。
WebCenter PortalおよびディスカッションWebサービス・エンドポイントに対するセキュリティ・ポリシーの添付
新規またはパッチ適用済のWebCenter Portalインスタンスでは、割り当てられたセキュリティ/ポリシーの構成は、セキュリティ・ポリシーなしに設定されます。Oracle Web Services Manager (OWSM)のセキュリティ・ポリシーを、WebCenter PortalのWebサービス・エンドポイントおよびディスカッションの認証Webサービス・エンドポイントに添付する必要があります。本番環境では、「ディスカッション・エンドポイントの保護」の手順に従って、セキュリティを強化することで続行します。
注意:
パッチが適用されるWebCenter Portalインスタンスでは、パッチを適用する前にポリシー名を決定し、アップグレードした後にポリシーが同じであることを確認する必要があります。
Webサービス・セキュリティ・ポリシー構成を新しいインスタンスに添付する手順は次のとおりです。
注意:
クラスタ化環境では、WebCenter Portalおよびディスカッションがデプロイされている管理対象サーバーごとにこれらの手順を繰り返します。
ディスカッション・エンドポイントの保護
ディスカッションWebサービス・エンドポイントでは、WebCenter Portalから発信されるコールに対してユーザー・アイデンティティを伝播する必要があります。本番環境では、転送中に他者がメッセージを改ざんしたり、表示したりできないように、Webサービス・エンドポイントをOWSMポリシーで保護する必要があります。これを実行するには、パブリック・アクセス用のWebサービス・エンドポイントと認証済ユーザー・アクセス用のエンドポイントの両方を、Fusion Middleware ControlまたはWLSTを使用して適切なOWSMポリシーで保護する必要があります。
この項では、次の項目について説明します。
Fusion Middleware Controlを使用したディスカッション・サーバー・エンドポイントの保護
Fusion Middleware Controlを使用してディスカッション・エンドポイントを保護する手順は次のとおりです。
WLSTを使用したディスカッション・サーバー・エンドポイントの保護
WLSTを使用してディスカッション・サーバー・エンドポイントを保護するには、次のWLSTコマンドを使用して、wss10_saml_token_service_policy
を削除し、wss11_saml_token_with_message_protection_service_policy
を添付します。
detachWebServicePolicy(application='owc_discussions', moduleName='owc_discussions', moduleType='web', serviceName='OWCDiscussionsServiceAuthenticated', subjectName='OWCDiscussionsServiceAuthenticated', policyURI='oracle/wss10_saml_token_service_policy')
attachWebServicePolicy(application='owc_discussions', moduleName='owc_discussions', moduleType='web', serviceName='OWCDiscussionsServiceAuthenticated', subjectName='OWCDiscussionsServiceAuthenticated', policyURI='oracle/wss11_saml_token_with_message_protection_service_policy')
ディスカッション・サーバーの接続設定の構成
「ディスカッション・サーバーの登録」で説明しているように、使用しているWebCenter Portalアプリケーションに構成されているディスカッション・サーバーの接続にWS-Securityクライアント証明書情報を指定する必要があります。図29-6は、「ディスカッションおよびお知らせ接続の編集」ページの接続詳細の設定の例を示しています。
複数ドメインのWS-Securityの構成
この項では、たとえば、WebCenter Portalアプリケーション、BPEL (SOA)サーバー、ディスカッション・サーバーおよびWSRPプロデューサ・サーバーがそれぞれ独自のドメインに存在するトポロジの場合に、標準トポロジのWS-Securityの構成を拡張する方法を説明します。
複数ドメイン・トポロジ
-
ドメイン1 : WebCenter Portal
-
ドメイン2 : SOA (BPEL)サーバー
-
ドメイン3 : ディスカッション・サーバー
-
ドメイン4 : WSRPプロデューサ
複数のドメインが含まれるトポロジの場合にWS-Securityを構成する手順は、次の各トピックで説明しています。
WebCenter Portalドメイン・キーストアの設定
WebCenter Portalドメイン・キーストアを作成する場合は、「WebCenter Portalドメイン・キーストアの作成」で説明している、標準トポロジでWS-securityを構成する手順に従います。キーストアを作成すると、KSSを使用して、WebCenter Portal、ディスカッション・サーバー、BPELサーバーおよびWSRPプロデューサのセキュリティ資格証明を取得および管理できます。OPSSキーストア・サービスの詳細は、『Oracle Platform Security Servicesによるアプリケーションの保護』のキーストア・サービスを使用したキーと証明書の管理に関する項を参照してください。
SOAドメイン・キーストアの作成
「SOAドメイン・キーストアの作成」の説明に従い、OPSSキーストア(KSS)を使用してSOAドメイン・キーストアおよびキーを作成します。KSSコマンドの構文情報および参照情報は、『Oracle Fusion Middlewareインフラストラクチャ・セキュリティWLSTコマンド・リファレンス』のOPSSキーストア・サービス・コマンドに関する項を参照してください。
外部ディスカッション・サーバーの構成
ディスカッション・サーバーがWebCenter Portalとは異なるドメインにある場合は、ディスカッション・サーバーにキーストアを作成して構成し、公開鍵が含まれる証明書をエクスポートして、それをWebCenter Portalドメインにインポートする必要があります。本番環境では、ディスカッションのWebサービス・エンドポイントをOWSMポリシーで保護し、ディスカッション・サーバー接続設定を構成する必要もあります。それらの設定手順は、次の各項で説明します。
ディスカッション・サービス・エンドポイントの保護
ディスカッションのWebサービス・エンドポイントでは、WebCenter Portalから発信されるコールに対してユーザー・アイデンティティを伝播する必要があります。「ディスカッション・エンドポイントの保護」の手順に従い、Fusion Middleware ControlまたはWLSTを使用してこれらのエンドポイントを保護します。
ディスカッション・サーバー・キーストアの作成
この項では、OWSMで使用されるキー・ペアが含まれるキーストアをディスカッション・サーバーに作成し、公開鍵が含まれる証明書をエクスポートして、それをWebCenter Portalドメインにインポートできるようにする方法を説明します。
owc_discussions
キーストアを作成するには:
ディスカッション・サーバーの接続設定の構成
「ディスカッション・サーバーの登録」で説明しているように、WebCenter Portalに構成されているディスカッション・サーバーの接続にWS-Securityクライアント証明書情報を指定する必要があります。図29-7は、「ディスカッションおよびお知らせ接続の編集」ページの接続詳細の設定の例を示しています。
WebCenter Portal Client APIを使用するアプリケーションに対するWS-Securityを使用したWebCenter Portalの保護
この項では、WebCenter Portal APIを公開するアプリケーション(コンシューマ)とWebCenter Portal (プロデューサ)の間の通信のセキュリティが確保され、そのAPIを呼び出すユーザーのアイデンティティが保護されるように、WebCenter PortalにWS-Securityを構成する場合に必要な管理者タスクについて説明します。
この項には次のトピックが含まれます:
WebCenter PortalクライアントAPIを使用するアプリケーションの標準トポロジの構成
クライアント・アプリケーションがWebCenter Portalと同じドメインの一部である場合は、GroupSpaceWSContext()
に対して次のコマンドを設定するだけで済みます。
GroupSpaceWSContext context = new GroupSpaceWSContext(); context.setRecipientKeyAlias("producer");
注意:
ここでの別名は常に公開鍵にする必要があります。
クライアント・アプリケーションがJDeveloperであり、WebCenter Portalサーバーの構成済キーストアにアクセスできる場合は、同じキーストアをJDeveloperのDefaultDomain/config/fmwconfig/dir
にコピーし、このキーストアを使用するようにJDeveloperドメインを構成します。これらの手順は、「WebCenter Portalドメイン・キーストアの作成」の手順とまったく同じであり、その上で、クライアント・スタブに次のコマンドを指定する必要があります。
GroupSpaceWSContext context = new GroupSpaceWSContext(); context.setRecipientKeyAlias("producer");
WebCenter PortalクライアントAPIを使用するアプリケーションの複数ドメイン・トポロジの構成
クライアント・アプリケーションがWebCenter Portalと同じドメインの一部である場合は、GroupSpaceWSContext()
に対して次のコマンドを設定するだけで済みます。
GroupSpaceWSContext context = new GroupSpaceWSContext(); context.setRecipientKeyAlias("producer");
注意:
ここでの別名は常に公開鍵にする必要があります。
クライアント・アプリケーションがJDeveloperの場合、同じキーストアをJDeveloperのDefaultDomain/config/fmwconfig/dir
にコピーして、このキーストアを使用するようにJDeveloperドメインを構成します。これらの手順は、「WebCenter Portalドメイン・キーストアの作成」の手順とまったく同じであり、その上で、クライアント・スタブに次のコマンドを指定する必要があります。
GroupSpaceWSContext context = new GroupSpaceWSContext(); context.setRecipientKeyAlias("producer");
標準トポロジの場合のJKSコマンド・サマリー
標準トポロジの場合にキーストアを迅速に構成するには、次のコマンド・サマリーを使用します。これらのコマンドは、JKSキーストアの構成方法について説明します。
WebCenter側
次のkeytool
コマンドを使用して、キーストアを生成し、太字で示した値をローカル環境の値に置き換えます。
keytool -genkeypair -keyalg RSA -dname "cn=spaces,dc=example,dc=com" -alias webcenter -keypass MyPassword -keystore webcenter.jks -storepass MyPassword -validity 1064
keytool -exportcert -v -alias webcenter -keystore webcenter.jks -storepass MyPassword -rfc -file webcenter_public.cer
SOA側
keytool -genkeypair -keyalg RSA -dname "cn=bpel,dc=example,dc=com" -alias bpel -keypass MyPassword -keystore bpel.jks -storepass MyPassword -validity 1024
keytool -exportcert -v -alias bpel -keystore bpel.jks -storepass MyPassword -rfc -file bpel.cer
keytool -importcert -alias webcenter_spaces_ws -file webcenter_public.cer -keystore bpel.jks -storepass welcome1
WebCenter側
keytool -importcert -alias bpel -file bpel.cer -keystore webcenter.jks -storepass welcome1
webcenter.jksファイルをdomain_home/config/fmwconfigディレクトリにコピーし、bpel.jksファイルをsoa_domain_home/config/fmwconfigディレクトリにコピーします。
SOAドメイン・キーストアの構成
次のWLSTコマンドを実行してキーストアを登録します。
configureWSMKeystore('/WLS/WC_Domain
',JKS, 'webcenter.jks', signAlias='producer', signAliasPassword='signAliasPassword', cryptAlias='cryptAlias', cryptAliasPassword='cryptAliasPassword')
ここで:
-
WC_Domain
— WebCenter Portalドメイン -
signAliasPassword — 公開鍵のパスワード
-
cryptAlias — 公開鍵別名
-
cryptAliasPassword — 公開鍵のパスワード
configureWSMKeystore(context='/WLS/WC_Domain
', keystoreType='JKS', location='./consumer.jks',keystorePassword='welcome1', signAlias='consumer', signAliasPassword='welcome1', cryptAlias='consumer', cryptAliasPassword='welcome1')
標準トポロジを拡張する場合のJKSコマンド・サマリー
複数ドメイン・トポロジの場合にキーストアおよびDFプロパティを迅速に構成するには、次のコマンド・サマリーを使用します。
WebCenter側
次のkeytool
コマンドを使用して、キーストアを生成し、太字で示した値をローカル環境の値に置き換えます。
keytool -genkeypair -keyalg RSA -dname "cn=spaces,dc=example,dc=com" -alias webcenter -keypass MyPassword -keystore webcenter.jks -storepass MyPassword -validity 1064
keytool -exportcert -v -alias webcenter -keystore webcenter.jks -storepass MyPassword -rfc -file webcenter_public.cer
SOA側。
keytool -genkeypair -keyalg RSA -dname "cn=bpel,dc=example,dc=com" -alias bpel -keypass MyPassword -keystore bpel.jks
keytool -exportcert -v -alias bpel -keystore bpel.jks -storepass MyPassword -rfc -file bpel.cer
keytool -importcert -alias webcenter_spaces_ws -file webcenter_public.cer -keystore bpel.jks -storepass welcome1
証明書を信頼するかを尋ねられたら、yes
と答えます。
ディスカッション
keytool -genkeypair -keyalg RSA -dname "cn=disc,dc=example,dc=com" -alias discussions -keypass MyPassword -keystore discussions.jks
keytool -exportcert -v -alias discussions -keystore discussions.jks -storepass MyPassword -rfc -file disc.cer
keytool -importcert -alias webcenter_public -file webcenter_public.cer -keystore discussions.jks -storepass MyPassword
証明書を信頼するかを尋ねられたら、yes
と答えます。
WebCenter側
keytool -importcert -alias df_webcenter_public -file disc.cert -keystore discussions.jks -storepass MyPassword
証明書を信頼するかを尋ねられたら、yes
と答えます。
keytool -importcert -alias webcenter_spaces_ws -file bpel.cer -keystore bpel.jks -storepass MyPassword
注意:
webcenter_spaces_ws
としての別名を維持します。
外部ディスカッション・サーバー・ドメイン・キーストアの構成
WebCenter側で次のWLSTコマンドを実行してキーストアを登録します。
configureWSMKeystore(context='/WLS/wc_domain',keystoreType='JKS',location='./producer.jks',keystorePassword='welcome1',signAlias='producer',signAliasPassword='welcome1',cryptAlias='producer',cryptAliasPassword='welcome1')
ここで:
-
wc_domain — WebCenter Portalドメイン
-
signAliasPassword — 公開鍵のパスワード
-
cryptAlias — 公開鍵別名
-
cryptAliasPassword — 公開鍵のパスワード
SOAドメイン・キーストアの構成
次のWLSTコマンドを実行してキーストアを登録します。
configureWSMKeystore(context='/WLS/wc_domain',keystoreType='JKS',location='./bpel.jks',keystorePassword='welcome1',signAlias='producer',signAliasPassword='welcome1',cryptAlias='producer',cryptAliasPassword='welcome1')
ここで:
-
wc_domain — WebCenter Portalドメイン
-
signAliasPassword — 公開鍵のパスワード
-
cryptAlias — 公開鍵別名
-
cryptAliasPassword — 公開鍵のパスワード
ディスカッション・キーストアの登録
次のWLSTコマンドを実行してキーストアを登録します。
configureWSMKeystore('/WLS/wc_domain','JKS', discussions.jks, signAlias='producer', signAliasPassword='signAliasPassword', cryptAlias='cryptAlias', cryptAliasPassword='cryptAliasPassword')
ここで:
-
wc_domain — WebCenter Portalドメイン
-
signAliasPassword — 公開鍵のパスワード
-
cryptAlias — 公開鍵別名
-
cryptAliasPassword — 公開鍵のパスワード
ディスカッション・サーバー接続の構成
「ディスカッション・サーバーの登録」で説明しているように、WebCenter Portalに構成されているディスカッション・サーバーの接続にWS-Securityクライアント証明書情報を指定します。「ディスカッションおよびお知らせ接続の編集」ページの接続詳細の設定の例は、「ディスカッション・サーバーの接続設定の構成」も参照してください。