ヘッダをスキップ
Oracle® WebLogic Communication Services 管理ガイド
11g リリース 1 (11.1.1)
B55505-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

18 Parlay X Web Services のアーキテクチャ

この章では、OWLCS Parlay X Web Services のアーキテクチャ、セキュリティ、およびインストールについて説明します。この章の内容は以下のとおりです。

18.1 Web サービス クライアント アプリケーションのアーキテクチャ

クライアント アプリケーションのアーキテクチャでは、Web サービスの 1 つのクライアントが、システムの多数のエンド ユーザに代わって機能します。

複数のユーザが同じ Web サービス クライアントに同時に接続でき、クライアントはこれらのユーザの代わりに Web サービスを起動します。次の使用時のガイドラインに注意してください。

18.2 Web サービスのセキュリティ

デフォルトでは、すべてのデプロイされた OWLCS Web サービスは保護されていません。プロダクション環境にデプロイされるサービスでは、Web サービス セキュリティを有効にする必要があります。

OWLCS では、OWLCS Web サービスを保護する Oracle Web Services Manager の WS-Security ポリシーの使用がサポートされています。Oracle Web Services Manager の詳細については、『Oracle Fusion Middleware Oracle WebLogic Server Web サービスのセキュリティ』の「Using Oracle Web Service Security Policies」を参照してください。

OWLCS Web サービスで推奨されるセキュリティ コンフィグレーションでは、Security Assertion Markup Language (SAML) トークンを使用して、Web サービス クライアントと OWLCS の間で ID の受け渡しを行います。SAML トークンを使用すると、Web サービス クライアントがユーザ名とパスワードを OWLCS に渡す代わりに、証明書の交換を通じてクライアントと OWLCS の間の信頼関係が確立されます。このようなキーストア コンフィグレーションが作成されると、Web サービス クライアントはユーザ ID のみを渡して、ユーザが適切に認証されていることを保証します。

OWLCS Web サービスで使用が推奨されるポリシーは、以下のとおりです。

18.2.1 通知時の Web サービス セキュリティ

各種の Web サービスには、クライアント側で実行される、対応する通知 Web サービス (MessageNotification、PresenceNotification) が含まれており、これらは該当するイベントが発生すると通知 (メッセージ配信ステータス、メッセージの受信、プレゼンス ステータスの変更) を受け取ります。この実装では、クライアントへの通知時に、デフォルトで Web サービス セキュリティ (WS-Security) が使用されません。つまり、サーバでは、クライアント側で実行される通知 Web サービスで WS-Security が使用されないことを想定し、通知を送信する際に自身の認証を試行しません。クライアント側で WS-Security を有効にすると、通知 SOAP リクエストに必要なヘッダが含まれていないため、サーバからの通知は失敗します。

18.2.2 OWLCS サービス セキュリティの有効化

OWLCS Web サービスのポリシーを有効にするには、『Oracle Fusion Middleware Oracle WebLogic Server Web サービスのセキュリティ』の「Configuring Oracle WSM Security Policies in Administration Console」の手順に従って、ポリシー oracle/wss11_saml_token_with_message_protection_service_policy を選択します。保護する必要のあるサービスごとに、このコンフィグレーションを繰り返す必要があります。

18.2.3 クライアントのセキュリティの有効化

Web サービス クライアントのセキュリティはプログラムで有効にする必要があります。『Oracle WebLogic Communication Services 開発者ガイド』に記述されたクライアント ライブラリを使用する場合は、クライアント オブジェクトの作成時に WS-Security ポリシー コンフィグレーションが提供されます。クライアントのコンストラクタは型 Map<String, Object> の引数を取ります。 SAML 認証を使用する場合は、通常、エンドポイント アドレスなどの他の必須プロパティのほかに、キーと値の組み合わせ (表 18-1) をコンフィグレーション マップに追加する必要があります。

表 18-1 クライアントのセキュリティ キー

キー 通常の値

oracle.sdp.parlayx.ParlayXConstants.POLICIES

String[]

oracle/wss11_saml_token_with_message_protection_client_policy

javax.xml.ws.BindingProvider.USERNAME_PROPERTY

String

<有効なユーザ名>

oracle.wsm.security.util.SecurityConstants.Config.KEYSTORE_RECIPIENT_ALIAS_PROPERTY

String

(省略可能) 対象となるサービスのキーストア エリアス。「クライアントのエリアス」を参照してください。


例 18-1 Web サービス クライアントのセキュリティ

import oracle.sdp.parlayx.presence.consumer.PresenceConsumerClient;
 
...
 
Map<String, Object> config = new HashMap<String, Object>();
config.put(javax.xml.ws.BindingProvider.ENDPOINT_ADDRESS_PROPERTY, owlcs_url);
config.put(oracle.sdp.parlayx.ParlayXConstants.POLICIES, new String[] {"oracle/wss11_saml_token_with_message_protection_client_policy"});
config.put(javax.xml.ws.BindingProvider.USERNAME_PROPERTY, "test.user1");
 
PresenceConsumerClient presenceClient = new PresenceConsumerClient(config);

