Delen via


Bindingen en beveiliging

De door het systeem geleverde bindingen die zijn opgenomen in WCF (Windows Communication Foundation) bieden een snelle manier om WCF-toepassingen te programmeren. Met één uitzondering hebben alle bindingen een standaardbeveiligingsschema ingeschakeld. Dit onderwerp helpt u bij het selecteren van de juiste binding voor uw beveiligingsbehoeften.

Zie Beveiligingsoverzicht voor een overzicht van WCF-beveiliging. Zie WcF-beveiliging programmeren voor meer informatie over het programmeren van WCF met behulp van bindingen.

Als u al een binding hebt geselecteerd, kunt u meer informatie vinden over het runtimegedrag dat is gekoppeld aan beveiliging in beveiligingsgedrag.

Sommige beveiligingsfuncties zijn niet programmeerbaar met behulp van de door het systeem geleverde bindingen. Zie Beveiligingsmogelijkheden met aangepaste bindingen voor meer controle over het gebruik van aangepaste bindingen.

Beveiligingsfuncties van bindingen

WCF bevat een aantal door het systeem geleverde bindingen die voldoen aan de meeste behoeften. Als een bepaalde binding niet voldoende is, kunt u ook een aangepaste binding maken. Zie Door het systeem geleverde bindingen voor een lijst met door het systeem geleverde bindingen. Zie Aangepaste bindingen voor meer informatie over aangepaste bindingen.

Elke binding in WCF heeft twee formulieren: als API en als EEN XML-element dat wordt gebruikt in een configuratiebestand. De (API) heeft bijvoorbeeld WSHttpBinding een tegenhanger in wsHttpBinding<>.

De volgende sectie bevat beide formulieren voor elke binding en geeft een overzicht van de beveiligingsfuncties.

BasicHttp

Gebruik in code de BasicHttpBinding klasse; gebruik in de configuratie de <basicHttpBinding>.

Deze binding is ontworpen voor gebruik met een reeks bestaande technologieën, waaronder de volgende:

  • ASP.NET Web Services (ASMX), versie 1.

  • WSE-toepassingen (Web Service Enhancements).

  • Basisprofiel zoals gedefinieerd in de WS-I-specificatiehttps://go.microsoft.com/fwlink/?LinkId=38955 (Web Services Interoperability).

  • Basisbeveiligingsprofiel zoals gedefinieerd in WS-I.

Deze binding is standaard niet beveiligd. Het is ontworpen om te samenwerken met ASMX-services. Wanneer beveiliging is ingeschakeld, is de binding ontworpen voor naadloze interoperation met IIS-beveiligingsmechanismen (Internet Information Services), zoals basisverificatie, digest en geïntegreerde Windows-beveiliging. Zie Transport Security Overview (Transport Security Overview) voor meer informatie. Deze binding ondersteunt het volgende:

  • HTTPS-transportbeveiliging.

  • HTTP-basisverificatie.

  • WS-Security.

Zie , BasicHttpMessageSecurity, en BasicHttpSecurityModeBasicHttpMessageCredentialTypevoor meer informatie BasicHttpSecurity.

WSHttpBinding

Gebruik in code de klasse; gebruik in de WSHttpBinding configuratie de <wsHttpBinding>.

Deze binding implementeert standaard de WS-Security-specificatie en biedt interoperabiliteit met services die de WS-* specificaties implementeren. Het ondersteunt het volgende:

  • HTTPS-transportbeveiliging.

  • WS-Security.

  • HTTPS-transportbeveiliging met SOAP-berichtreferentiebeveiliging voor verificatie van de beller.

Zie voor meer informatie, zie , , , , , HttpTransportSecurity, , en HttpProxyCredentialTypeHttpClientCredentialType. SecurityModeMessageCredentialTypeMessageSecurityOverHttpWSHttpSecurity

WSDualHttpBinding

Gebruik in code de WSDualHttpBinding klasse; gebruik in de configuratie de <wsDualHttpBinding>.

Deze binding is ontworpen om dubbelzijdige servicetoepassingen in te schakelen. Met deze binding wordt de WS-Security-specificatie geïmplementeerd voor op berichten gebaseerde overdrachtsbeveiliging. Transportbeveiliging is niet beschikbaar. Standaard biedt het de volgende functies:

  • Implementeert WS-Reliable Messaging voor betrouwbaarheid.

  • Hiermee wordt WS-Security geïmplementeerd voor overdrachtbeveiliging en -verificatie.

  • Maakt gebruik van HTTP voor berichtbezorging.

  • Maakt gebruik van tekst-/XML-berichtcodering.

