システム標準の相互運用性バインディングがサポートしている Web サービス プロトコル
Windows Communication Foundation (WCF) は、Web サービス仕様と呼ばれる一連の仕様をサポートする Web サービスと相互運用できるように構築されています。 サービス構成を簡略化して相互運用性のベスト プラクティスを実現するために、WCF では、相互運用可能なシステム指定のバインディングが 3 つ (System.ServiceModel.BasicHttpBinding、System.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.1BasicHttpBinding 、WSHttpBinding 、および WS2007HttpBinding は、HTTP トランスポートおよび HTTPS トランスポートを使用します。 |
メッセージング | MTOM | MTOMbasicHttpBinding 、wsHttpBinding 、および 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 | "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 wsHttpBinding 、ws2007HttpBinding 、および 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.0securityMode 属性が "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.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 Message Security Kerberos Token Profile 1.1 | WSS SOAP Message Security Kerberos Token Profile 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-ReliableMessaging バインディングが reliableSession を使用するように構成されている場合に使用します。<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 (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 が実装されています。 |