<customBinding güvenliği><>
Özel bağlama için güvenlik seçeneklerini belirtir.
<Yapılandırma>
<system.serviceModel>
<Bağlama>
<Custombinding>
<Bağlama>
<Güvenlik >
Sözdizimi
<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>
Öznitelikler ve Öğeler
Aşağıdaki bölümlerde öznitelikler, alt öğeler ve üst öğeler açıklanmaktadır
Özellikler
Öznitelik | Açıklama |
---|---|
allowSerializedSigningTokenOnReply | isteğe bağlı. Yanıtta serileştirilmiş bir belirtecin kullanılıp kullanılamayabileceğini belirten boole değeri. Varsayılan değer şudur: false . İkili bağlama kullanılırken ayarı varsayılan olarak true ayarlanır ve yapılan tüm ayarlar yoksayılır. |
Authenticationmode | isteğe bağlı. Başlatıcı ile yanıtlayıcı arasında kullanılan kimlik doğrulama modunu belirtir. Tüm değerler için aşağıya bakın. Varsayılan değer: sspiNegotiated . |
defaultAlgorithmSuite | isteğe bağlı. İleti şifreleme ve anahtar sarmalama algoritmalarını ayarlar. Algoritmalar ve anahtar boyutları sınıfı tarafından SecurityAlgorithmSuite belirlenir. Bu algoritmalar, Güvenlik İlkesi Dili (WS-SecurityPolicy) belirtiminde belirtilenlerle eşler. Olası değerler aşağıda gösterilmiştir. Varsayılan değer şudur: Basic256 .Bu öznitelik, varsayılandan farklı bir dizi algoritmayı seçen farklı bir platformla çalışırken kullanılır. Bu ayarda değişiklik yaparken ilgili algoritmaların güçlü ve zayıf yönlerini bilmeniz gerekir. Bu öznitelik türündedir SecurityAlgorithmSuite. |
includeTimestamp | Her iletiye zaman damgalarının eklenip eklenmeyeceğini belirten boole değeri. Varsayılan değer: true . |
keyEntropyMode | İletilerin güvenliğini sağlama anahtarlarının nasıl hesaplandığını belirtir. Anahtarlar yalnızca istemci anahtarı malzemesini temel alabilir, yalnızca hizmet anahtarı malzemesini veya her ikisinin bir bileşimini temel alabilir. Geçerli değerler şunlardır: - ClientEntropy : Oturum anahtarı, istemci tarafından sağlanan anahtar verilerini temel alır.- ServerEntropy : Oturum anahtarı, sunucu tarafından sağlanan anahtar verilerini temel alır.- CombinedEntropy : Oturum anahtarı, istemci ve hizmet tarafından sağlanan anahtar verilerini temel alır.Varsayılan değer: CombinedEntropy .Bu öznitelik türündedir SecurityKeyEntropyMode. |
Messageprotectionorder | İleti düzeyi güvenlik algoritmalarının iletiye uygulanacağı sırayı ayarlar. Geçerli değerler şunlardır: - SignBeforeEncrypt : Önce imzalayın, ardından şifreleyin.- SignBeforeEncryptAndEncryptSignature : önce imzalayın, şifreleyin, ardından imzayı şifreleyin.- EncryptBeforeSign : Önce şifreleyin, ardından imzalayın.Varsayılan değer, kullanılmakta olan WS-Security sürümüne bağlıdır. Varsayılan değer, WS-Security 1.1 kullanılırken kullanılır SignBeforeEncryptAndEncryptSignature . Varsayılan değer, WS-Security 1.0 kullanılırken kullanılır SignBeforeEncrypt .Bu öznitelik türündedir MessageProtectionOrder. |
Messagesecurityversion | isteğe bağlı. Kullanılan WS-Security sürümünü ayarlar. Geçerli değerler şunlardır: - WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11 - WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10 - WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10 Varsayılan değer WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11'dir ve XML'de basitçe Default ifade edilebilir. Bu öznitelik türündedir MessageSecurityVersion. |
requireDerivedKeys | Anahtarların özgün yazım denetleme anahtarlarından türetilip türetilebileceğini belirten boole değeri. Varsayılan değer: true . |
requireSecurityContextCancellation | isteğe bağlı. Güvenlik bağlamı artık gerekli olmadığında iptal edilmesi ve sonlandırılıp sonlandırılmaması gerektiğini belirten boole değeri. Varsayılan değer: true . |
requireSignatureConfirmation | isteğe bağlı. WS-Security imza onayının etkinleştirilip etkinleştirilmediğini belirten boole değeri. olarak true ayarlandığında, ileti imzaları yanıtlayıcı tarafından onaylanır. Özel bağlama karşılıklı sertifikalar için yapılandırıldığında veya verilen belirteçleri (WSS 1.1 bağlamaları) kullanacak şekilde yapılandırıldığında, bu öznitelik varsayılan olarak olarak true kullanılır. Aksi takdirde, varsayılan değer şeklindedir false .İmza onayı, hizmetin bir isteğin tam farkındalığıyla yanıt verdiğini onaylamak için kullanılır. |
securityHeaderLayout | isteğe bağlı. Güvenlik üst bilgisindeki öğelerin sırasını belirtir. Geçerli değerler şunlardır: - Strict : Öğeler genel "kullanımdan önce bildirme" ilkesine göre güvenlik üst bilgisine eklenir.- Lax : Öğeler güvenlik üst bilgisine WSS: SOAP İleti güvenliği onaylayan herhangi bir sırada eklenir.- LaxWithTimestampFirst : Güvenlik üst bilgisindeki ilk öğenin wsse:Timestamp öğesi olması gerektiği dışında, öğeler WSS: SOAP İletisi güvenliğini onaylayan herhangi bir sırayla güvenlik üst bilgisine eklenir.- LaxWithTimestampLast : Öğeler, güvenlik üst bilgisine WSS: SOAP İletisi güvenliğini onaylayan herhangi bir sırada eklenir, ancak güvenlik üst bilgisindeki son öğenin bir wsse:Timestamp öğesi olması gerekir.Varsayılan değer: Strict .Bu öğe türündedir SecurityHeaderLayout. |
authenticationMode Özniteliği
Değer | Açıklama |
---|---|
String | AnonymousForCertificate AnonymousForSslNegotiated CertificateOverTransport IssuedToken IssuedTokenForCertificate IssuedTokenForSslNegotiated IssuedTokenOverTransport Kerberos KerberosOverTransport MutualCertificate MutualCertificateDuplex MutualSslNegotiated SecureConversation SspiNegotiated UserNameForCertificate UserNameForSslNegotiated UserNameOverTransport SspiNegotiatedOverTransport |
defaultAlgorithm Özniteliği
Değer | Açıklama |
---|---|
Temel128 | Aes128 şifrelemesi, ileti özeti için Sha1 ve anahtar kaydırma için Rsa-oaep-mgf1p kullanın. |
Temel192 | Aes192 şifrelemesi, ileti özeti için Sha1, anahtar kaydırma için Rsa-oaep-mgf1p kullanın. |
Temel256 | Aes256 şifrelemesi, ileti özeti için Sha1, anahtar kaydırma için Rsa-oaep-mgf1p kullanın. |
Temel256Rsa15 | İleti şifrelemesi için Aes256, ileti özeti için Sha1 ve anahtar sarmalama için Rsa15 kullanın. |
Temel192Rsa15 | İleti şifrelemesi için Aes192, ileti özeti için Sha1 ve anahtar sarmalama için Rsa15 kullanın. |
Tripledes | TripleDes şifrelemesi, ileti özeti için Sha1, anahtar kaydırma için Rsa-oaep-mgf1p kullanın. |
Temel128Rsa15 | İleti şifrelemesi için Aes128, ileti özeti için Sha1 ve anahtar sarmalama için Rsa15 kullanın. |
TripleDesRsa15 | TripleDes şifrelemesini, ileti özeti için Sha1'i ve anahtar sarmalama için Rsa15'i kullanın. |
Temel128Sha256 | İleti şifrelemesi için Aes128, ileti özeti için Sha256 ve anahtar sarma için Rsa-oaep-mgf1p kullanın. |
Temel192Sha256 | İleti şifrelemesi için Aes192, ileti özeti için Sha256 ve anahtar sarma için Rsa-oaep-mgf1p kullanın. |
Temel256Sha256 | İleti şifrelemesi için Aes256, ileti özeti için Sha256 ve anahtar sarma için Rsa-oaep-mgf1p kullanın. |
TripleDesSha256 | İleti şifrelemesi için TripleDes, ileti özeti için Sha256 ve anahtar kaydırma için Rsa-oaep-mgf1p kullanın. |
Temel128Sha256Rsa15 | İleti şifrelemesi için Aes128, ileti özeti için Sha256 ve anahtar sarma için Rsa15 kullanın. |
Temel192Sha256Rsa15 | İleti şifrelemesi için Aes192, ileti özeti için Sha256 ve anahtar sarmalama için Rsa15 kullanın. |
Temel256Sha256Rsa15 | İleti şifrelemesi için Aes256, ileti özeti için Sha256 ve anahtar sarmalama için Rsa15 kullanın. |
TripleDesSha256Rsa15 | İleti şifrelemesi için TripleDes, ileti özeti için Sha256 ve anahtar sarmalama için Rsa15 kullanın. |
Alt Öğeler
Öğe | Açıklama |
---|---|
<issuedTokenParameters> | Geçerli bir verilen belirteci belirtir. Bu öğe türündedir IssuedTokenParametersElement. |
<localClient Ayarlar> | Bu bağlama için yerel istemcinin güvenlik ayarlarını belirtir. Bu öğe türündedir LocalClientSecuritySettingsElement. |
<localService Ayarlar> | Bu bağlama için yerel bir hizmetin güvenlik ayarlarını belirtir. Bu öğe türündedir LocalServiceSecuritySettingsElement. |
<secureConversationBootstrap> | Güvenli konuşma hizmetini başlatırken kullanılan varsayılan değerleri belirtir. |
Üst Öğeler
Öğe | Açıklama |
---|---|
<Bağlama> | Özel bağlamanın tüm bağlama özelliklerini tanımlar. |
Açıklamalar
Bu öğeyi kullanma hakkında daha fazla bilgi için bkz . SecurityBindingElement Kimlik Doğrulama Modları ve Nasıl yapılır: SecurityBindingElement Kullanarak Özel Bağlama Oluşturma.
Örnek
Aşağıdaki örnek, özel bağlama kullanarak güvenliği yapılandırmayı gösterir. İleti düzeyinde güvenliği güvenli bir aktarımla birlikte etkinleştirmek için özel bağlamanın nasıl kullanılacağını gösterir. bu, iletilerin istemci ve hizmet arasında iletilmesi için güvenli bir aktarım gerektiğinde ve iletilerin aynı anda ileti düzeyinde güvenli olması gerektiğinde kullanışlıdır. Bu yapılandırma, sistem tarafından sağlanan bağlamalar tarafından desteklenmez.
Hizmet yapılandırması, TLS/SSL protokolü ve Windows ileti güvenliği kullanılarak korunan TCP iletişimini destekleyen özel bir bağlama tanımlar. Özel bağlama, hizmetin kimliğini aktarım düzeyinde doğrulamak ve istemci ile hizmet arasında iletim sırasında iletileri korumak için bir hizmet sertifikası kullanır. Bu, sslStreamSecurity> bağlama öğesi tarafından <gerçekleştirilir. Hizmetin sertifikası bir hizmet davranışı kullanılarak yapılandırılır.
Ayrıca özel bağlama, Windows kimlik bilgisi türüyle ileti güvenliğini kullanır. Bu, varsayılan kimlik bilgisi türüdür. Bu, güvenlik bağlama öğesi tarafından gerçekleştirilir. Kerberos kimlik doğrulama mekanizması kullanılabiliyorsa hem istemci hem de hizmetin kimliği ileti düzeyi güvenlik kullanılarak doğrulanır. Kerberos kimlik doğrulama mekanizması kullanılamıyorsa NTLM kimlik doğrulaması kullanılır. NTLM, istemcinin kimliğini hizmette doğrular ancak istemcinin kimliğini doğrulamaz. Güvenlik bağlama öğesi authenticationType kullanacak SecureConversation
şekilde yapılandırılır ve bu da hem istemcide hem de hizmette bir güvenlik oturumu oluşturulmasına neden olur. Bu, hizmetin çift yönlü sözleşmesinin çalışmasını sağlamak için gereklidir. Bu örneği çalıştırma hakkında daha fazla bilgi için bkz . Özel Bağlama Güvenliği.
<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>