ヘッダーをスキップ
Oracle® WebCenter Content Content Server開発者ガイド
11gリリース1(11.1.1)
B66702-01
  ドキュメント・ライブラリへ移動
ライブラリ
目次へ移動
目次
索引へ移動
索引

前
前へ
 
次
 

19 統合のためのWebCenter Content Webサービスの構成

この章では、Oracle WebCenter Content WebサービスをOracle WebLogic Server Webサービスとともに使用して、クライアント・アプリケーションをOracle WebCenter Content Serverと統合する方法について説明します。

この章では、次の項目について説明します。

コンテンツ・サーバーで使用できるWebサービスの一般的な情報については、第18.2項「Webサービスの概要」を参照してください。

この章で説明されているWebサービスの使用方法は、Oracle Universal Content Management 11gで導入されました。Oracle Universal Content Management 10gで導入された、Web Services Definition Language (WSDL)ファイル、SOAP (Simple Object Access Protocol)ファイルおよびWSDLジェネレータによる方法を使用する場合は、第25章「WSDL、SOAPおよびWSDLジェネレータを使用したWebサービスの構成」を参照してください。

19.1 統合のためのWebCenter Content Webサービスの構成について

WebCenter Content Webサービスは、Oracle WebLogic Server Webサービスと連携して、コンテンツ・サーバーのための管理機能を実行します。Oracle WebLogic Server Webサービスは、SOAP機能を提供し、WebCenter Content Webサービスには、複数の組込みSOAPリクエストが含まれています。WebCenter Content Webサービスは、コンテンツ・サーバーとともに自動的にインストールされますが、セキュリティを設定するには追加の構成が必要です。

WebCenter Content Webサービスのコアとなる実現技術は、次のようなものです。

19.1.1 WebCenter Content Webサービス

WebCenter Contentは、一般的な(汎用)JAX-WSベースのWebサービスと、ネイティブのSOAPベースのWebサービスという2つのタイプのWebサービスを提供します。2つのタイプのWebサービスはそれぞれ、異なるコンテキスト・ルートに存在します。コンテキスト・ルートは、WebサービスにアクセスするためのURL内の1次識別子です。

コンテキスト・ルートは次のとおりです。

  • idcws

    通常のWebサービス・クライアントからコンテンツ・サーバーへの一般的なアクセスでは、このコンテキスト・ルートを使用します。

  • idcnativews

    Remote Intradoc Client (RIDC)は、ネイティブのWebサービスを使用します。これらのサービスに対してカスタム・クライアントを開発しないことをお薦めします。RIDCの詳細は、第23章「RIDCを使用したコンテンツ・サーバーへのアクセス」を参照してください。

次の表では、idcwsコンテキスト・ルートのWebCenter Content Webサービスについて説明します。

WebCenter Content Webサービス 説明
GenericSoapService このサービスでは、そのSOAPフォーマットとしてHDAに類似した汎用フォーマットが使用されます。これは、IsSoap=1が設定されているときにコンテンツ・サーバーに対して実行できる汎用SOAPコールとほぼ同一です。フォーマットの詳細は、idcws/GenericSoapPort?WSDLの公開済WSDLを参照してください。

WS-Policyを通じてWS-SecurityをGenericSoapServiceに適用できます。コンテンツ・サーバーは、SAMLおよびusername-token用のOracle WSMポリシーをサポートしています。

WS-Securityポリシーがこのサービスに適用されることが許可された場合、このサービスでは、ストリーム・メッセージ送信最適化メカニズム(MTOM)を使用することはできません。非常に大きなファイル(クライアントやサーバーのメモリーを超えるサイズのファイル)をアップロードまたはダウンロードすることはできません。


次の表では、idcnativewsコンテキスト・ルートのWebCenter Content Webサービスについて説明します。

WebCenter Content Webサービス 説明
IdcWebRequestService これは、一般的なWebCenter Contentサービスです。これは基本的に、SOAPリクエストにラップされた、コンテンツ・サーバーへの通常のソケット・リクエストです。大きなファイルをサポートするために、リクエストは、ストリーム・メッセージ送信最適化メカニズム(MTOM)を使用してコンテンツ・サーバーに送信されます。

ストリームMTOMとWS-Securityを混在させることはできません。したがって、このサービスにはWS-Securityを適用しないでください。ストリーム・ファイル・サポートが損なわれます。セキュリティを確保するため、まずIdcWebLoginServiceを使用してログインし、その後、そのサービスから受信した同じJSESSIONIDを、IdcWebRequestServiceへの次のコールでCookieとして使用します。

IdcWebLoginService このサービスは、IdcWebRequestServiceコールにセキュリティを追加するためにのみ使用されます。このサービスには、パラメータはありません。これは単にセッションを作成するのみです。取得する重要なフィールドは、IdcWebRequestServiceへの以降のコールで使用するJSESSIONID値です。IdcWebRequestServiceでWS-Securityを使用する場合は、ここで適用します。コンテンツ・サーバーは、SAMLおよびusername-token用のOracle WSMポリシーをサポートしています。

19.2 Webサービス・ポリシーを使用したWebサービス・セキュリティの構成

