Aracılığıyla paylaş


<<temelHttpBinding iletisi>>

TemelHttpBinding'in> ileti düzeyi güvenliğine yönelik< ayarları tanımlar.

<Yapılandırma>
  <system.serviceModel>
    <Bağlama>
      <basicHttpBinding>
        <Bağlama>
          <Güvenlik>
            <İleti>

Syntax

<message algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
         clientCredentialType="UserName/Certificate" />

Öznitelikler ve Öğeler

Aşağıdaki bölümlerde öznitelikler, alt öğeler ve üst öğeler açıklanmaktadır

Öznitelikler

Öznitelik Açıklama
algorithmSuite İleti şifrelemesini ve anahtar sarmalama algoritmalarını ayarlar. Bu öznitelik, algoritmaları ve anahtar boyutlarını belirten türündedir SecurityAlgorithmSuite. Bu algoritmalar, Güvenlik İlkesi Dili (WS-SecurityPolicy) belirtiminde belirtilenlerle eşler.

Basic256 varsayılan değerdir.
clientCredentialType İleti tabanlı güvenlik kullanılarak istemci kimlik doğrulaması yapılırken kullanılacak kimlik bilgilerinin türünü belirtir. Varsayılan değer: UserName.

clientCredentialType Özniteliği

Değer Açıklama
UserName - İstemcinin sunucuda UserName kimlik bilgileriyle kimliğinin doğrulanması gerekir. Bu kimlik bilgilerinin clientCredentials> kullanılarak< belirtilmesi gerekir.
- WCF, parola özeti göndermeyi veya parola kullanarak anahtar türetme ve ileti güvenliği için bu tür anahtarları kullanmayı desteklemez. Bu nedenle WCF, UserName kimlik bilgileri kullanılırken aktarım güvenliğinin sağlanmasını zorlar. basicHttpBindingiçin bunun için bir SSL kanalı ayarlanması gerekir.
Sertifika İstemcinin bir sertifika kullanarak sunucuda kimliğinin doğrulanması gerekir. Bu durumda istemci kimlik bilgilerinin clientCredentials> ve clientCertificate kullanılarak< belirtilmesi gerekir.>< Ayrıca, ileti güvenlik modu kullanılırken istemcinin hizmet sertifikasıyla sağlanması gerekir. Bu durumda hizmet kimlik bilgilerinin sınıf veya ClientCredentials davranış öğesi kullanılarak ClientCredentials ve serviceCertificate> kullanılarak hizmet sertifikasını< belirterek belirtilmesi gerekir.

Alt Öğeler

Hiçbiri

Üst Öğeler

Öğe Açıklama
<Güvenlik> TemelHttpBinding> için< güvenlik özelliklerini tanımlar.

Örnek

Bu örnek, temelHttpBinding ve ileti güvenliğini kullanan bir uygulamanın nasıl uygulandığını gösterir. Bir hizmet için aşağıdaki yapılandırma örneğinde uç nokta tanımı temelHttpBinding'i belirtir ve adlı Binding1bağlama yapılandırmasına başvurur. Hizmetin istemcide kimliğini doğrulamak için kullandığı sertifika, öğesinin behaviors altındaki serviceCredentials yapılandırma dosyasının bölümünde ayarlanır. İstemcinin hizmette kimliğini doğrulamak için kullandığı sertifikaya uygulanan doğrulama modu da öğesinin behaviors altındaki clientCertificate bölümünde ayarlanır.

İstemci yapılandırma dosyasında aynı bağlama ve güvenlik ayrıntıları belirtilir.

<system.serviceModel>
  <services>
    <service name="Microsoft.ServiceModel.Samples.CalculatorService"
             behaviorConfiguration="CalculatorServiceBehavior">
      <host>
        <baseAddresses>
          <add baseAddress="http://localhost:8000/ServiceModelSamples/service" />
        </baseAddresses>
      </host>
      <!-- this endpoint is exposed at the base address provided by host: http://localhost:8000/ServiceModelSamples/service -->
      <endpoint address=""
                binding="basicHttpBinding"
                bindingConfiguration="Binding1"
                contract="Microsoft.ServiceModel.Samples.ICalculator" />
      <!-- the mex endpoint is exposed at http://localhost:8000/ServiceModelSamples/service/mex -->
      <endpoint address="mex"
                binding="mexHttpBinding"
                contract="IMetadataExchange" />
    </service>
  </services>
  <bindings>
    <basicHttpBinding>
    <!-- This configuration defines the SecurityMode as Message and
         the clientCredentialType as Certificate. -->
      <binding name="Binding1">
        <security mode = "Message">
          <message clientCredentialType="Certificate" />
        </security>
      </binding>
    </basicHttpBinding>
  </bindings>
  <!--For debugging purposes set the includeExceptionDetailInFaults attribute to true-->
  <behaviors>
    <serviceBehaviors>
      <behavior name="CalculatorServiceBehavior">
        <serviceMetadata httpGetEnabled="True" />
        <serviceDebug includeExceptionDetailInFaults="False" />
        <!-- The serviceCredentials behavior allows one to define a service certificate.
             A service certificate is used by a client to authenticate the service and provide message protection.
             This configuration references the "localhost" certificate installed during the setup instructions. -->
        <serviceCredentials>
          <serviceCertificate findValue="localhost"
                              storeLocation="LocalMachine"
                              storeName="My"
                              x509FindType="FindBySubjectName" />
          <clientCertificate>
            <!-- Setting the certificateValidationMode to PeerOrChainTrust means that if the certificate
               is in the user's Trusted People store, then it will be trusted without performing a
               validation of the certificate's issuer chain. This setting is used here for convenience so that the
               sample can be run without having to have certificates issued by a certification authority (CA).
               This setting is less secure than the default, ChainTrust. The security implications of this
               setting should be carefully considered before using PeerOrChainTrust in production code. -->
            <authentication certificateValidationMode="PeerOrChainTrust" />
          </clientCertificate>
        </serviceCredentials>
      </behavior>
    </serviceBehaviors>
  </behaviors>
</system.serviceModel>

Ayrıca bkz.