Dela via


Bindningar och säkerhet

De systembaserade bindningar som ingår i Windows Communication Foundation (WCF) ger ett snabbt sätt att programmera WCF-program. Med ett undantag har alla bindningar ett standardsäkerhetsschema aktiverat. Det här avsnittet hjälper dig att välja rätt bindning för dina säkerhetsbehov.

En översikt över WCF-säkerhet finns i Säkerhetsöversikt. Mer information om hur du programmerar WCF med bindningar finns i Programmering av WCF-säkerhet.

Om du redan har valt en bindning kan du ta reda på mer om körningsbeteenden som är associerade med säkerhet i Säkerhetsbeteenden.

Vissa säkerhetsfunktioner kan inte programmeras med hjälp av bindningar som tillhandahålls av systemet. Mer kontroll med en anpassad bindning finns i Säkerhetsfunktioner med anpassade bindningar.

Säkerhetsfunktioner för bindningar

WCF innehåller ett antal systembaserade bindningar som uppfyller de flesta behov. Om en viss bindning inte räcker kan du också skapa en anpassad bindning. En lista över bindningar som tillhandahålls av systemet finns i Bindningar som tillhandahålls av systemet. Mer information om anpassade bindningar finns i Anpassade bindningar.

Varje bindning i WCF har två formulär: som ett API och som ett XML-element som används i en konfigurationsfil. Till exempel WSHttpBinding har (API) en motsvarighet i <wsHttpBinding>.

I följande avsnitt visas båda formulären för varje bindning och sammanfattar säkerhetsfunktionerna.

BasicHttp

I kod använder du BasicHttpBinding klassen; i konfigurationen använder du basicHttpBinding<>.

