Cisco ACE XML Gateway ユーザ ガイド
メッセージの検証
メッセージの検証
発行日;2012/02/01 | 英語版ドキュメント(2009/11/20 版) | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 8MB) | フィードバック

目次

メッセージの検証

メッセージ検証について

XML スキーマによるメッセージの検証

検証オプション

依存性のある XML スキーマのアップロード

メッセージの検証

この章では、受信メッセージの検証方法について説明します。内容は次のとおりです。

「メッセージ検証について」

「XML スキーマによるメッセージの検証」

「検証オプション」

「依存性のある XML スキーマのアップロード」

メッセージ検証について

ACE XML Gateway は、メッセージを検証することで、メッセージが目的のサービスまたはユーザによって予想される形式であることを確認します。ACE XML Gateway でメッセージ検証を実行することによって、エンドポイントは欠陥のあるメッセージの処理から解放され、また、メッセージ リソースのセキュリティが確実になります。

サービスのプロトコルまたはメッセージ形式によって、検証には複数の方法があります。Extensible Markup Language(XML)メッセージの場合、たとえば、ACE XML Gateway は、メッセージが適切な XML であることを確認します。また、メッセージを XML スキーマに照合してチェックします。スキーマに適合していないメッセージは拒否されるか、または、イベントが記録され経由が許可されます。

ACE XML Gateway は、メッセージ引数および引数のタイプと値を確認します。メッセージが引数を持っていることを確認し、引数の種類によってはその値をテストします。たとえば、Gateway は整数の引数の値が 1,000 未満であることを確認します。

XML スキーマによるメッセージの検証

ACE XML Gateway は XML コンテンツのあるメッセージを XML スキーマと照合して検証します。スキーマは、XML ドキュメントのコンテンツおよび構造を規定します。デフォルトで、ACE XML Gateway は Simple Object Access Protocol(SOAP)メッセージ エンベロープを Web Service Security(WSS)スキーマおよび Web Services Utility(WSU)スキーマと照合して検証します。必要に応じて、SOAP 本文コンテンツの検証に使用するスキーマを追加できます。

Web Services Description Language(WSDL)がインポートされたとき、ACE XML Manager は WSDL 定義に基づいてサービスの XML スキーマを生成します。メッセージ検証に生成されたスキーマを設定でき、また、スキーマのアップロードまたは他への適用が可能です。

スキーマ検証を設定するには、次の手順を行います。


ステップ 1 [Virtual Services] ブラウザで、スキーマ検証を設定する仮想サービス オブジェクトをクリックします。

ステップ 2 検証対象のACE XML Gateway メッセージ フローのブランチに応じて、[Request Message Specification] 見出し、または、[Response Message Specification] 見出しのいずれかの横にある [Edit] リンクをクリックします。

ステップ 3 [SOAP Message Validation] メニューで、コンテンツ検証オプションの中の 1 つを選択すると、無効なメッセージがブロックされるかまたは禁止され、イベントが記録されます。詳細については、「検証オプション」を参照してください。

ヘッダー 検証オプションが表示されます。デフォルトで、ヘッダーが Web Services Security(WSS)仕様および WSU 仕様と照合して検証されます。必要に応じて、ヘッダーを受け入れないために、これらのオプションの選択を削除できます。

ステップ 4 [Upload] をクリックして、受信ヘッダーが適合する必要のあるその他の XML スキーマをロードします。

リストに表示される XML スキーマが、ヘッダー検証に適用されます。スキーマを削除するには、[Validation (XSD/DTD)] ページからスキーマを削除する必要があります。


) スキーマの依存性およびスキーマのアップロードについては、「依存性のある XML スキーマのアップロード」を参照してください。


ステップ 5 [SOAP Body Content Specification] 設定で、メッセージ本文の検証方法を選択します。特定のエレメントを指定するか、または、メッセージをスキーマと照合して検証させることができることに注意してください。

ステップ 6 [Save Changes] をクリックして、変更内容を作業ポリシーにコミットします。


 

ポリシーが導入されると、ACE XML Gateway はサービス定義によって処理されたメッセージを検証します。要求が設定されたスキーマに適合しない場合、 faultstring が「 Validation Error 」となっている SOAP のエラーが発生します。

検証オプション

「検証なし」から「複数のスキーマと照合する厳密な検証」までのメッセージ検証手法の範囲から選択できます。次の表に検証オプションの一覧を示します。

表 10-1 検証オプション

 

検証モード
説明

Well-formed

このオプションが選択されると、サービス記述子は応答メッセージの XML 適格性についてテストします。WSDL 生成を有効にするには、SOAP 本文を記述している XML スキーマを選択します。しかし、このオプションを選択した場合は、メッセージ本文が XML スキーマと対して検証されないことに注意してください。

