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
ロールを持つユーザーは、セキュリティ情報を表示できますが変更することはできません。
「管理操作、ロールおよびツールの理解」も参照してください。
この項では、WebCenter Portalアプリケーション、WSRPプロデューサおよびディスカッション・サーバーは同一ドメインを共有しているが、BPEL (SOA)サーバーは外部ドメインに配置されているトポロジの場合にWS-Securityを構成する方法を説明します。
標準トポロジ
ドメイン1 : WebCenter Portal、ディスカッション、ポートレット・プロデューサ
ドメイン2 : SOA
標準の2つのドメイン・トポロジの場合にWS-Securityを構成する手順は、次の各項で説明しています。
この項では、OPSSキーストア・サービス(KSS)を使用してWebCenter Portalキーストアおよびキーを作成する方法を説明します。キーストアとは、使用可能な公開鍵および秘密鍵の情報を提供するファイルです。キーは、認証やデータ整合性など、様々な目的に使用されます。また、ユーザー証明書や、ピア証明書の検証に必要なトラスト・ポイントも、キーストアにセキュアに格納されます。キーストアを作成すると、KSSを使用して、WebCenter Portal、ディスカッション・サーバー、BPELサーバーおよびWSRPプロデューサのセキュリティ資格証明を取得および管理できます。OPSSキーストア・サービスの詳細は、『Oracle Platform Security Servicesによるアプリケーションの保護』のキーストア・サービスを使用したキーと証明書の管理に関する項を参照してください。
WebCenter Portalドメイン・キーストアを作成するには:
この項では、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インスタンスでは、割り当てられたセキュリティ/ポリシーの構成は、セキュリティ・ポリシーなしに設定されます。Oracle Web Services Manager (OWSM)のセキュリティ・ポリシーを、WebCenter PortalのWebサービス・エンドポイントおよびディスカッションの認証Webサービス・エンドポイントに添付する必要があります。本番環境では、「ディスカッション・エンドポイントの保護」の手順に従って、セキュリティを強化することで続行します。
注意:
パッチが適用されるWebCenter Portalインスタンスでは、パッチを適用する前にポリシー名を決定し、パッチを適用した後にポリシーを添付する必要があります。必要な手順は、『Oracle Identity and Access Managementパッチ適用ガイド』のOracle WebCenterへのパッチ適用に関する項を参照してください。
Webサービス・セキュリティ・ポリシー構成を新しいインスタンスに添付する手順は次のとおりです。
注意:
クラスタ化環境では、WebCenter Portalおよびディスカッションがデプロイされている管理対象サーバーごとにこれらの手順を繰り返します。
ディスカッションWebサービス・エンドポイントでは、WebCenter Portalから発信されるコールに対してユーザー・アイデンティティを伝播する必要があります。本番環境では、転送中に他者がメッセージを改ざんしたり、表示したりできないように、Webサービス・エンドポイントをOWSMポリシーで保護する必要があります。これを実行するには、パブリック・アクセス用のWebサービス・エンドポイントと認証済ユーザー・アクセス用のエンドポイントの両方を、Fusion Middleware ControlまたはWLSTを使用して適切なOWSMポリシーで保護する必要があります。
この項では、次の項目について説明します。
Fusion Middleware Controlを使用してディスカッション・エンドポイントを保護する手順は次のとおりです。
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クライアント証明書情報を指定する必要があります。図30-6 は、「ディスカッションおよびお知らせ接続の編集」ページの接続詳細の設定の例を示しています。
この項では、たとえば、WebCenter Portalアプリケーション、BPEL (SOA)サーバー、ディスカッション・サーバーおよびWSRPプロデューサ・サーバーがそれぞれ独自のドメインに存在するトポロジの場合に、標準トポロジのWS-Securityの構成を拡張する方法を説明します。
複数ドメイン・トポロジ
ドメイン1 : WebCenter Portal
ドメイン2 : SOA (BPEL)サーバー
ドメイン3 : ディスカッション・サーバー
ドメイン4 : WSRPプロデューサ
複数のドメインが含まれるトポロジの場合にWS-Securityを構成する手順は、次の各トピックで説明しています。
WebCenter Portalドメイン・キーストアを作成する場合は、「WebCenter Portalドメイン・キーストアの作成」で説明している、標準トポロジでWS-securityを構成する手順に従います。キーストアを作成すると、KSSを使用して、WebCenter Portal、ディスカッション・サーバー、BPELサーバーおよびWSRPプロデューサのセキュリティ資格証明を取得および管理できます。OPSSキーストア・サービスの詳細は、『Oracle Platform Security Servicesによるアプリケーションの保護』のキーストア・サービスを使用したキーと証明書の管理に関する項を参照してください。
「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クライアント証明書情報を指定する必要があります。図30-7 は、「ディスカッションおよびお知らせ接続の編集」ページの接続詳細の設定の例を示しています。
この項では、WebCenter Portal APIを公開するアプリケーション(コンシューマ)とWebCenter Portal (プロデューサ)の間の通信のセキュリティが確保され、そのAPIを呼び出すユーザーのアイデンティティが保護されるように、WebCenter PortalにWS-Securityを構成する場合に必要な管理者タスクについて説明します。
この項には次のトピックが含まれます:
クライアント・アプリケーションがWebCenter Portalと同じドメインの一部である場合は、GroupSpaceWSContext()
に対して次のコマンドを設定するだけで済みます。
GroupSpaceWSContext context = new GroupSpaceWSContext(); context.setRecipientKeyAlias("webcenter");
注意:
ここでの別名は常に公開鍵にする必要があります。
クライアント・アプリケーションがJDeveloperであり、WebCenter Portalサーバーの構成済キーストアにアクセスできる場合は、同じキーストアをJDeveloperのDefaultDomain/config/fmwconfig/dir
にコピーし、このキーストアを使用するようにJDeveloperドメインを構成します。これらの手順は、「WebCenter Portalドメイン・キーストアの作成」の手順とまったく同じであり、その上で、クライアント・スタブに次のコマンドを指定する必要があります。
GroupSpaceWSContext context = new GroupSpaceWSContext(); context.setRecipientKeyAlias("webcenter");
クライアント・アプリケーションがWebCenter Portalと同じドメインの一部である場合は、GroupSpaceWSContext()
に対して次のコマンドを設定するだけで済みます。
GroupSpaceWSContext context = new GroupSpaceWSContext(); context.setRecipientKeyAlias("webcenter");
注意:
ここでの別名は常に公開鍵にする必要があります。
クライアント・アプリケーションがJDeveloperの場合、同じキーストアをJDeveloperのDefaultDomain/config/fmwconfig/dir
にコピーして、このキーストアを使用するようにJDeveloperドメインを構成します。これらの手順は、「WebCenter Portalドメイン・キーストアの作成」の手順とまったく同じであり、その上で、クライアント・スタブに次のコマンドを指定する必要があります。
GroupSpaceWSContext context = new GroupSpaceWSContext(); context.setRecipientKeyAlias("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
keytool -importcert -alias webcenter_spaces_ws -file webcenter_public.cer -keystore bpel.jks -storepass MyPassword
証明書がすでに存在することを伝えるプロンプトが表示されたら、yes
と答えます。
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 orakay.cer
keytool -importcert -alias orakey -file orakay.cer -keystore webcenter.jks -storepass MyPassword
証明書を信頼するかを尋ねられたら、yes
と答えます。
keytool -importcert -alias df_webcenter_public -file webcenter_public.cer -keystore owc_discussions.jks -storepass MyPassword
証明書を信頼するかを尋ねられたら、yes
と答えます。
webcenter.jks
ファイルをdomain_home/config/fmwconfig
ディレクトリにコピーし、bpel.jks
ファイルをsoa_domain_home/config/fmwconfig
ディレクトリにコピーします。
SOAドメイン・キーストアの構成
次のWLSTコマンドを実行してキーストアを登録します。
configureWSMKeystore('/WLS/wc_domain','JKS', 'kss://appstripe/producer', signAlias='producer', signAliasPassword='signAliasPassword', cryptAlias='cryptAlias', cryptAliasPassword='cryptAliasPassword')
ここで:
wc_domain — WebCenter Portalドメイン
signAliasPassword — 公開鍵のパスワード
cryptAlias — 公開鍵別名
cryptAliasPassword — 公開鍵のパスワード
複数ドメイン・トポロジの場合にキーストアおよびDFプロパティを迅速に構成するには、次のコマンド・サマリーを使用します。
キーストアの生成
次の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
keytool -importcert -alias df_webcenter_public -file webcenter_public.cer -keystore owc_discussions.jks -storepass MyPassword
証明書を信頼するかを尋ねられたら、yes
と答えます。
keytool -importcert -alias webcenter_spaces_ws -file webcenter_public.cer -keystore bpel.jks -storepass MyPassword
証明書を信頼するかを尋ねられたら、yes
と答えます。
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 orakay.cer
keytool -importcert -alias orakey -file orakay.cer -keystore webcenter.jks -storepass MyPassword
証明書を信頼するかを尋ねられたら、yes
と答えます。
keytool -importcert -alias webcenter_public -file webcenter_public.cer -keystore producer.jks -storepass MyPassword
証明書を信頼するかを尋ねられたら、yes
と答えます。
keytool -genkeypair -keyalg RSA -dname "cn=producer,dc=example,dc=com" -alias producer -keypass MyPassword -keystore producer.jks -storepass MyPassword -validity 1024
keytool -exportcert -v -alias producer -keystore producer.jks -storepass MyPassword -rfc -file producer_public_key.cer
keytool -importcert -alias webcenter_public -file webcenter_public.cer -keystore external_webcenter_custom.jks -storepass MyPassword
証明書を信頼するかを尋ねられたら、yes
と答えます。
keytool -genkeypair -keyalg RSA -dname "cn=external_webcenter_custom,dc=example,dc=com" -alias external_webcenter_custom -keypass MyPassword -keystore external_webcenter_custom.jks -storepass MyPassword -validity 1024
keytool -exportcert -v -alias external_webcenter_custom -keystore external_webcenter_custom.jks -storepass MyPassword -rfc -file external_webcenter_custom_public_key.cer
keytool -importcert -alias producer_public_key -file producer_public_key.cer -keystore webcenter.jks -storepass MyPassword
証明書を信頼するかを尋ねられたら、yes
と答えます。
keytool -importcert -alias external_webcenter_custom_public_key -file external_webcenter_custom_public_key.cer -keystore webcenter.jks -storepass MyPassword
証明書を信頼するかを尋ねられたら、yes
と答えます。
webcenter.jks
をdomain_home/config/fmwconfig
ディレクトリに、bpel.jks
をSOA1_domain_home/config/fmwconfig
ディレクトリに、producer.jks
をExternal_Portlet_domain_home/config/fmwconfig
ディレクトリに、およびexternal_webcenter_custom.jks
をExternal_WebCenter_domain_home/config/fmwconfig
ディレクトリにコピーします。
外部ディスカッション・サーバー・ドメイン・キーストアの構成
次のWLSTコマンドを実行してキーストアを登録します。
configureWSMKeystore('/WLS/wc_domain','JKS', 'kss://appstripe/producer', signAlias='producer', signAliasPassword='signAliasPassword', cryptAlias='cryptAlias', cryptAliasPassword='cryptAliasPassword')
ここで:
wc_domain — WebCenter Portalドメイン
signAliasPassword — 公開鍵のパスワード
cryptAlias — 公開鍵別名
cryptAliasPassword — 公開鍵のパスワード
SOAドメイン・キーストアの構成
次のWLSTコマンドを実行してキーストアを登録します。
configureWSMKeystore('/WLS/wc_domain','JKS', 'kss://appstripe/producer', signAlias='producer', signAliasPassword='signAliasPassword', cryptAlias='cryptAlias', cryptAliasPassword='cryptAliasPassword')
ここで:
wc_domain — WebCenter Portalドメイン
signAliasPassword — 公開鍵のパスワード
cryptAlias — 公開鍵別名
cryptAliasPassword — 公開鍵のパスワード
外部ポートレット・プロデューサ・ドメイン・キーストアの構成
次のWLSTコマンドを実行してキーストアを登録します。
configureWSMKeystore('/WLS/wc_domain','JKS', 'kss://appstripe/producer', signAlias='producer', signAliasPassword='signAliasPassword', cryptAlias='cryptAlias', cryptAliasPassword='cryptAliasPassword')
ここで:
wc_domain — WebCenter Portalドメイン
signAliasPassword — 公開鍵のパスワード
cryptAlias — 公開鍵別名
cryptAliasPassword — 公開鍵のパスワード
ディスカッション・サーバー接続の構成
「ディスカッション・サーバーの登録」で説明しているように、WebCenter Portalに構成されているディスカッション・サーバーの接続にWS-Securityクライアント証明書情報を指定します。「ディスカッションおよびお知らせ接続の編集」ページの接続詳細の設定の例は、「ディスカッション・サーバーの接続設定の構成」も参照してください。