Windows Communication Foundation (WCF) は、Web サービス仕様と呼ばれる一連の仕様をサポートする Web サービスと相互運用するために構築されています。 相互運用性のベスト プラクティスのためのサービス構成を簡略化するために、WCF では、 System.ServiceModel.BasicHttpBinding、 System.ServiceModel.WSHttpBinding、 System.ServiceModel.WSDualHttpBindingという 3 つの相互運用可能なシステム提供バインディングが導入されています。 組織の構造化情報標準 (OASIS) 標準との相互運用性のために、WCF には、相互運用可能なシステム提供のバインディングが 1 つ含まれています: System.ServiceModel.WS2007HttpBinding。 メタデータパブリケーションの場合、WCF には、<mexHttpBinding> と <mexHttpsBinding> の 2 つの相互運用可能なシステム提供バインディングが含まれています。 このトピックでは、システムが提供する相互運用可能なバインディングでサポートされる仕様の一覧を示します。
basicHttpBinding、wsHttpBinding、ws2007HttpBinding、および wsDualHttpBinding バインドでサポートされる Web サービス プロトコル
すべてのバインド
<basicHttpBinding>、<wsHttpBinding>、および <ws2007HttpBinding> バインドでは、次のプロトコルがサポートされます。
注
メタデータの発行に使用されるバインドの詳細については、このトピックで後述する「System-Provided メタデータ バインド」セクションを参照してください。
カテゴリ | プロトコル | 仕様と使用方法 |
---|---|---|
トランスポート | HTTP 1.1 |
HTTP 1.1BasicHttpBinding 、 WSHttpBinding 、および HTTP および HTTPS トランスポートを使用 WS2007HttpBinding 。 |
メッセージング | MTOM |
MTOMbasicHttpBinding 、 wsHttpBinding 、および ws2007HttpBinding は、メッセージ送信最適化メカニズム (MTOM) をサポートします。 既定では使用されません。 MTOM を使用するには、 messageEncoding 属性を "Mtom" に設定します。例: <wsHttpBinding> <binding messageEncoding="Mtom"/> </wsHttpBinding> |
メタデータ | WSDL 1.1 |
WSDL 1.1 WCF では、Web サービス記述言語 (WSDL) を使用してサービスを記述します。 |
メタデータ | 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 基本プロファイル 1.1 に従って、 basicHttpBinding 要素は SOAP 1.1 メッセージ プロトコルを実装します。 |
安全 | WSS SOAP メッセージ セキュリティ 1.0 |
WSS SOAP メッセージ セキュリティ 1.0 基本セキュリティ プロファイルに従って、 basicHttpBinding 要素は、ユーザー名/パスワードと X.509 ベースのセキュリティに関する Web サービス セキュリティ (WSS) SOAP メッセージ セキュリティ 1.0 仕様を実装します。<basicHttpBinding> <binding name="Binding1"> <security mode="TransportWithMessageCredential | "Message" .../> </binding> </basicHttpBinding> |
安全 | WSS SOAP メッセージ セキュリティ UsernameToken プロファイル 1.0 |
WSS SOAP メッセージ セキュリティ UsernameToken プロファイル 1.0<basicHttpBinding> <binding name="Binding1"> <security mode="TransportWithMessageCredential"> <transport clientCredentialType="Basic"/> </security> </basicHttpBinding> |
安全 | WSS SOAP メッセージ セキュリティ X.509 証明書トークン プロファイル 1.0 |
WSS SOAP メッセージ セキュリティ X.509 証明書トークン プロファイル 1.0<basicHttpBinding> <security mode="Message"> <message clientCredentialType="Certificate"/> </security> </basicHttpBinding> |
wsHttpBinding、ws2007HttpBinding、および wsDualHttpBinding
カテゴリ | プロトコル | 仕様と使用方法 |
---|---|---|
メッセージング | SOAP 1.2 |
入門 メッセージング フレームワーク 補助 (HTTP バインドを含む) |
メッセージング | WS-Addressing 2005/08 |
Web サービス のアドレス指定 1.0 - コア Web サービス アドレス 1.0 - SOAP wsHttpBinding 、ws2007HttpBinding 、およびwsDualHttpBinding では、非同期メッセージング、メッセージの関連付け、トランスポートに依存しないアドレス指定メカニズムを有効にするために、World Wide Web Consortium (W3C) WS-Addressing 推奨事項を実装します。WCF では WS-Addressing ヘッダーの暗号化はサポートされていませんが、これは WS-* 仕様で許可されています。 |
メッセージング | WS-Addressing 1.0 - メタデータ |
WS-Addressing 1.0 メタデータ このプロトコルのサポートは、ServiceMetadata 動作でポリシー バージョンを設定することで有効になります。policyversion が 1.2 (既定値) に設定されている場合、wsdl の説明は WS-Addressing wsdl に準拠し、policyversion を 1.5 に設定すると、wsdl の説明は ws-addressing メタデータに準拠しています。 WCF では WS-Addressing ヘッダーの暗号化はサポートされていませんが、これは WS-* 仕様で許可されています。 |
安全 | WSS SOAP メッセージ セキュリティ 1.0 |
WSS SOAP メッセージ セキュリティ 1.0securityMode 属性が "wsSecurityOverHttp" (既定) に設定され、パラメーターがwsSecurity 子要素を使用して構成されている場合に使用します。<wsHttpBinding> <binding name="myBinding"> <security mode="Message" .../> </binding> </wsHttpBinding> |
安全 | WSS SOAP メッセージ セキュリティ UsernameToken プロファイル 1.1 |
WSS SOAP メッセージ セキュリティ UsernameToken プロファイル 1.0wsSecurity 要素の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.1wsSecurity 要素の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 メッセージ セキュリティ Kerberos トークン プロファイル 1.1 |
WSS SOAP メッセージ セキュリティ Kerberos トークン プロファイル 1.1wsSecurity 要素のauthenticationMode 属性が "Windows" に設定されている場合に、認証とメッセージ保護に使用します。<wsHttpBinding> <binding name="MyBinding"> <security mode="Message> <message clientCredentialType="Windows" negotiateServiceCredential="false" establishSecurityContext="false"/> </security> </binding> </wsHttpBinding> |
安全 | WS-SecureConversation |
WS-SecureConversationsecurity/@mode 属性が "Message" に設定され、message/@establishSecurityContext 属性が "true" (既定値) に設定されている場合に、セキュリティで保護されたセッションを提供するために使用します。 |
安全 | WS-Trust |
WS-Trust WS-SecureConversation (上記参照) によって使用されます。 |
信頼性の高いメッセージング | WS-ReliableMessaging |
WS-ReliableMessagingreliableSession を使用するようにバインドが構成されている場合に使用します。<wsHttpBinding> <binding name="myBinding"> <reliableSession/> </binding> </wsHttpBinding> |
トランザクション | WS-AtomicTransaction |
WS-AtomicTransaction トランザクション マネージャー間の通信に使用します。 WCF クライアントとサービスでは、常にローカル トランザクション マネージャーが使用されます。 |
トランザクション | WS-Coordination |
WS-CoordinationflowTransactions 属性が "Allowed" または "Required" に設定されている場合にトランザクション コンテキストをフローするために使用します。<wsHttpBinding> <binding transactionFlow="true"/> </wsHttpBinding> |
wsFederationHttpBinding と ws2007FederationHttpBinding
<wsFederationHttpBinding> および <ws2007FederationHttpBinding> 要素が導入され、サード パーティがクライアントの認証に使用されるトークンを発行するフェデレーション シナリオのサポートを提供します。
wsHttpBinding
で使用されるプロトコルに加えて、wsFederationHttpBinding
では次の機能が利用されます。
WS-Trust
トークンの発行に使用します。WSS セキュリティ アサーション マークアップ言語 (SAML) トークン プロファイル 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-Provided
次の表では、 System.ServiceModel.Description.MetadataExchangeBindings クラスによって公開されるシステム提供の相互運用可能なメタデータ バインディングでサポートされるプロトコルについて説明します。
mexHttpBinding
<mexHttpBinding> バインドでは、次のプロトコルがサポートされています。 このバインドの使用方法の詳細については、「 メタデータの公開」を参照してください。
カテゴリ | プロトコル | 仕様と使用方法 |
---|---|---|
トランスポート | HTTP 1.1 | HTTP 1.1 |
メッセージング | SOAP 1.2 |
入門 メッセージング フレームワーク 補助 (HTTP バインドを含む) |
メッセージング | WS-Addressing 2005/08 |
Web サービス のアドレス指定 1.0 - コア Web サービス アドレス 1.0 - SOAP |
メタデータ | WS-MetadataExchange |
WS-MetadataExchange WCF は、XML スキーマ、WSDL、および WS-Policy を取得する WS-MetadataExchange を実装します。 |
mexHttpsBinding
<mexHttpsBinding> では、次のプロトコルがサポートされています。 このバインドの使用方法の詳細については、「 メタデータの公開」を参照してください。
カテゴリ | プロトコル | 仕様と使用方法 |
---|---|---|
トランスポート | HTTP 1.1 |
HTTP 1.1 トランスポート セキュリティが有効になっています。 |
メッセージング | SOAP 1.2 |
入門 メッセージング フレームワーク 補助 (HTTP バインドを含む) |
メッセージング | WS-Addressing 2005/08 |
Web サービス のアドレス指定 1.0 - コア Web サービス アドレス 1.0 - SOAP |
メタデータ | WS-MetadataExchange |
WS-MetadataExchange WCF は、XML スキーマ、WSDL、および WS-Policy を取得する WS-MetadataExchange を実装します。 |