Met WS-Security (berichtlaagbeveiliging) kunt u met de binding de volgende parameters configureren:

  • De suite met beveiligingsalgoritmen om het cryptografische algoritme te bepalen.

  • Bindingsopties voor het volgende:

    • Het leveren van servicereferenties die out-of-band beschikbaar zijn op de client.

    • Het verstrekken van servicereferenties die zijn onderhandeld vanuit de service als onderdeel van het instellen van het kanaal.

Zie voor meer informatie WSDualHttpSecurity en WSDualHttpSecurityMode.

NetTcpBinding

Gebruik in code de NetTcpBinding klasse; in de configuratie gebruikt u netTcpBinding<>.

Deze binding is geoptimaliseerd voor communicatie tussen machines. Deze heeft standaard de volgende kenmerken:

  • Implementeert transportlaagbeveiliging.

  • Maakt gebruik van Windows-beveiliging voor overdrachtbeveiliging en -verificatie.

  • Maakt gebruik van TCP voor transport.

  • Implementeert binaire berichtcodering.

  • Implementeert WS-Reliable Messaging.

De volgende opties zijn:

  • Berichtlaagbeveiliging (met WS-Security).

  • Transportbeveiliging met berichtreferenties: vertrouwelijkheid en integriteit die wordt geleverd door Transport Layer Security (TLS) via TCP en referenties voor autorisatie van WS-Security.

Zie , , , TcpClientCredentialType, en MessageSecurityOverTcpMessageCredentialTypevoor meer informatie NetTcpSecurity. TcpTransportSecurity

NetNamedPipeBinding

Gebruik in code de NetNamedPipeBinding klasse; gebruik in de configuratie de <netNamedPipeBinding>.

Deze binding is geoptimaliseerd voor communicatie tussen processen (meestal op dezelfde computer). Deze binding heeft standaard de volgende kenmerken:

  • Maakt gebruik van transportbeveiliging voor berichtoverdracht en verificatie.

  • Maakt gebruik van benoemde pijpen voor berichtbezorging.

  • Implementeert binaire berichtcodering.

  • Versleuteling en berichtondertekening.

De volgende opties zijn:

  • Verificatie met windows-beveiliging.

Zie NetNamedPipeSecurity, NetNamedPipeSecurityMode en NamedPipeTransportSecurity voor meer informatie.

MsmqIntegrationBinding

Gebruik in code de klasse; gebruik in de MsmqIntegrationBinding configuratie de <msmqIntegrationBinding>.

Deze binding is geoptimaliseerd voor het maken van WCF-clients en -services die samenwerken met niet-WCF Microsoft Message Queuing-eindpunten (MSMQ).

Deze binding maakt standaard gebruik van transportbeveiliging en biedt de volgende beveiligingskenmerken:

  • Beveiliging kan worden uitgeschakeld (Geen).

  • MSMQ-transportbeveiliging (Transport).

Zie voor meer informatie NetMsmqSecurity en NetMsmqSecurityMode.

NetMsmqBinding

Gebruik in code de klasse; gebruik in de NetMsmqBinding configuratie de <netMsmqBinding>.

Deze binding is bedoeld voor gebruik bij het maken van WCF-services waarvoor MSMQ-berichtondersteuning in de wachtrij is vereist.

Deze binding maakt standaard gebruik van transportbeveiliging en biedt de volgende beveiligingskenmerken:

  • Beveiliging kan worden uitgeschakeld (Geen).

  • MSMQ-transportbeveiliging (Transport).

  • Berichtbeveiliging op basis van SOAP (Message).

  • Gelijktijdige transport- en berichtbeveiliging (beide).

  • Ondersteunde clientreferentietypen: Geen, Windows, Gebruikersnaam, Certificaat, IssuedToken.

De Certificate referentie wordt alleen ondersteund wanneer de beveiligingsmodus is ingesteld op of BothMessage.

Zie voor meer informatie MessageSecurityOverMsmq en MsmqTransportSecurity.

WSFederationHttpBinding

Gebruik in code de klasse; gebruik in de WSFederationHttpBinding configuratie de <wsFederationHttpBinding>.

Deze binding maakt standaard gebruik van WS-Security (berichtlaagbeveiliging).

Zie Federatie, WSFederationHttpSecurityen WSFederationHttpSecurityModevoor meer informatie.

Aangepaste bindingen

Als geen van de door het systeem geleverde bindingen voldoet aan uw vereisten, kunt u een aangepaste binding maken met een aangepast beveiligingsbindingselement. Zie Beveiligingsmogelijkheden met aangepaste bindingen voor meer informatie.