18.2.4 キーストアのコンフィグレーション

推奨される WS-Security ポリシーを使用するには、OWSM に必要なパブリック キーおよびプライベート キー情報が含まれているキーストアをコンフィグレーションする必要があります。キーストアおよび該当する資格ストア エントリをコンフィグレーションする方法については、『Oracle Fusion Middleware Oracle WebLogic Server Web サービスのセキュリティ』の「Configuring the Credential Store Using WLST」を参照してください。

  • Web サービス クライアントと OWLCS サーバが同じドメイン内にある場合は、キーストアと資格ストアが共有されます。

  • Web サービス クライアントと OWLCS サーバが異なるドメイン内にある場合は、OWLCS のパブリック キーをクライアント ドメインのキーストアにインポートし、クライアント ドメインのパブリック キーを OWLCS のキーストアにインポートする必要があります。

18.2.5 クライアントのエリアス

ここで推奨される SAML ポリシーなどの特定の WS-Security ポリシーを使用する場合、クライアントではサーバのパブリック キーを使用して Web サービス リクエストを暗号化する必要があります。ただし、1 つのドメインにつきコンフィグレーションされているキーストアは通常 1 つのみです。このため、あるドメインの Web サービス クライアントが他の複数のドメイン内の Web サービスと通信するようなときは、OWSM で使用されるデフォルトのキーストア エントリをオーバーライドする必要がある場合があります。

たとえば、あるドメインに、SOA Web サービスに対する Web サービス クライアントであるアプリケーション「A」と、OWLCS Web サービスに対する Web サービス クライアントであるアプリケーション「B」があるとします。この場合、A のリクエストは SOA ドメインのパブリック キーを使用して暗号化し、B のリクエストは OWLCS ドメインのパブリック キーを使用して暗号化する必要があります。これを行うには、OWSM で使用されるキーストア エリアスを各リクエストでオーバーライドします。

  • 2 つのサーバ ドメインのパブリック キーを、それぞれ異なるキーストア エリアスを使用してクライアント ドメインのキーストアにインポートします。たとえば、OWLCS パブリック キーにエリアス「owlcs_public_key」、SOA パブリック キーにエリアス「soa_public_key」を使用してインポートします。

  • OWLCS Web サービス クライアントを作成する場合に、受信者のキーストア エリアス パラメータを指定します。キーを oracle.wsm.security.util.SecurityConstants.Config.KEYSTORE_RECIPIENT_ALIAS_PROPERTY に設定し、値を「owlcs_public_key」に設定します (例 18-2 を参照)。

    例 18-2 クライアントのエリアス

    import oracle.sdp.parlayx.presence.consumer.PresenceConsumerClient;
     
    ...
     
    Map<String, Object> config = new HashMap<String, Object>();
    config.put(javax.xml.ws.BindingProvider.ENDPOINT_ADDRESS_PROPERTY, owlcs_url);
    config.put(oracle.sdp.parlayx.ParlayXConstants.POLICIES, new String[] {"oracle/wss11_saml_token_with_message_protection_client_policy"});
    config.put(javax.xml.ws.BindingProvider.USERNAME_PROPERTY, "test.user1");
    config.put(oracle.wsm.security.util.SecurityConstants.Config.KEYSTORE_RECIPIENT_ALIAS_PROPERTY, "owlcs_public_key")
    PresenceConsumerClient presenceClient = new PresenceConsumerClient(config);
    
  • SOA などの Web サービス クライアントでも同様にキーストア エリアスをオーバーライドする必要がありますが、厳密なメカニズムは異なる場合があります。たとえば、JAX-WS クライアント スタブ ディレクトリを使用している場合は、オーバーライド プロパティを JAX-WS リクエスト コンテキストに追加できます。詳細については、『Oracle Fusion Middleware Oracle WebLogic Server Web サービスのセキュリティ』の「Policy Configuration Overrides for the Web Service Client」を参照してください。

18.3 Web サービスのインストール

Web サービスは標準の .ear ファイルとしてパッケージ化されており、Enterprise Manager から任意の他の Web サービスと同様にデプロイできます。.ear ファイルには、2 つのインタフェースを実装する 2 つの .war ファイルが含まれています。Web サービスは、oracle.sdp.clientoracle.sdp.platformoracle.sdp.presencecommons という共有ライブラリに依存しています。

クライアント アプリケーションでは、OWLCS で提供される oracle.sdp.client 共有ライブラリをインポート (およびコンパイル) する必要があります。この場合、プロジェクトに parlayx.jar をインポートします。

oracle.sdp.client 共有ライブラリは、これに対してコンパイルするだけでなく、対象のランタイム環境で使用可能にする必要があります (つまり、oracle.sdp.client は対象の Weblogic Server に共有ライブラリとしてデプロイされます)。

これらの共有ライブラリ以外に、OWLCS のインストールには通知 Web サービス用の war ファイルが含まれています。これらの war ファイルには、開発者がさまざまな Web サービスの通知を有効にするためにインポートする必要のあるすべての jar ファイルが含まれています。