WebCenter Content Webサービスは、WebCenter Content EARとともにインストールされ、デフォルトで使用可能になっています。ただし、いずれかのWebCenter Content WebサービスでWebサービス・セキュリティ(WS-Security)を構成しないかぎり、コンテンツ・サーバーへのすべての接続でanonymousユーザーが使用されます。WebCenter Content Webサービスのためのセキュリティを構成するには、WS-Policyを使用してWS-Securityを構成します。認証の有効化には、追加の構成が必要です。

19.2.1 WS-Policyを使用したWS-Securityの構成

WS-Securityは、Webサービス・ポリシー(WS-Policy)を使用して設定されます。Webサービスに対してセキュリティ・ポリシーを設定して、それらのセキュリティ・プロトコルを定義できます。特に、WebCenter Content Webサービスは、Oracle WSMポリシーをサポートしています。

WebCenter Contentは、2つの一般クラスのポリシーusername-tokenとSAML、および次のOracle WSMポリシーをサポートしています。

  • oracle/wss11_saml_token_with_message_protection_service_policy

  • oracle/wss11_username_token_with_message_protection_service_policy

WS-Policyを使用してWS-Securityを構成する手順は次のとおりです。

  1. Oracle WebLogic Server管理コンソールにアクセスします。

  2. サイド・パネルから「デプロイメント」を選択します。

  3. 「デプロイメント」表で、WebCenter Content Native Web ServicesまたはWebCenter Content Web Servicesのいずれかを開きます。

  4. Webサービスの名前(GenericSoapServiceなど)をクリックします。

  5. Webサービスの「設定」ページの「構成」タブをクリックし、WS-Policyタブをクリックします。

  6. メイン・サービスをクリックします。ここで、追加するOracle WSMポリシーを選択できます。

  7. Oracle WSMポリシーの追加が終わったら、追加内容を保存するために、WebCenter ContentのネイティブWebサービスまたはWebCenter Contentの汎用Webサービスを更新する必要があります。

19.3 SAMLサポートの構成

クライアント側の証明書認証に対するSAMLサポートも提供できます。クライアントがIDプロバイダであることを可能にする(つまり、資格証明をアサートできる)ようにSAMLサポートを提供するには、キーストアを構成し、そのキーストアを使用するためのJavaプラットフォーム・セキュリティ(JPS)プロバイダを構成し、クライアントの資格証明ストア(CSF)を作成し、キーストアとCSFを使用するためのJavaクライアントを構成する必要があります。

19.3.1 キーストアの構成

サーバーとクライアントの両方でキーストアのコピーが必要です。サーバーは、キーストアを使用して、クライアントから渡された資格証明を認証します。キーストアは共有シークレットとしてのみ使用されるため、この状況では、自己署名証明書が役に立ちます。keytoolユーティリティを使用して、自己署名証明書を生成できます。次の例の値の多くは、ドメインのconfig/fmwconfig/jps-config.xmlファイルのデフォルト値です。これについては、第19.3.2項「キーストアを使用するための、WebCenter Contentに対するJPSの構成」で説明されています。

$ keytool -genkey -alias orakey -keyalg RSA -keystore default-keystore.jks -keypass welcome -storepass welcome

keytoolコマンドには、任意の関連データを入力できます。クライアントが使用するキーストアおよび証明書のパスワードを除いて、詳細は重要ではありません。

19.3.2 キーストアを使用するための、WebCenter Contentに対するJPSの構成

Oracle WebLogic Serverドメインにおけるキーストアの構成には、DomainHome/config/fmwconfig/jps-config.xmlファイルの編集が含まれます。

キーストアを使用するためにWebCenter Contentに対してJPSを構成する手順は次のとおりです。

  1. <serviceProviders>要素でプロバイダが定義されていることを確認するか、プロバイダを定義します。

    プロバイダは、この要素にデフォルトで定義されている必要があります。そうでない場合、例19-1に示されているように、プロバイダを定義する<serviceProvider>要素を追加する必要があります。

    例19-1 jps-config.xmlにおけるサービス・プロバイダ定義

    <serviceProviders>
      <serviceProvider type="KEY_STORE" name="keystore.provider"
          class="oracle.security.jps.internal.keystore.KeyStoreProvider">
          <description>PKI Based Keystore Provider</description>
          <property name="provider.property.name" value="owsm"/>
      </serviceProvider>
    </serviceProviders>
    
  2. キーストア・インスタンスが<serviceInstances>に定義されていることを確認します。

    キーストア・インスタンスは、デフォルトで定義されている必要があります。

    キーストア・インスタンスは、この要素にデフォルトで定義されている必要があります。そうでない場合、例19-2に示されているように、キーストア・インスタンスを定義する<serviceInstance>要素を追加する必要があります。

    例19-2 jps-config.xmlにおけるキーストア・インスタンス定義

    <serviceInstances>
      <serviceInstance name="keystore" provider="keystore.provider"
          location="./default-keystore.jks">      <description>Default JPS Keystore Service</description>      <property name="keystore.type" value="JKS"/>      <property name="keystore.csf.map" value="oracle.wsm.security"/>      <property name="keystore.pass.csf.key" value="keystore-csf-key"/>      <property name="keystore.sig.csf.key" value="sign-csf-key"/>      <property name="keystore.enc.csf.key" value="enc-csf-key"/>  </serviceInstance>
    </serviceInstances>
    

    キーストア・インスタンスの場所は、キーストアを作成したところと同じ場所に設定する必要があります。

  3. キーストアへの参照が<jpsContexts>要素内にあることを確認します。

    この設定は、デフォルトでjps-config.xmlファイル内に存在する必要があります。そうでない場合、例19-3に示されているように、設定を追加する必要があります。

    例19-3 JPSコンテキストにおけるキーストア

    <jpsContext name="default">    <serviceInstanceRef ref="credstore"/>    <serviceInstanceRef ref="keystore"/>    <serviceInstanceRef ref="policystore.xml"/>    <serviceInstanceRef ref="audit"/>    <serviceInstanceRef ref="idstore.ldap"/></jpsContext>
    
  4. jps-config.xmlファイルを保存し、第15.4項「コンテンツ・サーバーの再起動によるコンポーネントの適用」の説明に従って、WebCenter Content管理対象サーバーと管理サーバーを再起動します。

