Aracılığıyla paylaş


<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 Defaultifade 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 trueayarlandığı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 truekullanı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>

Ayrıca bkz.