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 Transport
op , Message
of 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 TransportWithMessageCredential op, 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. |