この章では、Oracle Web Services Managerに関連する問題について説明します。内容は次のとおりです。
7.3項「WSDLに他のWSDLまたはXSDがインポートされるOracle WSM GatewayへのWebサービスの登録」
7.4項「WSDLに<include>文を使用して他のWSDLおよびXSDが含まれるOracle WSM GatewayへのWebサービスの登録」
7.6項「Oracle WSM Gatewayを使用した、非SOAPのXMLベースWebサービスとしてのSOAPベースWebサービスへのアクセス」
7.9項「Web Services Manager Control認証のためのMicrosoft Active Directoryの使用方法」
SOAP 1.2のサポートが、次のOracle Web Services Managerエージェント用にこのパッチ・セットに追加されています。
BPELおよびESB(OC4Jサーバー・インタセプタ)を含むOracle Webサービスのサーバー・エージェント、Oracle J2SEクライアントのクライアント・エージェント、BPELおよびESB(OC4Jクライアント・インタセプタ)を含むOracle J2EEクライアントのクライアント・エージェント
次のOracle Web Services Managerコンポーネントでは、引き続きSOAP 1.1のみがサポートされます。
Oracle Web Services Manager Gateway
AXIS、IBM WebSphereおよびBEA WebLogicエージェントを含むサード・パーティ・エージェント
UDDIレジストリから一度にインポートできるWebサービスの最大数は、500 Webサービスに増加されました。
WSDLには、他のWSDLSまたはXSDが含まれる場合があります。Webサービスの登録中、またはOracle Web Service Manager Gatewayを介した仮想Webサービスへのアクセス中に、Oracle Web Services Managerでは、インポートされたWSDLまたはXSDのURLを絶対仮想URLに変換します。これにより、インポートされたWSDLおよびXSDがセッション依存のURLに変換されていたこれまでの問題が修正されます。
WSDLには、<import>
または<include>
要素のいずれかを使用して、他のWSDLまたはXSDが含まれている場合があります。このパッチ・セットより前には、Oracle Web Services Managerでは、<import>
要素のみがサポートされていました。このパッチ・セットでは、<include>
要素のサポートが追加されました。
<include>要素と<import>要素は、問合せパラメータを使用してURLを指定できます。次に例を示します。
<import location="http://HRBenefits:7493/MySchemaStore.asmx?schema=Document"/>
Oracle Web Services Managerでは、インポートされたWSDLまたはXSDをフェッチし、正しい拡張機能を持つように変換します。
Web Services Manager Controlアプリケーション用のWebブラウザにInternet Explorer 7.xを使用する場合、次のロケールが表示できない場合があります。
ko-KR: 韓国語(韓国)
ja-JP: 日本語(日本)
de-DE: ドイツ語(ドイツ)
fr-FR: フランス語(フランス)
es-ES: スペイン語(スペイン)
it-IT: イタリア語(イタリア)
WebブラウザにFirefox 2.xを使用する場合は、ロケールko-KRの韓国語(韓国)を表示できない可能性があります。
回避方法は、Webブラウザの言語設定から、コンテンツを表示する言語を除く他のすべての言語を削除することです。たとえば、コンテンツを日本語で表示する場合、言語設定のエントリはja-JPのみにします。
『Oracle Web Services Manager User and Administrator Guide』では、Oracle WSM Gatewayを介して、非SOAPのXMLベースWebサービスとしてSOAPベースのWebサービスにアクセスする方法については記述されていません。Oracle WSM Gatewayに登録されたWebサービスはすべて、SOAPおよび非SOAPのWebサービスとして仮想化されます。ただし、サービス登録詳細ページには、仮想化されたSOAP URLのみが表示されます。
非SOAPの仮想化URLは、URL内のservices
キーワードをxml
キーワードに置き換えることで、仮想化されたSOAP URLと区別できます。
たとえば、SOAPの仮想化エンドポイントの場合は、次のようになります。
http://host:port
/gateway/services/SID0003001
非SOAP XMLサービス・エンドポイントは、次のようになります。
http://host:port
/gateway/xml/SID0003001
次のコマンドにより、古いバージョンのポリシーがOracle Web Services Manager Policy Managerから削除されます。このコマンドを使用すると、不要になった古いバージョンのポリシーを永久に削除されます。
構文
wsmadmin purgePolicies
component_ID policy_version
パラメータ | 説明 |
---|---|
component_ID |
Web Services Manager AgentまたはGatewayのID。 |
policy_version |
ポリシーのバージョン番号。バージョン番号policy_version 未満のポリシーは消去されます。 |
使用方法
policy_version
で指定したバージョン番号が現行のアクティブ・ポリシーより大きい場合、現行のアクティブ・ポリシー以外のすべてのポリシーが消去されます。たとえば、現行のアクティブ・ポリシーのバージョン番号が5で、policy_version
を6に設定してwsmadmin purgePolicies
を実行した場合、バージョン1〜4は消去されます。バージョン5は消去されず、アクティブ・ポリシーとして残ります。
ポリシー・バージョン番号は正数です。policy_version
に負数が指定されていると、ポリシーは消去されません。
Web Services Manager Controlアプリケーションは、XMLファイルに設定されたポリシーをエクスポートする方法を提供します。Oracle Application Server 10gリリース3(10.1.3.4)以降、この機能に相当するコマンドライン・インタフェースが用意されました。このコマンドにより、1つのコンポーネントに対して複数のポリシーを一度にエクスポートできます。ポリシーはポリシー施行ポイントとパッケージ化できるため、Oracle WSM AgentまたはGatewayでは、ポリシーを取得するためにOracle WSM Policy Managerと通信する必要がありません。
注意: テスト、ステージングおよび本番の環境間でポリシーを移行するコマンドを使用しないでください。かわりに、Oracle WSMオブジェクトをエクスポートおよびインポートするコマンドのセットを使用します。環境間でのポリシーの移行の詳細は、7.12.3項「Oracle Web Servicesのコンポーネントおよびポリシーの移行」を参照してください。 |
コンポーネントのポリシーをエクスポートする手順
次のプロパティをORACLE_HOME
/owsm/bin/coresv.properties
ファイルで追加または編集します。
プロパティ | 説明 |
---|---|
pm.server.httpScheme |
Policy Managerが実行されているトランスポート。有効値はhttp およびhttps です。 |
pm.server.httpHost |
Policy Managerが実行されているホストの名前。 |
pm.server.httpPort |
Policy Managerがリクエストをリスニングするポート。 |
Oracle Web Services Managerインスタンスが起動され、実行中であることを確認します。
Microsoft Windowsでは、ORACLE_HOME
\owsm\bin
ディレクトリから、ポリシーをエクスポートするために次のコマンドを実行します。
wsmadmin exportPolicySet component_ID
変数component_ID
は、ポリシーがエクスポートされるOracle Web Services GatewayまたはAgentのコンポーネントIDです。
ポリシーは、ORACLE_HOME
/owsm/bin/coresv.properties
ファイルで設定されているdb.export.dir
プロパティで定義したディレクトリにエクスポートされます。ファイル名は、PolicySet
-component_ID-timestamp.xml
として動的に生成されます。変数component_IDは、wsmadmin exportPolicySet
コマンドで指定されるコンポーネントIDです。エクスポートのタイムスタンプは、エクスポートされたポリシーをさらに識別するために、ファイル名に追加されます。
Microsoft Active Directoryを使用してWeb Services Manager Controlにログインする管理者を認証できるようになりました。
Microsoft Active Directoryを使用してユーザーを認証するには、ORACLE_HOME
/owsm/config/
ui-config-installer.properties
ファイルでプロパティを編集します。
ui-config-installer.properties
ファイルの例の一部を次に示します。
. . . ui.authentication.provider=com.cfluent.accessprovider.ldap.ActiveDirectoryAuthProvider ui.authentication.provider.properties=\ ldapHost=139.185.17.7|\ ldapPort=389|\ ldapSSLEnabled=false|\ ldapSSLPort=636|\ ldapDN=dc=vanadium,dc=us,dc=oracle,dc=com|\ roleAttribute=testgroup|\ ldapDNSDomainName=vanadium.us.oracle.com|\ ldapUidAttribute=sAMAccountName|\ . . .
表7-1では、ui-config-installer.properties
ファイルのプロパティについて説明しています。
表7-1 ui-config-installer.propertiesファイルのプロパティ
プロパティ | 説明 |
---|---|
|
Active Directoryを使用してユーザーを認証するクラスの名前。これは、 |
|
Active Directory Serverが稼働しているマシンのホスト名。 |
|
Active Directory Serverがリクエストをリスニングするポート。 |
|
LDAPドメイン名。 |
|
SSLがActive Directory Serverに対して有効かどうかを指定します。 |
|
SSLが有効の場合、Active Directoryがリクエストをリスニングするポート。 |
|
LDAPグループでユーザーを識別するLDAP属性名。 |
|
Active Directory Serverの完全修飾ドメイン名。 |
|
Active Directory Serverを介して検索する際に使用される一意の識別子。これは |
この項の内容は次のとおりです。
ネームスペース接頭辞の最適化について、AXIS 1.1および1.4エージェントに既知の制限があります。デフォルトのネームスペース接頭辞を含む2つ以上のネームスペース接頭辞が、同じURNまたはURIを指す場合、ネームスペースからその接頭辞が削除されます。次のSOAPメッセージの例では、接頭辞n
はデフォルトのネームスペースurn:Test:GetTime
を指しています。(参照するXMLコードは、太字で示されています。)
<?xml version="1.0" encoding="UTF-8"?>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<soap:Body>
<n:getTimeResponse xmlns:n="urn:Test:GetTime" xmlns="urn:Test:GetTime">
<Result xmlns="urn:Test:GetTime" xsi:type="xsd:string">03:59 PM</Result>
</n:getTimeResponse>
</soap:Body>
</soap:Envelope>
次の例は、メッセージが最適化された後の同じSOAPメッセージを示しています。n
接頭辞が、getTimeResponse
要素から削除されています。この接頭辞の最適化が署名付きメッセージで発生した場合、エージェントが署名の検証を試みると、メッセージが変更されているため検証は失敗します。
<?xml version="1.0" encoding="UTF-8"?>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<soap:Body>
<getTimeResponse xmlns:n="urn:Test:GetTime" xmlns="urn:Test:GetTime">
<Result xmlns="urn:Test:GetTime" xsi:type="xsd:string">03:59 PM</Result>
</n:getTimeResponse>
</soap:Body>
</soap:Envelope>
この制限は、次のポリシー・ステップのいずれかを使用するすべてのAXIS 1.1または1.4クライアント・エージェント・ポリシー、またはサーバー・エージェント・ポリシーに適用されます。
署名の検証
署名の複合化および検証
ネームスペースの最適化で、その他のOracle WSMポリシー・ステップには問題は発生しません。
次に、この制限が適用される1つのケースについて説明します。AXIS 1.4クライアント・エージェント・ポリシーには、メッセージの署名ポリシー・ステップがあります。クライアント・エージェントがポリシーを適用し、メッセージに署名した後、このメッセージはクライアント・アプリケーションに返されます。クライアント・アプリケーションではAXIS 1.4ライブラリを使用して、Webサービスに送信されるようにメッセージをシリアライズします。ネームスペース接頭辞がメッセージから削除されるのは、この変換時です。変換されたこのメッセージは、Webサービスに渡され、AXIS 1.4サーバー・エージェントによりインターセプトされます。サーバー・エージェント・ポリシーには、署名の検証ポリシー・ステップがあります。サーバー・エージェントでポリシー・ステップがメッセージに適用されると、検証は失敗します。
AXIS 1.1サーバー・エージェントおよびクライアント・エージェントのための回避方法としては、APPLICATION_HOME
\WEB_INF\lib
ディレクトリにあるaxis.jar
ファイルをORACLE_HOME
\owsm\lib\extlib\axis.jar
ファイルで置き換えます。
この制限を回避する方法としては、最適化によって生じた変更を無効にするカスタム・ステップをポリシーに追加します。このカスタム・ステップ、汎用メッセージの更新は、署名の検証ステップまたは署名の復号化と検証ステップのいずれかが含まれるポリシーすべてに追加する必要があります。カスタム・ステップでは検索および置換が行われ、指定した文字列を検索し、指定したネームスペース接頭辞をその文字列に追加します。
カスタム・ステップをポリシーに追加するには、汎用メッセージの更新カスタム・ステップを、この回避方法が必要な各コンポーネントで有効にする必要があります。
カスタム・ステップをOracle WSMコンポーネントに追加する手順
Web Services Manager Controlのナビゲーション・ペインから、「ポリシー管理」をクリックし、次に「ポリシーの管理」をクリックします。
カスタム・ステップを追加する必要のあるコンポーネントの「ステップ」をクリックします。
「ステップ管理」ページで、「新規ステップの追加」をクリックし、ORACLE_HOME
\owsm\samples\customsteps\GenericMessageUpdateStep.xml
をコンポーネントに追加します。
「アップロード」をクリックします。
汎用メッセージの更新カスタム・ステップのJavaクラスは、このカスタム・ステップを使用するすべてのアプリケーションに追加する必要があります。
カスタム・ステップ・クラス・ファイルをアプリケーションに追加する手順
Apache Antを使用してGenericMessageUpdateStep.java
をコンパイルします。
ORACLE_HOME
\owsm\samples\customsteps\GenericMessageUpdateStep
ディレクトリに移動します。
ORACLE_HOME
環境変数をSOAインストールのインストール・ディレクトリに設定し、Antホーム・ディレクトリを自身のパスに追加します。
コマンドant jar
を実行します。
このコマンドにより、次の場所のGenericMsgUpdateStep.jar
がコンパイルされ、作成されます。
ORACLE_HOME
\owsm\samples\customsteps\GenericMessageUpdateStep\dist\lib
必要に応じて、JARファイルを次の場所にコピーします。
コンポーネント | JARファイルのコピー先 |
---|---|
Oracle WSM Client Agent | APPLICATION_HOME \WEB-INF\config\clientagent\framework\lib |
Oracle WSM Server Agent | APPLICATION_HOME \WEB-INF\config\serveragent\framework\lib |
汎用メッセージの更新ステップは、クライアント・エージェントおよびサーバー・エージェントのポリシー内で、署名の検証ステップの前、および署名の復号化と検証ステップの前に追加する必要があります。次に、変換情報を使用してポリシー・ステップを構成します。7.12.1項で説明する例では、クライアント・エージェント・ポリシーにはメッセージの署名ポリシー・ステップが、サーバー・エージェントには対応する署名の検証ステップがあります。どのネームスペース接頭辞が影響を受けるかを確認するには、次の操作を行います。
クライアント・エージェント・ポリシーでは、メッセージの署名ポリシー・ステップの後にログ・ポリシー・ステップを追加します。
このログ・ポリシー・ステップで、最適化の発生前にメッセージを取得します。
サーバー・エージェント・ポリシーでは、署名の検証ポリシー・ステップの後にログ・ポリシー・ステップを追加します。
このログ・ポリシー・ステップで、最適化の発生後にメッセージを取得します。
ログを比較することで、ネームスペース接頭辞の最適化により、メッセージがどのように変更されたかを確認できます。
ポリシーにカスタム・ステップを追加する手順
Web Services Manager Controlから、「ポリシー管理」をクリックし、次に「ポリシーの管理」をクリックします。
カスタム・ステップを必要とするコンポーネントの「ポリシー」をクリックします。
カスタム・ステップを追加する必要のあるポリシーの「編集」をクリックします。
署名の検証ステップまたは署名の復号化と検証ステップの前に、汎用メッセージの更新ステップを追加します。
「構成」をクリックして、汎用メッセージの更新ステップを構成します。
メッセージの更新パラメータ・テキスト・ボックスに、置換対象の文字列と、置換文字列を次の書式で入力します。
string=replace_with_string
7.12.1項では前述の例を使用して、次のように入力します。
getTimeResponse=n:getTimeResponse
カンマを使用して複数のエントリを区切ります。
『Oracle Web Services Manager User and Administrator Guide』の付録A「Oracle Web Services Manager Policy Steps」で、資格証明の抽出ポリシー・ステップの記述に誤りがありました。2つのプロパティの正しい記述は、次のとおりです。
資格証明の場所: 資格証明の抽出元の場所。次の4つの場所が考えられます。
HTTP Authorization
ヘッダー: HTTPを指定します。これがデフォルトです。認証は、HTTP Basic認証方式(BASIC-AUTH)を使用して行われます。
WS-BASIC SOAPセキュリティ・ヘッダー: WS-BASICを指定します。資格証明は、WS-I Basic Security Profileで指定するとおり、標準のUsernameTokenから抽出されます。プレーン・テキストのパスワードのみがサポートされます。
XPath: 資格証明にXPath式を指定します。XPathという語は入力しないでください。スラッシュ(/)で開始します。次に例を示します。
/soap:Envelope/soap:Header/wsse:Security/wsse:UsernameToken/
XPath式を使用すると、SOAPエンベロープのどの場所からでもユーザー名とパスワードを抽出できます。追加のプロパティ(ネームスペース、ユーザーID xpathおよびパスワードxpath)を指定する必要があります。
ネームスペース: ユーザーID xpathおよびパスワードxpathプロパティで使用する接頭辞のための、接頭辞とネームスペースUniform Resource Identifier(URI)のペアが空白で区切られたリスト。次に例を示します。
soap=http://schemas.xmlsoap.org/soap/envelope, wsse=http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd
URI自体に空白がある場合、空白を文字%20に置き換える必要があります。
このパラメータは、資格証明の場所プロパティがXPath式で指定されている場合のみ適用されます。
この項では、Oracle Web Services Manager 10.1.3.4の新機能について説明します。この項の内容は次のとおりです。
Oracle Application Server 10g(10.1.3.4)から、Oracle WSMで次のAXISエージェントのサポートが追加されました。
AXIS 1.1および1.4クライアント・エージェント
AXIS 1.4サーバー・エージェント
『Oracle Web Services Managerデプロイメント・ガイド』の第6章「Oracle WSM Agentのインストール」に記載された手順に従い、AXIS 1.1および1.4エージェントをインストールします。エージェントのAXISバージョンは同じであることが必要です。つまり、AXIS 1.1クライアント・エージェントは、AXIS 1.1サーバー・エージェントとのみ使用でき、AXIS 1.4クライアント・エージェントはAXIS 1.4サーバー・エージェントとのみ使用できます。
DIMEおよびMIME添付ファイルは、AXIS 1.1クライアント・エージェントではサポートされていません。MIME添付ファイルは、AXIS l.4クライアント・エージェントでサポートされていますが、DIME添付ファイルはサポートされていません。
AXIS 1.1および1.4クライアント・エージェントでの既知の制限とこの制限の回避方法の詳細は、7.10項「ネームスペースの最適化によるAXIS 1.1および1.4クライアントでのメッセージ検証の失敗」を参照してください。
Oracle Application Server 10gの以前のリリースでは、Oracle Application Server中間層のクローニングはサポートされていましたが、Oracle WSMをクローニングできませんでした。Oracle Application Server 10gリリース3(10.1.3.4)から、Oracle Web Services ManagerのクローニングがOracle Application Serverに追加されました。
この新機能の詳細は、『Oracle Web Services Manager管理者ガイド』の第10章「Oracle WSMのクローニングおよび水平移行」を参照してください。
Oracle Web Services Managerでは、選択したコンポーネントおよびポリシーを環境間で移行する方法が提供されています。
テスト、ステージングおよび本番の環境間で次のオブジェクトを移行できます。
単一または複数のポリシー
Oracle Web Services Manager Gateway、Server AgentおよびClient Agentを含むOracle Web Services Managerコンポーネント
Oracle Web Services Manager Gatewayに登録されたサービス
カスタム・ステップのテンプレート
この新機能の詳細は、『Oracle Web Services Manager管理者ガイド』の第10章「Oracle WSMのクローニングおよび水平移行」を参照してください。