システム標準の相互運用性バインディングがサポートしている Web サービス プロトコル

Windows Communication Foundation (WCF) は、Web サービス仕様と呼ばれる一連の仕様をサポートする Web サービスと相互運用できるように構築されています。 サービス構成を簡略化して相互運用性のベスト プラクティスを実現するために、WCF では、相互運用可能なシステム指定のバインディングが 3 つ (System.ServiceModel.BasicHttpBindingSystem.ServiceModel.WSHttpBinding、および System.ServiceModel.WSDualHttpBinding) 導入されています。 OASIS (Organization for the Advancement of Structured Information Standards) 標準との相互運用性を実現するために、WCF には System.ServiceModel.WS2007HttpBinding という相互運用可能なシステム指定のバインディングがあります。 メタデータの公開用として、WCF には、<mexHttpBinding><mexHttpsBinding> の 2 つの相互運用可能なシステム指定のバインディングがあります。 このトピックでは、システム指定の相互運用可能なバインディングがサポートする仕様を示します。

basicHttpBinding、wsHttpBinding、ws2007HttpBinding、および wsDualHttpBinding の各バインディングでサポートされる Web サービス プロトコル

すべてのバインディング

<basicHttpBinding><wsHttpBinding><ws2007HttpBinding> の各バインディングでは、以下のプロトコルがサポートされています。

Note

メタデータの公開に使用するバインディングについては、このトピックで後述する「システム指定のメタデータ バインディング」を参照してください。

カテゴリ プロトコル 仕様と用途
トランスポート HTTP 1.1 HTTP 1.1

BasicHttpBindingWSHttpBinding、および WS2007HttpBinding は、HTTP トランスポートおよび HTTPS トランスポートを使用します。
メッセージング MTOM MTOM

basicHttpBindingwsHttpBinding、および ws2007HttpBinding は、MTOM (Message Transmission Optimization Mechanism) をサポートしています。 既定では使用されません。 MTOM を使用するには、messageEncoding 属性を "Mtom" に設定します。

例:

<wsHttpBinding> <binding messageEncoding="Mtom"/> </wsHttpBinding>
Metadata WSDL 1.1 WSDL 1.1

WCF では、サービスの記述に Web サービス記述言語 (WSDL) を使用します。
Metadata WS-Policy WS-Policy

WCF では、ドメイン固有のアサーションと共に WS-Policy 仕様を使用して、サービス要件と機能を記述します。
Metadata WS-Policy 1.5 WS-Policy 1.5

WCF では、ドメイン固有のアサーションと共に WS-Policy 仕様を使用して、サービス要件と機能を記述します。
Metadata WS-PolicyAttachment WS-PolicyAttachment

WCF では、Web サービス記述言語 (WSDL) のさまざまなスコープでポリシー式を関連付けるために、WS-PolicyAttachment が実装されています。
Metadata WS-MetadataExchange WS-MetadataExchange

WCF では、XML スキーマ、WSDL、WS-Policy などを取得するために WS-MetadataExchange が実装されています。

basicHttpBinding

カテゴリ プロトコル 仕様と用途
メッセージング SOAP 1.1 SOAP 1.1

Basic Profile 1.1 に従って、basicHttpBinding 要素は SOAP 1.1 メッセージ プロトコルを実装しています。
セキュリティ WSS SOAP Message Security 1.0 WSS SOAP Message Security 1.0

Basic Security Profile に従って、basicHttpBinding 要素は、ユーザー名/パスワードおよび X.509 ベースのセキュリティを実現するために、WSS (Web Services Security) SOAP Message Security 1.0 仕様を実装しています。

<basicHttpBinding> <binding name="Binding1"> <security mode="TransportWithMessageCredential &#124; "Message" .../> </binding> </basicHttpBinding>
セキュリティ WSS SOAP Message Security UsernameToken Profile 1.0 WSS SOAP Message Security UsernameToken Profile 1.0

<basicHttpBinding> <binding name="Binding1"> <security mode="TransportWithMessageCredential"> <transport clientCredentialType="Basic"/> </security> </basicHttpBinding>
セキュリティ WSS SOAP Message Security X.509 Certificate Token Profile 1.0 WSS SOAP Message Security X.509 Certificate Token Profile 1.0

<basicHttpBinding> <security mode="Message"> <message clientCredentialType="Certificate"/> </security> </basicHttpBinding>

wsHttpBinding、ws2007HttpBinding、および wsDualHttpBinding

カテゴリ プロトコル 仕様と用途
メッセージング SOAP 1.2 基本

Messaging Framework

Adjuncts (HTTP バインディングを含む)
メッセージング WS-Addressing 2005/08 Web Services Addressing 1.0 - Core

Web Services Addressing 1.0 - SOAP

wsHttpBindingws2007HttpBinding、および wsDualHttpBinding は、非同期メッセージング、メッセージ相関、およびトランスポート中立のアドレス指定機構を有効にするために、W3C (World Wide Web Consortium) WS-Addressing 勧告を実装しています。

WCF は WS-Addressing ヘッダーの暗号化をサポートしていませんが、これは WS-* 仕様によって許可されています。
メッセージング WS-Addressing 1.0 - メタデータ WS-Addressing 1.0 メタデータ このプロトコルのサポートは、ServiceMetadata 動作のポリシーのバージョンを設定すると、有効になります。ポリシーのバージョンは、既定では 1.2 に設定されています。wsdl 記述は WS-Addressing wsdl に準拠し、ポリシーのバージョンが 1.5 に設定されると、wsdl 記述は Ws-Addressing メタデータに準拠します。

WCF は WS-Addressing ヘッダーの暗号化をサポートしていませんが、これは WS-* 仕様によって許可されています。
セキュリティ WSS SOAP Message Security 1.0 WSS SOAP Message Security 1.0