Den här bindningen är utformad för användning med en rad befintliga tekniker, inklusive följande:

  • ASP.NET Webbtjänster (ASMX), version 1.

  • WSE-program (Web Service Enhancements).

  • Grundläggande profil enligt definitionen i WS-I-specifikationen (https://go.microsoft.com/fwlink/?LinkId=38955Web Services Interoperability).

  • Grundläggande säkerhetsprofil enligt definitionen i WS-I.

Som standard är den här bindningen inte säker. Den är utformad för att samverka med ASMX-tjänster. När säkerheten är aktiverad är bindningen utformad för sömlöst samarbete med IIS-säkerhetsmekanismer (Internet Information Services), till exempel grundläggande autentisering, sammandrag och integrerad Windows-säkerhet. Mer information finns i Översikt över transportsäkerhet. Den här bindningen stöder följande:

  • HTTPS-transportsäkerhet.

  • Grundläggande HTTP-autentisering.

  • WS-Security.

Mer information finns i BasicHttpSecurity, BasicHttpMessageSecurity, BasicHttpMessageCredentialTypeoch BasicHttpSecurityMode.

WSHttpBinding

I kod använder du WSHttpBinding klassen; i konfigurationen <använder du wsHttpBinding>.

Som standard implementerar den här bindningen WS-Security-specifikationen och tillhandahåller samverkan med tjänster som implementerar WS-*-specifikationerna. Den stöder följande:

  • HTTPS-transportsäkerhet.

  • WS-Security.

  • HTTPS-transportskydd med SOAP-meddelandeautentiseringssäkerhet för autentisering av anroparen.

Mer information finns i WSHttpSecurity, , MessageSecurityOverHttpMessageCredentialType, SecurityMode, HttpTransportSecurity, HttpClientCredentialTypeoch HttpProxyCredentialType.

WSDualHttpBinding

I kod använder du WSDualHttpBinding klassen; i konfigurationen <använder du wsDualHttpBinding>.

Den här bindningen är utformad för att aktivera duplex-tjänstprogram. Den här bindningen implementerar WS-Security-specifikationen för meddelandebaserad överföringssäkerhet. Transportsäkerhet är inte tillgängligt. Som standard innehåller den följande funktioner:

  • Implementerar WS-Reliable Messaging för tillförlitlighet.

  • Implementerar WS-Security för överföringssäkerhet och autentisering.

  • Använder HTTP för meddelandeleverans.

  • Använder text-/XML-meddelandekodning.

Med WS-Security (säkerhet på meddelandenivå) kan du med bindningen konfigurera följande parametrar:

  • Säkerhetsalgoritmsviten för att fastställa den kryptografiska algoritmen.

  • Bindningsalternativ för följande:

    • Tillhandahålla tjänstautentiseringsuppgifter som är tillgängliga out-of-band på klienten.

    • Tillhandahålla autentiseringsuppgifter för tjänsten som förhandlats från tjänsten som en del av kanalkonfigurationen.

Mer information finns i WSDualHttpSecurity och WSDualHttpSecurityMode.

NetTcpBinding

Använd klassen i kodNetTcpBinding. Använd netTcpBinding> i konfigurationen<.

Den här bindningen är optimerad för kommunikation mellan datorer. Som standard har den följande egenskaper:

  • Implementerar säkerhet på transportnivå.

  • Utnyttjar Windows-säkerhet för överföringssäkerhet och autentisering.

  • Använder TCP för transport.

  • Implementerar binär meddelandekodning.

  • Implementerar WS-Reliable Messaging.

Alternativen omfattar följande:

  • Säkerhet på meddelandenivå (med WS-Security).

  • Transportsäkerhet med meddelandeautentiseringsuppgifter – konfidentialitet och integritet som tillhandahålls av TLS (Transport Layer Security) över TCP och autentiseringsuppgifter för auktorisering som tillhandahålls av WS-Security.

Mer information finns i NetTcpSecurity, TcpTransportSecurity, TcpClientCredentialType, MessageSecurityOverTcpoch MessageCredentialType.

NetNamedPipeBinding

Använd klassen i kodNetNamedPipeBinding. Använd netNamedPipeBinding> i konfigurationen<.

Den här bindningen är optimerad för kommunikation mellan processer (vanligtvis på samma dator). Som standard har den här bindningen följande egenskaper:

  • Använder transportsäkerhet för meddelandeöverföring och autentisering.

  • Använder namngivna pipes för meddelandeleverans.

  • Implementerar binär meddelandekodning.

  • Kryptering och meddelandesignering.

Alternativen omfattar följande:

  • Autentisering med Windows-säkerhet.

För mer information, se NetNamedPipeSecurity, NetNamedPipeSecurityMode, och NamedPipeTransportSecurity.

MsmqIntegrationBinding

I kod använder du MsmqIntegrationBinding klassen. Använd msmqIntegrationBinding> i konfigurationen<.

Den här bindningen är optimerad för att skapa WCF-klienter och tjänster som samverkar med MSMQ-slutpunkter (Microsoft Message Queuing) som inte är WCF.

Som standard använder den här bindningen transportsäkerhet och tillhandahåller följande säkerhetsegenskaper:

  • Säkerhet kan inaktiveras (Ingen).

  • MSMQ transportsäkerhet (Transport).

Mer information finns i NetMsmqSecurity och NetMsmqSecurityMode.

NetMsmqBinding

Använd klassen i kodNetMsmqBinding. Använd netMsmqBinding> i konfigurationen<.

Den här bindningen är avsedd att användas när du skapar WCF-tjänster som kräver stöd för MSMQ-köade meddelanden.

Som standard använder den här bindningen transportsäkerhet och tillhandahåller följande säkerhetsegenskaper:

  • Säkerhet kan inaktiveras (Ingen).

  • MSMQ transportsäkerhet (Transport).

  • SOAP-baserad meddelandesäkerhet (meddelande).

  • Samtidig transport- och meddelandesäkerhet (båda).

  • Klientautentiseringstyper stöds: None, Windows, UserName, Certificate, IssuedToken.

Certificate Autentiseringsuppgifterna stöds endast när säkerhetsläget är inställt på antingen Both eller Message.

Mer information finns i MessageSecurityOverMsmq och MsmqTransportSecurity.

WSFederationHttpBinding

I kod använder du WSFederationHttpBinding klassen. Använd wsFederationHttpBinding> i konfigurationen<.

Som standard använder den här bindningen WS-Security (säkerhet på meddelandenivå).

Mer information finns i Federation, WSFederationHttpSecurityoch WSFederationHttpSecurityMode.

Anpassade bindningar

Om ingen av de systembaserade bindningarna uppfyller dina krav kan du skapa en anpassad bindning med ett anpassat säkerhetsbindningselement. Mer information finns i Säkerhetsfunktioner med anpassade bindningar.

Bindningsalternativ

I följande tabell sammanfattas de funktioner som erbjuds i inställningen för säkerhetsläge, dvs. den visar de funktioner som är tillgängliga när säkerhetsläget är inställt på Transport, Messageeller TransportWithMessageCredential. Använd den här tabellen för att hitta de säkerhetsfunktioner som programmet kräver.

Inställning Funktioner
Transport Serverautentisering

Klientautentisering

Punkt-till-punkt-säkerhet

Samverkan

Maskinvaruacceleration

Högt genomflöde

Säker brandvägg

Program med långa svarstider

Omkryptering över flera hopp
Meddelande Serverautentisering

Klientautentisering

Säkerhet slutpunkt till slutpunkt

Samverkan

Omfattande anspråk

Federation

Multifaktorautentisering

Anpassade token

Notarie-/tidsstämpeltjänst

Program med långa svarstider

Beständighet för meddelandesignaturer
TransportWithMessageCredential Serverautentisering

Klientautentisering

Punkt-till-punkt-säkerhet

Samverkan

Maskinvaruacceleration

Högt genomflöde

Omfattande klientanspråk

Federation

Multifaktorautentisering

Anpassade token

Säker brandvägg

Program med långa svarstider

Omkryptering över flera hopp

I följande tabell visas de bindningar som stöder de olika lägesinställningarna. Välj en bindning från tabellen som ska användas för att skapa tjänstslutpunkten.

Bindning Stöd för transportläge Stöd för meddelandeläge TransportWithMessageCredential-stöd
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

Transportautentiseringsuppgifter i bindningar

I följande tabell visas de tillgängliga typerna av klientautentiseringsuppgifter när du använder antingen BasicHttpBinding eller WSHttpBinding i transportsäkerhetsläge.

Typ Description
None Anger att klienten inte behöver presentera några autentiseringsuppgifter. Detta översätts till en anonym klient.
Grundläggande Grundläggande autentisering. Mer information finns i RFC 2617 – HTTP-autentisering: Grundläggande och sammanfattad autentisering, tillgänglig på https://go.microsoft.com/fwlink/?LinkId=84023.
Digest Sammanfattad autentisering. Mer information finns i RFC 2617 – HTTP-autentisering: Grundläggande och sammanfattad autentisering, tillgänglig på https://go.microsoft.com/fwlink/?LinkId=84023.
NTLM NT LAN Manager-autentisering (NTLM).
Windows Windows-autentisering.
Certifikat Autentisering som utförs med hjälp av ett certifikat.
IssuedToken Tillåter att tjänsten kräver att klienten autentiseras med en token som utfärdats av en säkerhetstokentjänst eller av CardSpace. Mer information finns i Federation och Utfärdade token.

Autentiseringsuppgifter för meddelandeklient i bindningar

I följande tabell visas vilka typer av klientautentiseringsuppgifter som är tillgängliga när du använder en bindning i meddelandesäkerhetsläge.

Typ Description
None Tillåter att tjänsten interagerar med anonyma klienter.
Windows Gör att SOAP-meddelandeutbyten kan göras under autentiserad kontext för en Windows-autentiseringsuppgift.
UserName Tillåter att tjänsten kräver att klienten autentiseras med hjälp av en autentiseringsuppgift för användarnamn. Observera att när säkerhetsläget är inställt på TransportWithMessageCredential, stöder WCF inte att skicka en lösenordssammandrag eller härleda nycklar med hjälp av lösenord och använda sådana nycklar för säkerhet i meddelandeläge. Därför framtvingar WCF att transporten skyddas när autentiseringsuppgifterna för användarnamn används.
Certifikat Tillåter att tjänsten kräver att klienten autentiseras med hjälp av ett certifikat.
IssuedToken Tillåter att tjänsten använder en säkerhetstokentjänst för att tillhandahålla en anpassad token.

Se även