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

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

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

すべてのバインディング

basicHttpBindingwsHttpBinding、および ws2007HttpBinding の各バインディングは、以下のプロトコルをサポートしています。

ms730294.note(ja-jp,VS.100).gif注 :
メタデータの公開に使用するバインディングについては、このトピックで後述する「システム指定のメタデータ バインディング」を参照してください。

カテゴリ プロトコル 仕様と用途

トランスポート

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>

メタデータ

WSDL 1.1

WSDL 1.1

WCF では、サービスの記述に Web サービス記述言語 (WSDL: Web Services Description Language) を使用します。

メタデータ

WS-Policy

WS-Policy

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

メタデータ

WS-Policy 1.5

WS-Policy 1.5

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

メタデータ

WS-PolicyAttachment

WS-PolicyAttachment

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

メタデータ

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 | 
                   "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

Primer

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 勧告を実装しています。

メッセージング

WS-Addressing 1.0 - メタデータ

WS-Addressing 1.0 - Metadata このプロトコルのサポートは、ServiceMetadata 動作のポリシーのバージョンを設定すると、有効になります。ポリシーのバージョンは、既定では 1.2 に設定されています。wsdl 記述は WS-Addressing wsdl に準拠し、ポリシーのバージョンが 1.5 に設定されると、wsdl 記述は Ws-Addressing メタデータに準拠します。

セキュリティ

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 = 
         'https://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

Primer

Messaging Framework

Adjuncts (HTTP バインディングを含む)

メッセージング

WS-Addressing 2005/08

Web Services Addressing 1.0 - Core

Web Services Addressing 1.0 - SOAP

メタデータ

WS-MetadataExchange

WS-MetadataExchange

WCF は、XML スキーマ、WSDL、および WS-Policy を取得するために、WS-MetadataExchange を実装しています。

mexHttpsBinding

<mexHttpsBinding> は、以下のプロトコルをサポートしています。このバインディングの使い方詳細情報、「メタデータの公開」を参照してください。

カテゴリ プロトコル 仕様と用途

トランスポート

HTTP 1.1

HTTP 1.1

ms730294.note(ja-jp,VS.100).gif注 :
トランスポート セキュリティは有効です。

メッセージング

SOAP 1.2

Primer

Messaging Framework

Adjuncts (HTTP バインディングを含む)

メッセージング

WS-Addressing 2005/08

Web Services Addressing 1.0 - Core

Web Services Addressing 1.0 - SOAP

メタデータ

WS-MetadataExchange

WS-MetadataExchange

WCF は、XML スキーマ、WSDL、および WS-Policy を取得するために、WS-MetadataExchange を実装しています。

参照

概念

システム標準のバインディング

その他のリソース

basicHttpBinding Element
wsHttpBinding Element
wsHttpDualHttpBinding Element
<mexHttpsBinding>
<mexHttpBinding>