SOAP(Simple Object Access Protocol)は、SOA(サービス指向アーキテクチャ)内へのWebサービスの実装に使用される、基礎的なXMLベースのアプリケーション プロトコルです。SOAPは、主にHTTPとミドルウェア メッセージング システム(JMS、MQ Series、MSMQ、Tuxedo、TIBCO RV)を介して転送されますが、SMTP(Simple Mail Transfer Protocol)、FTP(File Transfer Protocol)などの他のプロトコルを介して転送することもできます。

SOAPメッセージは、一般的に、次の4つの要素で構成されます。

  • エンベロープ:SOAPエンベロープは、SOAPメッセージのルート要素であり、必須です。要するに、昔ながらの封筒(エンベロープ)に手紙が入っているように、エンベロープにSOAPメッセージが含まれています。
  • ヘッダー:SOAPヘッダーは必須ではなく、ヘッダーを使用する場合、ヘッダーには、認証、アドレス、ルーティングの詳細など、アプリケーション固有の情報が含まれます。
  • ボディ:SOAPボディは必須であり、呼び出される特定のリモート操作や、交換されるデータ(パラメータ)など、転送される実際のアプリケーション メッセージが含まれます。

SOAPメッセージには、アプリケーションとクライアントがメッセージ内のデータを解析して適切なロジックを実行するために必要な情報が含まれていなければならないため、その多くはサイズが大きくなります。メッセージのサイズが大きくなるほど、サーバで必要な処理も増え、サーバのリソースの消費量が増加し、全体の容量が減少します。また、サイズが大きくなると、メッセージの転送に必要なネットワーク リソースも増えるため、SOAPで構築されたアプリケーションのパフォーマンスが低下する可能性があります。

SOAPはXMLベースであるため、XMLを狙った多くの攻撃や脆弱性に対して脆弱です。さらに、HTTPで多く見られるトランスポート層プロトコルに関連した攻撃に対しても脆弱です。

SOAPに関連するセキュリティとパフォーマンスの問題に対処できるF5製品:BIG-IP Application Security Manager