Content

サービス記述子は、メッセージを 1 つ以上の XML スキーマと照合して検証します。コンテンツがスキーマを遵守していない場合は、メッセージは拒否されます。

Content (passive)

サービス記述子は、メッセージを 1 つ以上の XML スキーマと照合して検証します。コンテンツがスキーマを遵守していない場合、イベントが記録されますが、メッセージは受け入れられます。

Must be empty

空のメッセージ本文を含むためにサービスからの応答を要求します。ACE XML Manager は、[SOAP Message Validation] メニューだけが表示されるように、ページに存在している他の検証コントロールを隠します。

依存性のある XML スキーマのアップロード

WSDL をインポートすると、ACE XML Manager は WSDL の内容から作成されたスキーマからなるスキーマ バンドルを生成します。WSDL によって記載されないサービスやその他のケースでは、XML スキーマを直接アップロードする必要があります。

スキーマを直接アップロードしようとする場合に検討すべき重要なポイントは、一部の XML 文書はその文書だけでは完全ではないことです。そのスキーマの一部を定義するために、スキーマが別の XML スキーマ文書を参照することがあります。

XML スキーマは、「import」タグ、または「include」タグを使用して外部リソースを参照します。これらのタグは、通常、参照されるスキーマを探索する場所を指示する schema-location アトリビュートを持ちますが、必須ではありません。これは、探索する場所の情報の提供がなくても、スキーマがスキーマをインポートまたはインクルードできることがあることを意味します。ACE XML Manager はこのような参照をアドバイザリとして扱います。つまり、参照されたスキーマがポリシーに存在するときはそれが使用されます。しかし、ポリシーにない場合は、ACE XML Gateway はそのスキーマをまったく検索しません。

ポリシーが準備されたときに、すべての参照されたスキーマが場所を特定されネットワーク上でアクセス可能であれば、それらを使用するスキーマ検証は適切に機能しますが、リモート ファイルのアベイラビリティは確実ではないことを忘れないでください。

ポリシー リソースの種類の多くと同様に、スキーマを Universal Resource Locator(URL)またはファイル システムからインポートできます。別のスキーマを参照するスキーマが URL からインポートされた場合は問題なくアップロードできます。しかし、同様のスキーマをファイル システムからインポートする場合は、特別な作業が必要です。セキュリティのため、ACE XML Manager は、このようなスキーマの参照を解決しようとしません。このような参照を含むスキーマをファイル システムからアップロードしようとする場合、[Upload XSD Resource] ページに次に類似するエラーが表示されます。

File upload failed: XML Schema 'ord.xsd' contains imported or included XML Schema 'prod.xsd' that could not be accessed due to 'java.net.MalformedURLException: no protocol: ord.xsd'

このケースでスキーマのインポートを行うには、スキーマ ファイルとその依存関係を Web サーバに移動するか、または、それらを ZIP ファイルに組み込んで、ACE XML Manager でアップロードします。リソースを ZIP ファイルに組み込むことを選択した場合は、ACE XML Manager がどの XSD リソースを最初に開くかを認識できるようにプライマリ スキーマ ファイルの名前を root.xsd に変更する必要があります。

要約すると、スキーマ リソースのアップロードの手順は次のとおりです。


ステップ 1 操作メニューで [Resources] グループから [Validation (XSD/DTD)] 項目をクリックします。

ステップ 2 [Add a New XSD Resource] ボタンをクリックします。

ステップ 3 [Resource Name] フィールドで、そのリソースの名前として XSD リソースの中で一意な名前を入力します。

ステップ 4 アップロードする XSD ファイルを指定します。[URL] テキスト フィールドにフル URL を入力して URL から、または、ファイル選択ダイアログボックスでファイルをブラウズしてファイルから XSD ファイルをアップロードできます。ファイルからスキーマをアップロードする場合でスキーマが別のスキーマへの参照を含む場合は、次のように、まずそれらのスキーマをアップロードのために一纏めにする必要があります。

a. プライマリ スキーマの名前を root.xsd に変更します。別のスキーマへの参照は、このルート スキーマと相対的である必要があります。一般に、同一のディレクトリですが、サブディレクトリでも可能です。

b. root.xsd および参照されるスキーマを ZIP ファイルに組み込みます。

c. ZIP ファイルをアップロードされるスキーマ リソース ファイルとして指定します。

ステップ 5 [Upload] をクリックします。

アップロードされたスキーマは、要求仕様および応答仕様のメッセージ検証に適用できます。