<beveiliging> van <customBinding>
Hiermee geeft u de beveiligingsopties voor een aangepaste binding.
<configuratie>
<system.serviceModel>
<Bindings>
<customBinding>
<Bindend>
<Beveiliging>
Syntaxis
<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>
Kenmerken en elementen
In de volgende secties worden kenmerken, onderliggende elementen en bovenliggende elementen beschreven
Kenmerken
Kenmerk | Beschrijving |
---|---|
allowSerializedSigningTokenOnReply | Optioneel. Een Booleaanse waarde die aangeeft of een geserialiseerd token kan worden gebruikt bij het beantwoorden. De standaardwaarde is false . Wanneer u een dubbele binding gebruikt, wordt de standaardinstelling true genegeerd en worden alle instellingen genegeerd. |
authenticationMode | Optioneel. Hiermee geeft u de verificatiemodus op die wordt gebruikt tussen de initiator en de responder. Zie hieronder voor alle waarden. De standaardwaarde is sspiNegotiated . |
defaultAlgorithmSuite | Optioneel. Hiermee stelt u de berichtversleuteling en sleutelterugloopalgoritmen in. De algoritmen en de sleutelgrootten worden bepaald door de SecurityAlgorithmSuite klasse. Deze algoritmen worden toegewezen aan de algoritmen die zijn opgegeven in de WS-SecurityPolicy-specificatie (Security Policy Language). Mogelijke waarden worden hieronder weergegeven. De standaardwaarde is Basic256 .Dit kenmerk wordt gebruikt bij het werken met een ander platform dat kiest voor een set algoritmen die afwijken van de standaardinstelling. U moet rekening houden met de sterke en zwakke punten van de relevante algoritmen bij het aanbrengen van wijzigingen in deze instelling. Dit kenmerk is van het type SecurityAlgorithmSuite. |
includeTimestamp | Een Booleaanse waarde die aangeeft of tijdstempels zijn opgenomen in elk bericht. De standaardwaarde is true . |
keyEntropyMode | Hiermee geeft u de manier op waarop sleutels voor het beveiligen van berichten worden berekend. Sleutels kunnen alleen worden gebaseerd op het clientsleutelmateriaal, alleen op het servicesleutelmateriaal of op een combinatie van beide. Geldige waarden zijn - ClientEntropy : De sessiesleutel is gebaseerd op sleutelgegevens die door de client worden verstrekt.- ServerEntropy : De sessiesleutel is gebaseerd op sleutelgegevens die door de server worden geleverd.- CombinedEntropy : De sessiesleutel is gebaseerd op de sleutelgegevens die worden geleverd door de client en service.De standaardwaarde is CombinedEntropy .Dit kenmerk is van het type SecurityKeyEntropyMode. |
messageProtectionOrder | Hiermee stelt u de volgorde in waarin beveiligingsalgoritmen op berichtniveau worden toegepast op het bericht. Geldige waarden zijn onder andere: - SignBeforeEncrypt : Teken eerst en versleutel vervolgens.- SignBeforeEncryptAndEncryptSignature : Teken eerst, versleutel en versleutel vervolgens de handtekening.- EncryptBeforeSign : Eerst versleutelen en vervolgens ondertekenen.De standaardwaarde is afhankelijk van de versie van WS-Security die wordt gebruikt. De standaardwaarde is SignBeforeEncryptAndEncryptSignature wanneer u WS-Security 1.1 gebruikt. De standaardwaarde is SignBeforeEncrypt wanneer u WS-Security 1.0 gebruikt.Dit kenmerk is van het type MessageProtectionOrder. |
messageSecurityVersion | Optioneel. Hiermee stelt u de versie van WS-Security in die wordt gebruikt. Geldige waarden zijn onder andere: - WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11 - WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10 - WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10 De standaardwaarde is WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11 en kan in de XML worden uitgedrukt als gewoon Default . Dit kenmerk is van het type MessageSecurityVersion. |
requireDerivedKeys | Een Booleaanse waarde die aangeeft of sleutels kunnen worden afgeleid van de oorspronkelijke bewijssleutels. De standaardwaarde is true . |
requireSecurityContextCancellation | Optioneel. Een Booleaanse waarde die aangeeft of de beveiligingscontext moet worden geannuleerd en beëindigd wanneer deze niet meer nodig is. De standaardwaarde is true . |
requireSignatureConfirmation | Optioneel. Een Booleaanse waarde die aangeeft of de bevestiging van de handtekening van WS-Security is ingeschakeld. Wanneer dit is ingesteld true , worden berichthandtekeningen bevestigd door de beantwoorder. Wanneer de aangepaste binding is geconfigureerd voor wederzijdse certificaten of is geconfigureerd voor het gebruik van uitgegeven tokens (WSS 1.1-bindingen) wordt dit kenmerk standaard ingesteld true op . Anders is de standaardwaarde false .Handtekeningbevestiging wordt gebruikt om te bevestigen dat de service reageert in volledige kennis van een aanvraag. |
securityHeaderLayout | Optioneel. Hiermee geeft u de volgorde van de elementen in de beveiligingskoptekst. Geldige waarden zijn - Strict : Items worden toegevoegd aan de beveiligingsheader volgens het algemene principe 'declareren voor gebruik'.- Lax : Items worden toegevoegd aan de beveiligingskoptekst in elke volgorde die bevestigt aan WSS: SOAP Message Security.- LaxWithTimestampFirst : Items worden toegevoegd aan de beveiligingsheader in elke volgorde die bevestigt aan WSS: SOAP-berichtbeveiliging, behalve dat het eerste element in de beveiligingsheader een wsse:Timestamp-element moet zijn.- LaxWithTimestampLast : Items worden toegevoegd aan de beveiligingsheader in elke volgorde die aan WSS bevestigt: SOAP Message-beveiliging, behalve dat het laatste element in de beveiligingsheader een wsse:Timestamp-element moet zijn.De standaardwaarde is Strict .Dit element is van het type SecurityHeaderLayout. |
authenticationMode-kenmerk
Weergegeven als | Beschrijving |
---|---|
String | AnonymousForCertificate AnonymousForSslNegotiated CertificateOverTransport IssuedToken IssuedTokenForCertificate IssuedTokenForSslNegotiated IssuedTokenOverTransport Kerberos KerberosOverTransport MutualCertificate MutualCertificateDuplex MutualSslNegotiated SecureConversation SspiNegotiated UserNameForCertificate UserNameForSslNegotiated UserNameOverTransport SspiNegotiatedOverTransport |
defaultAlgorithm Attribute
Weergegeven als | Beschrijving |
---|---|
Basic128 | Gebruik Aes128-versleuteling, Sha1 voor berichtsamenvatking en Rsa-oaep-mgf1p voor sleutelterugloop. |
Basic192 | Gebruik Aes192-versleuteling, Sha1 voor berichtsamenvatking, Rsa-oaep-mgf1p voor sleutelterugloop. |
Basic256 | Gebruik Aes256-versleuteling, Sha1 voor berichtsamenvatking, Rsa-oaep-mgf1p voor sleutelterugloop. |
Basic256Rsa15 | Gebruik Aes256 voor berichtversleuteling, Sha1 voor berichtsamenvatking en Rsa15 voor sleutelterugloop. |
Basic192Rsa15 | Gebruik Aes192 voor berichtversleuteling, Sha1 voor berichtsamenvatking en Rsa15 voor sleutelterugloop. |
TripleDes | Gebruik TripleDes-versleuteling, Sha1 voor berichtsamenvatking, Rsa-oaep-mgf1p voor sleutelterugloop. |
Basic128Rsa15 | Gebruik Aes128 voor berichtversleuteling, Sha1 voor berichtsamenvatking en Rsa15 voor sleutelterugloop. |
TripleDesRsa15 | Gebruik TripleDes-versleuteling, Sha1 voor berichtsamenvatking en Rsa15 voor sleutelterugloop. |
Basic128Sha256 | Gebruik Aes128 voor berichtversleuteling, Sha256 voor berichtsamenvatking en Rsa-oaep-mgf1p voor sleutelterugloop. |
Basic192Sha256 | Gebruik Aes192 voor berichtversleuteling, Sha256 voor berichtsamenvatking en Rsa-oaep-mgf1p voor sleutelterugloop. |
Basic256Sha256 | Gebruik Aes256 voor berichtversleuteling, Sha256 voor berichtsamenvatking en Rsa-oaep-mgf1p voor sleutelterugloop. |
TripleDesSha256 | Gebruik TripleDes voor berichtversleuteling, Sha256 voor berichtsamenvatking en Rsa-oaep-mgf1p voor sleutelterugloop. |
Basic128Sha256Rsa15 | Gebruik Aes128 voor berichtversleuteling, Sha256 voor berichtsamenvatking en Rsa15 voor sleutelterugloop. |
Basic192Sha256Rsa15 | Gebruik Aes192 voor berichtversleuteling, Sha256 voor berichtsamenvatking en Rsa15 voor sleutelterugloop. |
Basic256Sha256Rsa15 | Gebruik Aes256 voor berichtversleuteling, Sha256 voor berichtsamenvatking en Rsa15 voor sleutelterugloop. |
TripleDesSha256Rsa15 | Gebruik TripleDes voor berichtversleuteling, Sha256 voor berichtsamenvatking en Rsa15 voor sleutelterugloop. |
Onderliggende elementen
Element | Beschrijving |
---|---|
<issuedTokenParameters> | Hiermee geeft u een huidig uitgegeven token. Dit element is van het type IssuedTokenParametersElement. |
<localClient Instellingen> | Hiermee geeft u de beveiligingsinstellingen van een lokale client voor deze binding. Dit element is van het type LocalClientSecuritySettingsElement. |
<localService Instellingen> | Hiermee geeft u de beveiligingsinstellingen van een lokale service voor deze binding. Dit element is van het type LocalServiceSecuritySettingsElement. |
<secureConversationBootstrap> | Hiermee geeft u de standaardwaarden op die worden gebruikt voor het initiëren van een beveiligde gespreksservice. |
Bovenliggende elementen
Element | Beschrijving |
---|---|
<Bindend> | Definieert alle bindingsmogelijkheden van de aangepaste binding. |
Opmerkingen
Zie SecurityBindingElement-verificatiemodi en procedures voor meer informatie over het gebruik van dit element: Een aangepaste binding maken met behulp van securityBindingElement.
Opmerking
In het volgende voorbeeld ziet u hoe u beveiliging configureert met behulp van een aangepaste binding. Het laat zien hoe u een aangepaste binding gebruikt om beveiliging op berichtniveau mogelijk te maken in combinatie met een veilig transport. Dit is handig wanneer een veilig transport nodig is om de berichten tussen client en service te verzenden en tegelijkertijd moeten de berichten veilig zijn op het berichtniveau. Deze configuratie wordt niet ondersteund door door het systeem geleverde bindingen.
De serviceconfiguratie definieert een aangepaste binding die tcp-communicatie ondersteunt die is beveiligd met tls/SSL-protocol en Windows-berichtbeveiliging. De aangepaste binding maakt gebruik van een servicecertificaat om de service op transportniveau te verifiëren en om de berichten tijdens de overdracht tussen client en service te beveiligen. Dit wordt bereikt door het sslStreamSecurity-bindingselement>.< Het certificaat van de service wordt geconfigureerd met behulp van een servicegedrag.
Daarnaast maakt de aangepaste binding gebruik van berichtbeveiliging met het Windows-referentietype. Dit is het standaardreferentietype. Dit wordt bereikt door het beveiligingsbindingselement . Zowel client als service worden geverifieerd met behulp van beveiliging op berichtniveau als Kerberos-verificatiemechanisme beschikbaar is. Als het Kerberos-verificatiemechanisme niet beschikbaar is, wordt NTLM-verificatie gebruikt. NTLM verifieert de client bij de service, maar verifieert geen service voor de client. Het beveiligingsbindingselement is geconfigureerd voor het gebruik SecureConversation
van authenticationType, wat resulteert in het maken van een beveiligingssessie op zowel de client als de service. Dit is vereist om het dubbelzijdige contract van de service te laten werken. Zie Aangepaste bindingsbeveiliging voor meer informatie over het uitvoeren van dit voorbeeld.
<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>