Oracle® WebCenter Content Content Server開発者ガイド 11gリリース1(11.1.1) B66702-01 |
|
前へ |
次 |
ホーム > Content Server開発者ガイド > 統合のための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サービスの構成」を参照してください。
WebCenter Content Webサービスは、Oracle WebLogic Server Webサービスと連携して、コンテンツ・サーバーのための管理機能を実行します。Oracle WebLogic Server Webサービスは、SOAP機能を提供し、WebCenter Content Webサービスには、複数の組込みSOAPリクエストが含まれています。WebCenter Content Webサービスは、コンテンツ・サーバーとともに自動的にインストールされますが、セキュリティを設定するには追加の構成が必要です。
WebCenter Content Webサービスのコアとなる実現技術は、次のようなものです。
SOAP (Simple Object Access Protocol)は、リクエストおよびレスポンス・メッセージをネットワーク経由で送信する前にそれらの中の情報をエンコードするために使用される、軽量のXMLベース・メッセージング・プロトコルです。SOAPリクエストは、実装のためにWebCenter Content WebサービスからOracle WebLogic Server Webサービスに送信されます。SOAPの詳細は、http://www.w3.org/TR/soap12
の『Simple Object Access Protocol (SOAP)』を参照してください。
Webサービス・セキュリティ(WS-Security)は、機密保護、整合性および認証によってWebサービスを保護するための、標準セットのSOAP拡張機能です。WebCenter Content Webサービスでは、特定のユーザーとしてサーバーに接続するクライアントに対して、またはユーザーとして別なサーバーと対話するサーバーに対して、認証のためにWS-Securityが使用されます。詳細は、http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wss
の『OASIS Web Service Security』のWebページを参照してください。
Webサービス・ポリシー(WS-Policy)は、Webサービスにポリシーを添付するための標準です。WebCenter Content Webサービスでは、WebサービスにWS-Securityを適用するためにポリシーが使用されます。サポートされている2つのポリシーは、username-token
セキュリティとSAMLセキュリティです。
これまで、OracleはOracle Web Services Manager (Oracle WSM)をそのWebサービスの保護に使用し、Oracle WebLogic ServerはWeb Services Security Policy (WS-SecurityPolicy)をそのWebサービスの保護に使用していました。Webサービス・セキュリティは部分的に標準化されているため、一部のOracle WSMおよびWS-SecurityPolicyポリシーは相互に機能します。
注意: 可能な場合には必ず、Oracle WebLogic Server Webサービスに対してOracle WSMを使用してください。同じWebサービスで、Oracle WSMとOracle WebLogic Server Webサービスのポリシーを混在させて使用することはできません。 |
WebCenter Content Webサービス(コンテキスト・ルートはidcws/
)はSOAPベースです。一方、WebCenter Content のネイティブWebサービス (コンテキスト・ルートはidcnativews/
)はJAX_WSベースです。いずれの種類のWebサービスも、Oracle WebLogic Server管理コンソールからOracle WSMポリシーを割り当てることができます。
一般的なWebCenter Content Webサービスは、JAX-WSベースであり、Oracle WSMポリシーを割り当てて、Oracle WSMによって管理することができます。ネイティブのWebCenter Content Webサービスは、SOAPベースであり、Oracle WebLogic Server管理コンソールを通じて管理されるWS-Policyポリシーのみをサポートできます。
Oracle WSMの詳細は、Oracle Fusion Middleware Web Servicesセキュリティおよび管理者ガイドを参照してください。
Oracle WebLogic Server Webサービス・ポリシーのサブセットはOracle WSMポリシーと相互運用します。詳細は、Oracle Fusion Middleware Oracle Web Services Managerの相互運用性ガイドの「Oracle WebLogic Server 11gのWebサービス・セキュリティ環境との相互運用性」を参照してください。
Web Services Security Policy (WS-SecurityPolicy)は、WS-Policyフレームワークとともに使用するためのセキュリティ・ポリシー・アサーションのセットです。詳細は、http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/ws-securitypolicy-1.2-spec-os.html
の『Web Services Security Policy (WS-SecurityPolicy)』を参照してください。
SAMLは、異なるセキュリティ・ドメイン間で認証および認可を交換するためのXML標準です。詳細は、http://docs.oasis-open.org/security/saml/v2.0/の『Security Assertion Markup Language (SAML)』
を参照してください。
WebLogic Scripting Tool (WLST)は、Oracle WebLogic Serverを管理するためのコマンドライン・ツールです。詳細は、Oracle Fusion Middleware WebLogicスクリプト・ツール・コマンド・リファレンスを参照してください。
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サービスについて説明します。
次の表では、idcnativews
コンテキスト・ルートのWebCenter Content Webサービスについて説明します。
WebCenter Content Webサービスは、WebCenter Content EARとともにインストールされ、デフォルトで使用可能になっています。ただし、いずれかのWebCenter Content WebサービスでWebサービス・セキュリティ(WS-Security)を構成しないかぎり、コンテンツ・サーバーへのすべての接続でanonymous
ユーザーが使用されます。WebCenter Content Webサービスのためのセキュリティを構成するには、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を構成する手順は次のとおりです。
Oracle WebLogic Server管理コンソールにアクセスします。
サイド・パネルから「デプロイメント」を選択します。
「デプロイメント」表で、WebCenter Content Native Web ServicesまたはWebCenter Content Web Servicesのいずれかを開きます。
Webサービスの名前(GenericSoapServiceなど)をクリックします。
Webサービスの「設定」ページの「構成」タブをクリックし、WS-Policyタブをクリックします。
メイン・サービスをクリックします。ここで、追加するOracle WSMポリシーを選択できます。
Oracle WSMポリシーの追加が終わったら、追加内容を保存するために、WebCenter ContentのネイティブWebサービスまたはWebCenter Contentの汎用Webサービスを更新する必要があります。
クライアント側の証明書認証に対するSAMLサポートも提供できます。クライアントがIDプロバイダであることを可能にする(つまり、資格証明をアサートできる)ようにSAMLサポートを提供するには、キーストアを構成し、そのキーストアを使用するためのJavaプラットフォーム・セキュリティ(JPS)プロバイダを構成し、クライアントの資格証明ストア(CSF)を作成し、キーストアとCSFを使用するためのJavaクライアントを構成する必要があります。
サーバーとクライアントの両方でキーストアのコピーが必要です。サーバーは、キーストアを使用して、クライアントから渡された資格証明を認証します。キーストアは共有シークレットとしてのみ使用されるため、この状況では、自己署名証明書が役に立ちます。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
コマンドには、任意の関連データを入力できます。クライアントが使用するキーストアおよび証明書のパスワードを除いて、詳細は重要ではありません。
Oracle WebLogic Serverドメインにおけるキーストアの構成には、DomainHome/config/fmwconfig/jps-config.xml
ファイルの編集が含まれます。
キーストアを使用するためにWebCenter Contentに対してJPSを構成する手順は次のとおりです。
<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>
キーストア・インスタンスが<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>
キーストア・インスタンスの場所は、キーストアを作成したところと同じ場所に設定する必要があります。
キーストアへの参照が<jpsContexts>
要素内にあることを確認します。
この設定は、デフォルトでjps-config.xml
ファイル内に存在する必要があります。そうでない場合、例19-3に示されているように、設定を追加する必要があります。
<jpsContext name="default"> <serviceInstanceRef ref="credstore"/> <serviceInstanceRef ref="keystore"/> <serviceInstanceRef ref="policystore.xml"/> <serviceInstanceRef ref="audit"/> <serviceInstanceRef ref="idstore.ldap"/></jpsContext>
jps-config.xml
ファイルを保存し、第15.4項「コンテンツ・サーバーの再起動によるコンポーネントの適用」の説明に従って、WebCenter Content管理対象サーバーと管理サーバーを再起動します。
クライアントでは、キーストアをロック解除するためのキーを格納する資格証明ストアが必要です。Oracle WebLogic Serverは、資格証明ストア・フレームワーク(CSF)を作成するための様々な方法を提供します。CSFを作成する1つの方法は、Oracle WebLogic Server Scripting Tool (WLST)コマンドを使用することです。
クライアントCSFを作成する手順は次のとおりです。
例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")
例19-4に示されているように、WLST createCredコマンドを使用して、CSFを定義します。
作成したキーストアの別名およびパスワードに一致するように、この例の値を変更します。
WLSTにより、DomainHome/config/fmwconfig/cwallet.sso
にCSFウォレットが作成されます。このウォレットは、クライアント上でのみ使用可能です。
WLSTを終了し、ドメインの管理サーバーを再起動します。
ウォレットのコピーをクライアントに送信します。
Javaクライアントを構成してキーストアおよびCSFを使用できるようにするには、クライアントに次のアイテムが存在している必要があります。
キーストアのコピー
CSFウォレットのコピー
jps-config.xml
ファイルのクライアント・バージョン
キーストアおよびCSFを使用するためにJavaクライアントを構成する手順は次のとおりです。
Javaクライアントのjps-config.xml
ファイルを編集します。
例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>
Javaシステム・プロパティoracle.security.jps.config
を、jps-config.xml
ファイルを指すように設定します。
System.setProperty("oracle.security.jps.config", “jps-config.xml”);
実行時、クライアントでこの場所を設定できます。