19.3.3 クライアントCSFの作成

クライアントでは、キーストアをロック解除するためのキーを格納する資格証明ストアが必要です。Oracle WebLogic Serverは、資格証明ストア・フレームワーク(CSF)を作成するための様々な方法を提供します。CSFを作成する1つの方法は、Oracle WebLogic Server Scripting Tool (WLST)コマンドを使用することです。

クライアントCSFを作成する手順は次のとおりです。

  1. 例19-4に示されているように、Oracle WebLogic Serverドメインに接続します。

    例19-4 WLSTコマンドを使用したクライアントCSFの作成

    $ ./wlst.sh
    
    $ connect()
    
    $ createCred(map="oracle.wsm.security", key="keystore-csf-key", user="keystore", password="welcome")
    $ createCred(map="oracle.wsm.security", key="sign-csf-key", user="orakey", password="welcome")
    $ createCred(map="oracle.wsm.security", key="enc-csf-key", user="orakey", password="welcome")
    
  2. 例19-4に示されているように、WLST createCredコマンドを使用して、CSFを定義します。

    作成したキーストアの別名およびパスワードに一致するように、この例の値を変更します。

    WLSTにより、DomainHome/config/fmwconfig/cwallet.ssoにCSFウォレットが作成されます。このウォレットは、クライアント上でのみ使用可能です。

  3. WLSTを終了し、ドメインの管理サーバーを再起動します。

  4. ウォレットのコピーをクライアントに送信します。

19.3.4 キーストアおよびCSFを使用するためのJavaクライアントの構成

Javaクライアントを構成してキーストアおよびCSFを使用できるようにするには、クライアントに次のアイテムが存在している必要があります。

  • キーストアのコピー

  • CSFウォレットのコピー

  • jps-config.xmlファイルのクライアント・バージョン

キーストアおよびCSFを使用するためにJavaクライアントを構成する手順は次のとおりです。

  1. Javaクライアントのjps-config.xmlファイルを編集します。

  2. 例19-5に示されているように、キーストアおよびCSFウォレットの場所を追加し、ファイルを保存します。

    例19-5 Javaクライアントのjps-config.xmlファイルにおけるキーストアおよびCSFの場所

    <jpsConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="jps-config.xsd">    <serviceProviders>        <serviceProvider name="credstoressp" 
                     class="oracle.security.jps.internal.credstore.ssp.SspCredentialStoreProvider">            <description>SecretStore-based CSF Provider</description>        </serviceProvider>               <serviceProvider type="KEY_STORE" name="keystore.provider" 
                     class="oracle.security.jps.internal.keystore.KeyStoreProvider">            <description>PKI Based Keystore Provider</description>            <property name="provider.property.name" value="owsm"/>        </serviceProvider>    </serviceProviders>    <serviceInstances>        <serviceInstance name="credstore" provider="credstoressp" location="./"> 
                <description>File Based Credential Store Service Instance</description> 
            </serviceInstance>               <serviceInstance name="keystore" provider="keystore.provider" 
                     location="./default-keystore.jks"> 
                <description>Default JPS Keystore Service</description> 
                <property name="keystore.type" value="JKS"/> 
                <property name="keystore.csf.map" value="oracle.wsm.security"/> 
                <property name="keystore.pass.csf.key" value="keystore-csf-key"/>
                <property name="keystore.sig.csf.key" value="sign-csf-key"/> 
                <property name="keystore.enc.csf.key" value="enc-csf-key"/> 
            </serviceInstance> 
        </serviceInstances>    <jpsContexts default="default">        <jpsContext name="default">            <serviceInstanceRef ref="credstore"/>            <serviceInstanceRef ref="keystore"/>        </jpsContext>    </jpsContexts></jpsConfig>
    
  3. Javaシステム・プロパティoracle.security.jps.configを、jps-config.xmlファイルを指すように設定します。

    System.setProperty("oracle.security.jps.config", “jps-config.xml”);
    

    実行時、クライアントでこの場所を設定できます。