Bindingskeuzen

De volgende tabel bevat een overzicht van de functies die worden aangeboden in de beveiligingsmodusinstelling, dat wil gezegd, de functies worden vermeld die beschikbaar zijn wanneer de beveiligingsmodus is ingesteld Transportop , Messageof TransportWithMessageCredential. Gebruik deze tabel om u te helpen bij het vinden van de beveiligingsfuncties die uw toepassing nodig heeft.

Instelling Functies
Transport Serververificatie

Clientverificatie

Punt-naar-punt-beveiliging

Interoperabiliteit

Hardwareversnelling

Hoge doorvoersnelheid

Firewall beveiligen

Toepassingen met hoge latentie

Herversleuteling tussen meerdere hops
Bericht Serververificatie

Clientverificatie

End-to-end beveiliging

Interoperabiliteit

Uitgebreide claims

Federatie

Meervoudige verificatie

Aangepaste tokens

Notary/timestamp-service

Toepassingen met hoge latentie

Persistentie van berichthandtekeningen
TransportWithMessageCredential Serververificatie

Clientverificatie

Punt-naar-punt-beveiliging

Interoperabiliteit

Hardwareversnelling

Hoge doorvoersnelheid

Uitgebreide clientclaims

Federatie

Meervoudige verificatie

Aangepaste tokens

Firewall beveiligen

Toepassingen met hoge latentie

Herversleuteling tussen meerdere hops

De volgende tabel bevat de bindingen die ondersteuning bieden voor de verschillende modusinstellingen. Selecteer een binding in de tabel die u wilt gebruiken om uw service-eindpunt te maken.

Binding Ondersteuning voor transportmodus Ondersteuning voor de berichtenmodus Ondersteuning voor TransportWithMessageCredential
BasicHttpBinding Ja Ja Ja
WSHttpBinding Ja Ja Ja
WSDualHttpBinding No Ja No
NetTcpBinding Ja Ja Ja
NetNamedPipeBinding Ja No No
NetMsmqBinding Ja Ja No
MsmqIntegrationBinding Ja No No
wsFederationHttpBinding No Ja Ja

Transportreferenties in bindingen

De volgende tabel bevat de clientreferentietypen die beschikbaar zijn bij gebruik van BasicHttpBinding of in de WSHttpBinding transportbeveiligingsmodus.

Type Description
Geen Hiermee geeft u op dat de client geen referenties hoeft te presenteren. Dit vertaalt zich naar een anonieme client.
Basis Basisverificatie. Zie RFC 2617 – HTTP-verificatie: Basis- en digest-verificatie, beschikbaar op https://go.microsoft.com/fwlink/?LinkId=84023.
Digest Digest-verificatie. Zie RFC 2617 – HTTP-verificatie: Basis- en digest-verificatie, beschikbaar op https://go.microsoft.com/fwlink/?LinkId=84023.
NTLM NT LAN Manager-verificatie (NTLM).
Vensters Windows-verificatie.
Certificaat Verificatie uitgevoerd met behulp van een certificaat.
IssuedToken Hiermee kan de service vereisen dat de client wordt geverifieerd met behulp van een token dat is uitgegeven door een beveiligingstokenservice of door CardSpace. Zie Federatie- en uitgegeven tokens voor meer informatie.

Berichtclientreferenties in bindingen

De volgende tabel bevat de clientreferentietypen die beschikbaar zijn bij het gebruik van een binding in de berichtbeveiligingsmodus.

Type Description
Geen Hiermee kan de service communiceren met anonieme clients.
Vensters Hiermee kunnen SOAP-berichten worden uitgewisseld onder de geverifieerde context van een Windows-referentie.
Gebruikersnaam Hiermee kan de service vereisen dat de client wordt geverifieerd met behulp van een gebruikersnaamreferentie. Wanneer de beveiligingsmodus is ingesteld TransportWithMessageCredentialop, biedt WCF geen ondersteuning voor het verzenden van een wachtwoordsamenvating of het afleiden van sleutels met behulp van een wachtwoord en het gebruik van dergelijke sleutels voor de beveiliging van de berichtenmodus. Als zodanig dwingt WCF af dat het transport wordt beveiligd bij het gebruik van gebruikersnaamreferenties.
Certificaat Hiermee kan de service vereisen dat de client wordt geverifieerd met behulp van een certificaat.
IssuedToken Hiermee kan de service een beveiligingstokenservice gebruiken om een aangepast token te leveren.

Zie ook