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 System-Provided Bindingen voor een lijst met systeemgeleverde 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. Bijvoorbeeld, de WSHttpBinding (API) heeft 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 Web Services Interoperability-specificatie (WS-I) (https://go.microsoft.com/fwlink/?LinkId=38955).

  • 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 voor meer informatie. Deze binding ondersteunt het volgende:

  • HTTPS-transportbeveiliging.

  • HTTP-basisverificatie.

  • WS-Security.

Zie , BasicHttpSecurity, en BasicHttpMessageSecurityBasicHttpMessageCredentialTypevoor meer informatie BasicHttpSecurityMode.

WSHttpBinding

Gebruik in code de WSHttpBinding klasse; gebruik in de 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 , , , , , WSHttpSecurity, , en MessageSecurityOverHttpMessageCredentialType. SecurityModeHttpTransportSecurityHttpClientCredentialTypeHttpProxyCredentialType

WSDualHttpBinding

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

Deze binding is ontworpen om duplex 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.

  • Implementeert WS-Security voor overdrachtbeveiliging en -verificatie.

  • Maakt gebruik van HTTP voor berichtbezorging.

  • Maakt gebruik van tekst-/XML-berichtcodering.

Met behulp van 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 verstrekken van servicegegevens die buiten de band beschikbaar zijn bij de client.

    • Het verstrekken van servicegegevens die door de service zijn onderhandeld als onderdeel van de kanaalinstelling.

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:

  • Beveiliging van berichtlagen (gebruikmakend van 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 , , , NetTcpSecurity, en TcpTransportSecurityTcpClientCredentialTypevoor meer informatie MessageSecurityOverTcp. MessageCredentialType

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 , NetNamedPipeSecurityen NetNamedPipeSecurityModevoor meer informatie NamedPipeTransportSecurity.

MsmqIntegrationBinding

Gebruik in de code de MsmqIntegrationBinding klasse; gebruik in de 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 de code de klasse NetMsmqBinding; gebruik in de 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 één van beide, Both of Message.

Zie voor meer informatie MessageSecurityOverMsmq en MsmqTransportSecurity.

WSFederationHttpBinding

Gebruik in code de WSFederationHttpBinding klasse; gebruik in de 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.

Keuzes voor bindingen

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.

Configuratie Kenmerken
Vervoer Serverauthenticatie

Clientverificatie

Punt-naar-punt-beveiliging

Interoperabiliteit

Hardwareversnelling

Hoge doorvoersnelheid

Firewall beveiligen

Toepassingen met hoge latentie

Herversleuteling over meerdere sprongen
Bericht Serverauthenticatie

Clientverificatie

Beveiliging van begin tot eind

Interoperabiliteit

Uitgebreide claims

Federatie

Meervoudige verificatie

Aangepaste tokens

Notaris/tijdstempelservice

Toepassingen met hoge latentie

Persistentie van berichthandtekeningen
TransportMetBerichtReferentie Serverauthenticatie

Clientverificatie

Punt-naar-punt-beveiliging

Interoperabiliteit

Hardwareversnelling

Hoge doorvoersnelheid

Uitgebreide clientclaims

Federatie

Meervoudige verificatie

Aangepaste tokens

Firewall beveiligen

Toepassingen met hoge latentie

Herversleuteling over meerdere sprongen

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.

Verbindend Ondersteuning voor transportmodus Ondersteuning voor de berichtenmodus Ondersteuning voor TransportWithMessageCredential
BasicHttpBinding Ja Ja Ja
WSHttpBinding Ja Ja Ja
WSDualHttpBinding Nee. Ja Nee.
NetTcpBinding Ja Ja Ja
NetNamedPipeBinding Ja Nee. Nee.
NetMsmqBinding Ja Ja Nee.
MsmqIntegrationBinding Ja Nee. Nee.
wsFederationHttpBinding Nee. Ja Ja

Transportreferenties in bindingen

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

Typologie Beschrijving
Geen Hiermee geeft u op dat de client geen referenties hoeft te presenteren. Dit vertaalt zich naar een anonieme client.
Eenvoudig Basisverificatie. Zie RFC 2617 – HTTP-verificatie: Basis- en digest-verificatie, beschikbaar op https://go.microsoft.com/fwlink/?LinkId=84023.
Samenvatting Digest-authenticatie. Zie RFC 2617 – HTTP-verificatie: Basis- en digest-verificatie, beschikbaar op https://go.microsoft.com/fwlink/?LinkId=84023.
NTLM NT LAN Manager-authenticatie (NTLM).
Ramen Windows-verificatie.
Certificaat Verificatie uitgevoerd met behulp van een certificaat.
UitgegevenToken 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.

Clientgegevens in bindings

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

Typologie Beschrijving
Geen Hiermee kan de service communiceren met anonieme clients.
Ramen 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. WCF vereist daarom dat het transport wordt beveiligd bij het gebruik van gebruikersnamen.
Certificaat Hiermee kan de service vereisen dat de client wordt geverifieerd met behulp van een certificaat.
UitgegevenToken Hiermee kan de service een securitytokenservice gebruiken om een aangepast token te leveren.

Zie ook