<zabezpečení> customBinding <>
Určuje možnosti zabezpečení pro vlastní vazbu.
<Konfigurace>
<System.servicemodel>
<Vazby>
<customBinding>
<Vazba>
<Zabezpečení>
Syntaxe
<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>
Atributy a prvky
Následující části popisují atributy, podřízené prvky a nadřazené prvky.
Atributy
Atribut | Popis |
---|---|
allowSerializedSigningTokenOnReply | Nepovinné. Logická hodnota, která určuje, zda serializovaný token lze použít při odpovědi. Výchozí hodnota je false . Při použití duální vazby true se nastavení nastaví jako výchozí a jakékoli nastavení bude ignorováno. |
authenticationMode | Nepovinné. Určuje režim ověřování používaný mezi iniciátorem a respondérem. Všechny hodnoty najdete níže. Výchozí hodnota je sspiNegotiated . |
defaultAlgorithmSuite | Nepovinné. Nastaví šifrování zpráv a algoritmy zalamování klíčů. Algoritmy a velikosti klíčů jsou určeny SecurityAlgorithmSuite třídou. Tyto algoritmy se mapují na algoritmy zadané ve specifikaci WS-SecurityPolicy (Security Policy Language). Možné hodnoty jsou uvedeny níže. Výchozí hodnota je Basic256 .Tento atribut se používá při práci s jinou platformou, která se rozhodne pro sadu algoritmů, které se liší od výchozího nastavení. Při úpravách tohoto nastavení byste měli vědět o silných a slabých stránkách příslušných algoritmů. Tento atribut je typu SecurityAlgorithmSuite. |
includeTimestamp | Logická hodnota, která určuje, zda jsou časová razítka zahrnuta do každé zprávy. Výchozí hodnota je true . |
keyEntropyMode | Určuje způsob výpočtu klíčů pro zabezpečení zpráv. Klíče můžou být založené pouze na materiálu klíče klienta, pouze na materiálu klíče služby nebo na kombinaci obou klíčů. Platné hodnoty jsou - ClientEntropy : Klíč relace je založený na klíčových datech poskytovaných klientem.- ServerEntropy : Klíč relace je založený na klíčových datech poskytovaných serverem.- CombinedEntropy : Klíč relace je založený na klíčových datech poskytovaných klientem a službou.Výchozí hodnota je CombinedEntropy .Tento atribut je typu SecurityKeyEntropyMode. |
messageProtectionOrder | Nastaví pořadí, ve kterém se na zprávu použijí algoritmy zabezpečení na úrovni zpráv. Platné hodnoty zahrnují následující: - SignBeforeEncrypt : Nejdřív podepište a pak zašifrujte.- SignBeforeEncryptAndEncryptSignature : Nejdřív podepište, zašifrujte a pak podpis zašifrujte.- EncryptBeforeSign : Nejdřív zašifrujte a pak podepište.Výchozí hodnota závisí na používané verzi ws-Security. Výchozí hodnota je SignBeforeEncryptAndEncryptSignature při použití WS-Security 1.1. Výchozí hodnota je SignBeforeEncrypt při použití WS-Security 1.0.Tento atribut je typu MessageProtectionOrder. |
messageSecurityVersion | Nepovinné. Nastaví verzi ws-Security, která se používá. Platné hodnoty zahrnují následující: – WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11 – WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10 – WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10 Výchozí hodnota je WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11 a lze ji vyjádřit v XML jednoduše Default . Tento atribut je typu MessageSecurityVersion. |
requireDerivedKeys | Logická hodnota, která určuje, jestli lze klíče odvodit z původních klíčů kontroly pravopisu. Výchozí hodnota je true . |
requireSecurityContextCancellation | Nepovinné. Logická hodnota, která určuje, jestli se má kontext zabezpečení zrušit a ukončit, když už není potřeba. Výchozí hodnota je true . |
requireSignatureConfirmation | Nepovinné. Logická hodnota, která určuje, zda je povoleno potvrzení podpisu WS-Security. Pokud je tato možnost nastavená true , autor odpovědi potvrdí podpisy zpráv. Pokud je vlastní vazba nakonfigurovaná pro vzájemné certifikáty nebo je nakonfigurována tak, aby používala vydané tokeny (vazby WSS 1.1), tento atribut má výchozí hodnotu true . V opačném případě je false výchozí hodnota .Potvrzení podpisu slouží k potvrzení, že služba reaguje v plném povědomí o žádosti. |
securityHeaderLayout | Nepovinné. Určuje pořadí prvků v hlavičce zabezpečení. Platné hodnoty jsou - Strict : Položky jsou přidány do hlavičky zabezpečení podle obecného principu "deklarovat před použitím".- Lax : Položky jsou přidány do hlavičky zabezpečení v libovolném pořadí, které potvrdí WSS: zabezpečení zprávy SOAP.- LaxWithTimestampFirst : Položky jsou přidány do hlavičky zabezpečení v libovolném pořadí, které potvrdí WSS: Zabezpečení zprávy SOAP s výjimkou toho, že první prvek v hlavičce zabezpečení musí být wsse:Timestamp element.- LaxWithTimestampLast : Položky jsou přidány do hlavičky zabezpečení v libovolném pořadí, které potvrzuje WSS: Zabezpečení zprávy SOAP s výjimkou, že poslední prvek v hlavičce zabezpečení musí být wsse:Timestamp element.Výchozí hodnota je Strict .Tento prvek je typu SecurityHeaderLayout. |
authenticationMode – atribut
Hodnota | Popis |
---|---|
String | AnonymousForCertificate AnonymousForSslNegotiated CertificateOverTransport IssuedToken IssuedTokenForCertificate IssuedTokenForSslNegotiated IssuedTokenOverTransport Kerberos KerberosOverTransport MutualCertificate MutualCertificateDuplex MutualSslNegotiated SecureConversation SspiNegotiated UserNameForCertificate UserNameForSslNegotiated UserNameOverTransport SspiNegotiatedOverTransport |
defaultAlgorithm – atribut
Hodnota | Popis |
---|---|
Basic128 | K zalamování klíčů použijte šifrování Aes128, Sha1 pro digest zpráv a Rsa-oaep-mgf1p. |
Basic192 | Šifrování Aes192, Sha1 pro digest zpráv, Rsa-oaep-mgf1p pro zalamování klíčů. |
Basic256 | Šifrování Aes256, Sha1 pro digest zpráv, Rsa-oaep-mgf1p pro zalamování klíčů. |
Basic256Rsa15 | Pro šifrování zpráv použijte Aes256, Sha1 pro algoritmus hash zpráv a Rsa15 pro zalamování klíčů. |
Basic192Rsa15 | Pro šifrování zpráv použijte Aes192, Sha1 pro algoritmus hash zpráv a Rsa15 pro zalamování klíčů. |
Tripledes | Šifrování TripleDes, Sha1 pro algoritmus digest zpráv, Rsa-oaep-mgf1p pro zalamování klíčů. |
Basic128Rsa15 | Pro šifrování zpráv použijte Aes128, Sha1 pro algoritmus hash zpráv a Rsa15 pro zalamování klíčů. |
TripleDesRsa15 | Šifrování TripleDes, Sha1 pro algoritmus hash zpráv a Rsa15 pro zalamování klíčů |
Basic128Sha256 | Pro šifrování zpráv použijte Aes128, Sha256 pro digest zpráv a Rsa-oaep-mgf1p pro zalamování klíčů. |
Basic192Sha256 | Pro šifrování zpráv použijte Aes192, Sha256 pro digest zpráv a Rsa-oaep-mgf1p pro zalamování klíčů. |
Basic256Sha256 | Pro šifrování zpráv použijte Aes256, Sha256 pro digest zpráv a Rsa-oaep-mgf1p pro zalamování klíčů. |
TripleDesSha256 | Pro šifrování zpráv použijte TripleDes, Sha256 pro digest zpráv a Rsa-oaep-mgf1p pro zalamování klíčů. |
Basic128Sha256Rsa15 | Pro šifrování zpráv použijte Aes128, Sha256 pro algoritmus hash zpráv a Rsa15 pro zalamování klíčů. |
Basic192Sha256Rsa15 | Pro šifrování zpráv použijte Aes192, Sha256 pro algoritmus hash zpráv a Rsa15 pro zalamování klíčů. |
Basic256Sha256Rsa15 | Pro šifrování zpráv použijte Aes256, Sha256 pro algoritmus hash zpráv a Rsa15 pro zalamování klíčů. |
TripleDesSha256Rsa15 | Pro šifrování zpráv použijte TripleDes, Sha256 pro algoritmus hash zpráv a Rsa15 pro zalamování klíčů. |
Podřízené prvky
Element (Prvek) | Popis |
---|---|
<issuedTokenParameters> | Určuje aktuální vystavený token. Tento prvek je typu IssuedTokenParametersElement. |
<localClient Nastavení> | Určuje nastavení zabezpečení místního klienta pro tuto vazbu. Tento prvek je typu LocalClientSecuritySettingsElement. |
<localService Nastavení> | Určuje nastavení zabezpečení místní služby pro tuto vazbu. Tento prvek je typu LocalServiceSecuritySettingsElement. |
<secureConversationBootstrap> | Určuje výchozí hodnoty používané k zahájení zabezpečené konverzační služby. |
Nadřazené prvky
Element (Prvek) | Popis |
---|---|
<Vazba> | Definuje všechny možnosti vazby vlastní vazby. |
Poznámky
Další informace o použití tohoto elementu naleznete v tématu Režimy ověřování SecurityBindingElement a Postupy: Vytvoření vlastní vazby pomocí SecurityBindingElement.
Příklad
Následující příklad ukazuje, jak nakonfigurovat zabezpečení pomocí vlastní vazby. Ukazuje, jak pomocí vlastní vazby povolit zabezpečení na úrovni zpráv společně se zabezpečeným přenosem. To je užitečné, když je pro přenos zpráv mezi klientem a službou vyžadován zabezpečený přenos zpráv a současně musí být zprávy zabezpečené na úrovni zprávy. Tato konfigurace není podporována systémovými vazbami.
Konfigurace služby definuje vlastní vazbu, která podporuje komunikaci TCP chráněnou protokolem TLS/SSL a zabezpečení zpráv systému Windows. Vlastní vazba používá certifikát služby k ověření služby na úrovni přenosu a k ochraně zpráv během přenosu mezi klientem a službou. Toho se dosahuje elementem vazby <sslStreamSecurity> . Certifikát služby je nakonfigurovaný pomocí chování služby.
Kromě toho vlastní vazba používá zabezpečení zpráv s typem přihlašovacích údajů systému Windows – toto je výchozí typ přihlašovacích údajů. Toho se dosahuje elementem vazby zabezpečení . Klient i služba se ověřují pomocí zabezpečení na úrovni zpráv, pokud je k dispozici mechanismus ověřování Kerberos. Pokud mechanismus ověřování kerberos není k dispozici, použije se ověřování NTLM. NTLM ověřuje klienta ve službě, ale neověřuje službu pro klienta. Element vazby zabezpečení je nakonfigurován tak, aby používal SecureConversation
authenticationType, což vede k vytvoření relace zabezpečení na klientovi i službě. To je nutné k tomu, aby duplexní kontrakt služby fungoval. Další informace o spuštění tohoto příkladu naleznete v tématu Zabezpečení vlastních vazeb.
<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>