この記事は機械翻訳されています.免責事項
Web サービスの相互運用性チェック
Web サービス相互運用性 (WS-I) チェックでは、要求と応答の両方が WS-I 標準に準拠しているかどうかが検査され、この標準に準拠していない要求と応答がブロックされます。WS-I チェックの目的は、他の XML と適切にやり取りしない可能性のある要求をブロックすることです。攻撃者は、相互運用性の不整合を使用して、XML アプリケーションに対する攻撃を開始する可能性があります。
ウィザードまたは GUI を使用する場合は、[Web サービスの相互運用性チェックの変更] ダイアログボックスの [全般] タブで、[ブロック]、[ログ]、[統計]、および [ラーニング] の各アクションを有効または無効にできます。
コマンドラインインターフェイスを使用する場合は、次のコマンドを入力して Web サービスの相互運用性チェックを構成できます。
set appfw profile <name> -xmlWSIAction [block] ][log] [learn] [stats] [none]
個別の Web サービス相互運用性ルールを構成するには、GUI を使用する必要があります。[Web サービスの相互運用性チェックの変更] ダイアログボックスの [チェック] タブで、ルールを選択し、[有効] または [無効] をクリックしてルールを有効または無効にします。[開く] をクリックして、そのルールの [Web サービス相互運用性の詳細] メッセージボックスを開くこともできます。メッセージボックスには、ルールに関する読み取り専用情報が表示されます。これらのルールを変更したり、その他の設定を変更したりすることはできません。
WS-I チェックでは、WS-I 基本プロファイル 1.0 にリストされているルールが使用されます。WS-I は、相互運用可能な Web サービスソリューションを開発するためのベストプラクティスを提供します。WS-I チェックは SOAP メッセージに対してのみ実行されます。
各 WSI 標準規則の説明を以下に示します。
規則 | 説明 |
---|---|
BP1201 | メッセージ本文は、名前空間を持つ soap:envelope である必要があります。 |
R1000 | ENVELOPEがFaultである場合、soap:Fault要素は、faultcode、faultstring、faultactor、detail以外の要素の子を持つことはできません。 |
R1001 | ENVELOPEがFaultである場合、soap:Fault要素の子は、修飾されなければなりません。 |
R1003 | 受信者が詳細要素に表示される任意の数の修飾属性または非修飾属性(ゼロを含む)を持つフォルト・メッセージを受け入れる必要があります。修飾された属性の名前空間は、修飾されたドキュメントエレメントの Envelope の名前空間以外の任意のものにすることができます。 |
R1004 | ENVELOPEにfaultcode要素が含まれている場合、その要素のコンテンツは、SOAP 1.1で定義されている障害コード(詳細要素で必要に応じて追加情報を提供)のいずれか、または名前空間が障害の指定機関によって制御されているQname(優先順に)。 |
R1005 | ENVELOPEは、その名前空間が修飾された文書要素Envelopeの名前空間と同じである要素のいずれかのsoapを含んではいけません。 |
R1006 | EnVELOPEは、soap:Bodyの子である任意の要素のsoap:encodingStyle属性を含んではいけません。 |
R1007 | rpcリテラルバインディングで記述されたENVELOPEは、soap:Bodyの孫である任意の要素のsoap:encodingStyle属性を含んではいけません。 |
R1011 | EnVELOPE には、SOAPE: Body要素に続くSOAPE: Envelopeの要素の子があってはなりません。 |
R1012 | メッセージを UTF-8 または UTF-16 としてシリアル化する必要があります。 |
R1013 | soap:mustUnderstand属性を含むENVELOPEは、字句形式0と1のみを使用しなければなりません。 |
R1014 | ENVELOPEのsoap:Body要素の子は、名前空間修飾でなければなりません。 |
R1015 | 受信者は、ドキュメント要素が soap:Envelope でないエンベロープに遭遇した場合、フォルトを生成する必要があります。 |
R1031 | ENVELOPEにfaultcode要素が含まれている場合、その要素のコンテンツは、障害の意味を絞り込むためにSOAP1.1ドット表記を使用してはなりません。 |
R1032 | The soap:Envelope, soap:Header, and soap:ENVELOPE内のボディ要素は、修飾された文書要素のエンベロープのそれと同じ名前空間内の属性を持つことはできません |
R1033 | EnVELOPEは名前空間宣言を含んではいけません:xmlns:xml=http://www.w3.org/XML/1998/namespace.
|
R1109 | HTTP 要求メッセージの SOAPAction HTTP ヘッダーフィールドの値は、引用符で囲まれた文字列でなければなりません。 |
R1111 | INSTANCE は、障害ではないエンベロープを含む応答メッセージに対して 200 OK HTTP ステータスコードを使用すべきです。 |
R1126 | 応答エンベロープが Fault の場合、INSTANCE は 500 内部サーバーエラー HTTP ステータスコードを返す必要があります。 |
R1132 | HTTP リクエストメッセージでは、HTTP POST メソッドを使用する必要があります。 |
R1140 | メッセージはHTTP/1.1を使用して送信する必要があります。 |
R1141 | メッセージは、HTTP/1.1 または HTTP/1.0 のいずれかを使用して送信する必要があります。 |
R2113 | エンベロープには、soapenc:arrayType 属性を含めることはできません。 |
R2211 | rpc-literal バインディングで記述された ENVELOPE は、パーツアクセサの値が 1 または true の xsi: nil 属性を持つことはできません。 |
R2714 | 一方向操作の場合、INSTANCEはエンベロープを含むHTTP応答を返してはいけません。具体的には、HTTP 応答エンティティ本体は空である必要があります。 |
R2729 | 応答であるrpcリテラルバインディングで記述されたENVELOPEは、対応するwsdl:操作名に接尾辞stringResponseであるラッパー要素を持たなければなりません。 |
R2735 | rpc-literal バインディングで記述されたENVELOPEは、パラメータと戻り値のパートアクセサ要素を名前空間なしに配置しなければなりません。 |
R2738 | ENVELOPEには、wsdl:inputまたはwsdl:それを記述するwsdl:バインディングのwsdl:操作のwsdl:出力で指定されたすべてのsoapbindを含める必要があります。 |
R2740 | 説明のwsdl:バインディングには、それぞれの既知の障害を記述するsoapbindを含める必要があります。 |
R2744 | HTTP 要求メッセージには、対応する WSDL 記述内に存在する場合、soapbind:operation の soapAction 属性の値と等しい引用符で囲まれた値を持つ SOAPAction HTTP ヘッダーフィールドが含まれていなければなりません。 |