securityMode 属性が "wsSecurityOverHttp" (既定) に設定され、wsSecurity 子要素を使用してパラメーターが構成されている場合に使用します。

<wsHttpBinding> <binding name="myBinding"> <security mode="Message" .../> </binding> </wsHttpBinding>
セキュリティ WSS SOAP Message Security UsernameToken Profile 1.1 WSS SOAP Message Security UsernameToken Profile 1.0

wsSecurity 要素の authenticationMode 属性が "Username" に設定されている場合に使用します。

<wsHttpBinding> <binding name="MyBinding"> <security mode="Message> <message clientCredentialType="UserName negotiateServiceCredential="false" establishSecurityContext="false"/> </security> </binding> </wsHttpBinding>
セキュリティ WSS SOAP Message Security X.509 Certificate Token Profile 1.1 WSS SOAP Message Security X.509 Certificate Token Profile 1.1

wsSecurity 要素の authenticationMode 属性が "Username"、"Certificate"、または "None" に設定されている場合に、メッセージを保護するために使用します。 また、wsSecurity 要素の authenticationMode 属性が "Certificate" に設定されている場合は、クライアント認証に使用します。

<wsHttpBinding> <binding name="MyBinding"> <security mode="Message> <message clientCredentialType="Certificate" negotiateServiceCredential="false" establishSecurityContext="false"/> </security> </binding> </wsHttpBinding>
セキュリティ WSS SOAP Message Security Kerberos Token Profile 1.1 WSS SOAP Message Security Kerberos Token Profile 1.1

wsSecurity 要素の authenticationMode 属性が "Windows" に設定されている場合に、認証とメッセージの保護に使用します。

<wsHttpBinding> <binding name="MyBinding"> <security mode="Message> <message clientCredentialType="Windows" negotiateServiceCredential="false" establishSecurityContext="false"/> </security> </binding> </wsHttpBinding>
セキュリティ WS-SecureConversation WS-SecureConversation

security/@mode 属性が "Message" に設定され、message/@establishSecurityContext 属性が "true" (既定値) に設定されている場合に、セッションをセキュリティで保護するために使用します。
セキュリティ WS-Trust WS-Trust

WS-SecureConversation で使用されます (上記を参照)。
信頼できるメッセージ機能 WS-ReliableMessaging WS-ReliableMessaging

バインディングが reliableSession を使用するように構成されている場合に使用します。

<wsHttpBinding> <binding name="myBinding"> <reliableSession/> </binding> </wsHttpBinding>
トランザクション WS-AtomicTransaction WS-AtomicTransaction

トランザクション マネージャー間の通信に使用します。 WCF のクライアントとサービスでは、常にローカル トランザクション マネージャーが使用されます。
トランザクション WS-Coordination WS-Coordination

flowTransactions 属性が "Allowed" または "Required" に設定されている場合に、トランザクション コンテキストをフローするために使用します。

<wsHttpBinding> <binding transactionFlow="true"/> </wsHttpBinding>

wsFederationHttpBinding および ws2007FederationHttpBinding

クライアントの認証に使用するトークンをサード パーティが発行するフェデレーション シナリオをサポートするために、<wsFederationHttpBinding> 要素と <ws2007FederationHttpBinding> 要素が導入されています。 wsHttpBinding で使用されるプロトコルに加えて、wsFederationHttpBinding では次のものを使用します。

  • トークンを発行するための WS-Trust

  • 最も一般的に発行されるトークンの形式のための WSS SAML (Security Assertions Markup Language) Token Profile 1.0 および 1.1

例:

<wsFederationHttpBinding>
  <binding name="myBinding">
     <security mode="Message">
       <message issuedKeyType="Symmetric"
                issuedTokenType="http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV1.1">
         <issuerMetadata address =
         'http://localhost/FederationSample/HomeRealmSTS/STS.svc/mex'/>
       </message>
     </security>
  </binding>
</wsFederationHttpBinding>

詳細については、「フェデレーション」を参照してください。

システム指定のメタデータ バインディング

次の表に、System.ServiceModel.Description.MetadataExchangeBindings クラスによって公開される、システム指定の相互運用可能なメタデータ バインディングによってサポートされるプロトコルを示します。

mexHttpBinding

<mexHttpBinding> バインディングでは、次のプロトコルがサポートされています。 このバインディングの使用方法の詳細については、「メタデータの公開」を参照してください。

カテゴリ プロトコル 仕様と用途
トランスポート HTTP 1.1 HTTP 1.1
メッセージング SOAP 1.2 基本

Messaging Framework

Adjuncts (HTTP バインディングを含む)
メッセージング WS-Addressing 2005/08 Web Services Addressing 1.0 - Core

Web Services Addressing 1.0 - SOAP
Metadata WS-MetadataExchange WS-MetadataExchange

WCF では、XML スキーマ、WSDL、WS-Policy などを取得するために WS-MetadataExchange が実装されています。

mexHttpsBinding

<mexHttpsBinding> では、次のプロトコルがサポートされています。 このバインディングの使用方法の詳細については、「メタデータの公開」を参照してください。

カテゴリ プロトコル 仕様と用途
トランスポート HTTP 1.1 HTTP 1.1

トランスポート セキュリティは有効です。
メッセージング SOAP 1.2 基本

Messaging Framework

Adjuncts (HTTP バインディングを含む)
メッセージング WS-Addressing 2005/08 Web Services Addressing 1.0 - Core

Web Services Addressing 1.0 - SOAP
Metadata WS-MetadataExchange WS-MetadataExchange

WCF では、XML スキーマ、WSDL、WS-Policy などを取得するために WS-MetadataExchange が実装されています。

関連項目