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 iSystem-Provided Bindningar. 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-applikationer (Web Service Enhancements).

  • Grundläggande profil enligt definitionen i specifikationen för webbtjänsters samverkan (WS-I) (https://go.microsoft.com/fwlink/?LinkId=38955).

  • 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 konfigurera följande parametrar med bindningen:

  • 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 tjänstens autentiseringsuppgifter som har förhandlats fram 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-meddelandehantering.

Alternativen omfattar följande:

  • Säkerhet på meddelandenivå (med hjälp av 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 kanaler för meddelandeleverans.

  • Implementerar binär meddelandekodning.

  • Kryptering och meddelandesignering.

Alternativen omfattar följande:

  • Autentisering med Windows-säkerhet.

Mer information finns i NetNamedPipeSecurity, NetNamedPipeSecurityModeoch 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 Egenskaper
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 från slutpunkt till slutpunkt

Samverkan

Rika anspråk

Förbund

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

Påståenden om 'Rich Client'

Förbund

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 transportmodus Stöd för meddelandeläge TransportWithMessageCredential-stöd
BasicHttpBinding Ja Ja Ja
WSHttpBinding Ja Ja Ja
WSDualHttpBinding Nej Ja Nej
NetTcpBinding Ja Ja Ja
NetNamedPipeBinding Ja Nej Nej
NetMsmqBinding Ja Ja Nej
MsmqIntegrationBinding Ja Nej Nej
wsFederationHttpBinding Nej 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 Beskrivning
Ingen 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.
Sammanfattning Digest-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.
UtfärdadToken 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 tokens.

Meddelandeklientens autentiseringsuppgifter för 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 Beskrivning
Ingen Tillåter att tjänsten interagerar med anonyma klienter.
Windows Möjliggör utbyte av SOAP-meddelanden under en autentiserad kontext av en Windows-referens.
Användarnamn 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. WCF kräver att transporten är säker när användarnamn används som autentisering.
Certifikat Tillåter att tjänsten kräver att klienten autentiseras med hjälp av ett certifikat.
UtfärdadToken Tillåter att tjänsten använder en säkerhetstokentjänst för att tillhandahålla en anpassad token.

Se även