<säkerhet> för <customBinding>
Anger säkerhetsalternativen för en anpassad bindning.
<Konfiguration>
<system.serviceModel>
<Bindningar>
<customBinding>
<Bindande>
<Säkerhet >
Syntax
<security allowSerializedSigningTokenOnReply="Boolean"
authenticationMode="AuthenticationMode"
defaultAlgorithmSuite="SecurityAlgorithmSuite"
includeTimestamp="Boolean"
requireDerivedKeys="Boolean"
keyEntropyMode="ClientEntropy/ServerEntropy/CombinedEntropy"
messageProtectionOrder="SignBeforeEncrypt/SignBeforeEncryptAndEncryptSignature/EncryptBeforeSign"
messageSecurityVersion="WSSecurityJan2004/WSSecurityXXX2005"
requireSecurityContextCancellation="Boolean"
requireSignatureConfirmation="Boolean"
securityHeaderLayout="Strict/Lax/LaxTimestampFirst/LaxTimestampLast">
<issuedTokenParameters />
<localClientSettings />
<localServiceSettings />
<secureConversationBootstrap />
</security>
Attribut och element
I följande avsnitt beskrivs attribut, underordnade element och överordnade element
Attribut
Attribut | beskrivning |
---|---|
allowSerializedSigningTokenOnReply | Valfritt. Ett booleskt värde som anger om en serialiserad token kan användas vid svar. Standardvärdet är false . När du använder en dubbel bindning ignoreras true inställningen och alla inställningar som görs ignoreras. |
authenticationMode | Valfritt. Anger det autentiseringsläge som används mellan initieraren och svararen. Se nedan för alla värden. Standardvärdet är sspiNegotiated . |
defaultAlgorithmSuite | Valfritt. Anger meddelandekryptering och nyckelomslutningsalgoritmer. Algoritmerna och nyckelstorlekarna bestäms av SecurityAlgorithmSuite klassen. Dessa algoritmer mappas till de som anges i specifikationen Security Policy Language (WS-SecurityPolicy). Möjliga värden visas nedan. Standardvärdet är Basic256 .Det här attributet används när du arbetar med en annan plattform som väljer en uppsättning algoritmer som skiljer sig från standardvärdet. Du bör vara medveten om de relevanta algoritmernas styrkor och svagheter när du gör ändringar i den här inställningen. Det här attributet är av typen SecurityAlgorithmSuite. |
includeTimestamp | Ett booleskt värde som anger om tidsstämplar ingår i varje meddelande. Standardvärdet är true . |
keyEntropyMode | Anger hur nycklar för att skydda meddelanden beräknas. Nycklar kan endast baseras på klientnyckelmaterialet, endast på tjänstnyckelmaterialet eller en kombination av båda. Giltiga värden är - ClientEntropy : Sessionsnyckeln baseras på viktiga data som tillhandahålls av klienten.- ServerEntropy : Sessionsnyckeln baseras på viktiga data som tillhandahålls av servern.- CombinedEntropy : Sessionsnyckeln baseras på de nyckeldata som tillhandahålls av klienten och tjänsten.Standardvärdet är CombinedEntropy .Det här attributet är av typen SecurityKeyEntropyMode. |
messageProtectionOrder | Anger i vilken ordning säkerhetsalgoritmer på meddelandenivå tillämpas på meddelandet. Giltiga värden innehåller följande: - SignBeforeEncrypt : Signera först och sedan kryptera.- SignBeforeEncryptAndEncryptSignature : Signera först, kryptera och kryptera sedan signaturen.- EncryptBeforeSign : Kryptera först och signera sedan.Standardvärdet beror på vilken version av WS-Security som används. Standardvärdet är SignBeforeEncryptAndEncryptSignature när du använder WS-Security 1.1. Standardvärdet är SignBeforeEncrypt när du använder WS-Security 1.0.Det här attributet är av typen MessageProtectionOrder. |
messageSecurityVersion | Valfritt. Anger den version av WS-Security som används. Giltiga värden innehåller följande: - WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11 - WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10 - WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10 Standardvärdet är WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11 och kan uttryckas i XML som helt enkelt Default . Det här attributet är av typen MessageSecurityVersion. |
requireDerivedKeys | Ett booleskt värde som anger om nycklar kan härledas från de ursprungliga bevisnycklarna. Standardvärdet är true . |
requireSecurityContextCancellation | Valfritt. Ett booleskt värde som anger om säkerhetskontexten ska avbrytas och avslutas när den inte längre behövs. Standardvärdet är true . |
requireSignatureConfirmation | Valfritt. Ett booleskt värde som anger om signaturbekräftelsen för WS-Security är aktiverad. När värdet är inställt true på bekräftas meddelandesignaturerna av svararen. När den anpassade bindningen har konfigurerats för ömsesidiga certifikat eller om den är konfigurerad att använda utfärdade token (WSS 1.1-bindningar) är det här attributet standardvärdet true . Annars är false standardvärdet .Signaturbekräftelse används för att bekräfta att tjänsten svarar med full medvetenhet om en begäran. |
securityHeaderLayout | Valfritt. Anger ordningen på elementen i säkerhetsrubriken. Giltiga värden är - Strict : Objekt läggs till i säkerhetshuvudet enligt den allmänna principen "deklarera före användning".- Lax : Objekt läggs till i säkerhetshuvudet i valfri ordning som bekräftar för WSS: SOAP-meddelandesäkerhet.- LaxWithTimestampFirst : Objekt läggs till i säkerhetshuvudet i valfri ordning som bekräftar för WSS: SOAP-meddelandesäkerhet, förutom att det första elementet i säkerhetshuvudet måste vara ett wsse:Timestamp-element.- LaxWithTimestampLast : Objekt läggs till i säkerhetshuvudet i valfri ordning som bekräftar för WSS: SOAP-meddelandesäkerhet förutom att det sista elementet i säkerhetshuvudet måste vara ett wsse:Timestamp-element.Standardvärdet är Strict .Det här elementet är av typen SecurityHeaderLayout. |
authenticationMode-attribut
Värde | beskrivning |
---|---|
String | AnonymousForCertificate AnonymousForSslNegotiated CertificateOverTransport IssuedToken IssuedTokenForCertificate IssuedTokenForSslNegotiated IssuedTokenOverTransport Kerberos KerberosOverTransport MutualCertificate MutualCertificateDuplex MutualSslNegotiated SecureConversation SspiNegotiated UserNameForCertificate UserNameForSslNegotiated UserNameOverTransport SspiNegotiatedOverTransport |
defaultAlgorithm-attribut
Värde | beskrivning |
---|---|
Basic128 | Använd Aes128-kryptering, Sha1 för meddelandesammandrag och Rsa-oaep-mgf1p för nyckelomslutning. |
Basic192 | Använd Aes192-kryptering, Sha1 för meddelandesammandrag, Rsa-oaep-mgf1p för nyckelomslutning. |
Basic256 | Använd Aes256-kryptering, Sha1 för meddelandesammandrag, Rsa-oaep-mgf1p för nyckelomslutning. |
Basic256Rsa15 | Använd Aes256 för meddelandekryptering, Sha1 för meddelandesammandrag och Rsa15 för nyckelomslutning. |
Basic192Rsa15 | Använd Aes192 för meddelandekryptering, Sha1 för meddelandesammandrag och Rsa15 för nyckelomslutning. |
Tripledes | Använd TripleDes-kryptering, Sha1 för meddelandesammandrag, Rsa-oaep-mgf1p för nyckelomslutning. |
Basic128Rsa15 | Använd Aes128 för meddelandekryptering, Sha1 för meddelandesammandrag och Rsa15 för nyckelomslutning. |
TripleDesRsa15 | Använd TripleDes-kryptering, Sha1 för meddelandesammandrag och Rsa15 för nyckelomslutning. |
Basic128Sha256 | Använd Aes128 för meddelandekryptering, Sha256 för meddelandesammandrag och Rsa-oaep-mgf1p för nyckelomslutning. |
Basic192Sha256 | Använd Aes192 för meddelandekryptering, Sha256 för meddelandesammandrag och Rsa-oaep-mgf1p för nyckelomslutning. |
Basic256Sha256 | Använd Aes256 för meddelandekryptering, Sha256 för meddelandesammandrag och Rsa-oaep-mgf1p för nyckelomslutning. |
TripleDesSha256 | Använd TripleDes för meddelandekryptering, Sha256 för meddelandesammandrag och Rsa-oaep-mgf1p för nyckelomslutning. |
Basic128Sha256Rsa15 | Använd Aes128 för meddelandekryptering, Sha256 för meddelandesammandrag och Rsa15 för nyckelomslutning. |
Basic192Sha256Rsa15 | Använd Aes192 för meddelandekryptering, Sha256 för meddelandesammandrag och Rsa15 för nyckelomslutning. |
Basic256Sha256Rsa15 | Använd Aes256 för meddelandekryptering, Sha256 för meddelandesammandrag och Rsa15 för nyckelomslutning. |
TripleDesSha256Rsa15 | Använd TripleDes för meddelandekryptering, Sha256 för meddelandesammandrag och Rsa15 för nyckelomslutning. |
Underordnade element
Element | Description |
---|---|
<issuedTokenParameters> | Anger en aktuell utfärdad token. Det här elementet är av typen IssuedTokenParametersElement. |
<localClient Inställningar> | Anger säkerhetsinställningarna för en lokal klient för den här bindningen. Det här elementet är av typen LocalClientSecuritySettingsElement. |
<localService Inställningar> | Anger säkerhetsinställningarna för en lokal tjänst för den här bindningen. Det här elementet är av typen LocalServiceSecuritySettingsElement. |
<secureConversationBootstrap> | Anger de standardvärden som används för att initiera en säker konversationstjänst. |
Överordnade element
Element | Description |
---|---|
<Bindande> | Definierar alla bindningsfunktioner i den anpassade bindningen. |
Anmärkningar
Mer information om hur du använder det här elementet finns i SecurityBindingElement Authentication Modes (Autentiseringslägen för SecurityBindingElement) och How to: Create a Custom Binding Using the SecurityBindingElement (Skapa en anpassad bindning med SecurityBindingElement).
Exempel
I följande exempel visas hur du konfigurerar säkerhet med hjälp av en anpassad bindning. Den visar hur du använder en anpassad bindning för att aktivera säkerhet på meddelandenivå tillsammans med en säker transport. Detta är användbart när en säker transport krävs för att överföra meddelandena mellan klienten och tjänsten och samtidigt måste meddelandena vara säkra på meddelandenivå. Den här konfigurationen stöds inte av bindningar som tillhandahålls av systemet.
Tjänstkonfigurationen definierar en anpassad bindning som stöder TCP-kommunikation som skyddas med TLS/SSL-protokollet och Windows-meddelandesäkerhet. Den anpassade bindningen använder ett tjänstcertifikat för att autentisera tjänsten på transportnivå och för att skydda meddelandena under överföringen mellan klient och tjänst. Detta görs av bindningselementet <sslStreamSecurity> . Tjänstens certifikat har konfigurerats med hjälp av ett tjänstbeteende.
Dessutom använder den anpassade bindningen meddelandesäkerhet med windows-autentiseringstypen – det här är standardtypen för autentiseringsuppgifter. Detta görs av säkerhetsbindningselementet. Både klienten och tjänsten autentiseras med hjälp av säkerhet på meddelandenivå om Kerberos-autentiseringsmekanismen är tillgänglig. Om Kerberos-autentiseringsmekanismen inte är tillgänglig används NTLM-autentisering. NTLM autentiserar klienten till tjänsten men autentiserar inte tjänsten till klienten. Säkerhetsbindningselementet är konfigurerat för att använda SecureConversation
authenticationType, vilket resulterar i att en säkerhetssession skapas på både klienten och tjänsten. Detta krävs för att tjänstens duplex-kontrakt ska fungera. Mer information om hur du kör det här exemplet finns i Anpassad bindningssäkerhet.
<configuration>
<system.serviceModel>
<services>
<service name="Microsoft.ServiceModel.Samples.CalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<host>
<baseAddresses>
<!-- use following base address -->
<add baseAddress="net.tcp://localhost:8000/ServiceModelSamples/Service"/>
</baseAddresses>
</host>
<endpoint address=""
binding="customBinding"
bindingConfiguration="Binding1"
contract="Microsoft.ServiceModel.Samples.ICalculatorDuplex" />
<!-- the mex endpoint is exposed at net.tcp://localhost:8000/ServiceModelSamples/service/mex -->
<endpoint address="mex"
binding="mexTcpBinding"
contract="IMetadataExchange" />
</service>
</services>
<bindings>
<!-- configure a custom binding -->
<customBinding>
<binding name="Binding1">
<security authenticationMode="SecureConversation"
requireSecurityContextCancellation="true">
</security>
<textMessageEncoding messageVersion="Soap12WSAddressing10"
writeEncoding="utf-8" />
<sslStreamSecurity requireClientCertificate="false" />
<tcpTransport />
</binding>
</customBinding>
</bindings>
<!--For debugging purposes set the includeExceptionDetailInFaults attribute to true-->
<behaviors>
<serviceBehaviors>
<behavior name="CalculatorServiceBehavior">
<serviceMetadata />
<serviceDebug includeExceptionDetailInFaults="False" />
<serviceCredentials>
<serviceCertificate findValue="localhost"
storeLocation="LocalMachine"
storeName="My"
x509FindType="FindBySubjectName" />
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>