Bagikan melalui


<pesan> dari <basicHttpBinding>

Menentukan pengaturan untuk keamanan tingkat pesan <basicHttpBinding>.

<konfigurasi>
  <system.serviceModel>
    <pengikatan>
      <basicHttpBinding>
        <pengikatan>
          <keamanan>
            <message>

Sintaks

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

Atribut dan Elemen

Bagian berikut menjelaskan atribut, elemen anak, dan elemen induk

Atribut

Atribut Deskripsi
algorithmSuite Mengatur enkripsi pesan dan algoritma key-wrap. Atribut ini berjenis SecurityAlgorithmSuite, yang menentukan algoritme dan ukuran kunci. Algoritma ini dipetakan ke yang ditentukan dalam spesifikasi Bahasa Kebijakan Keamanan (WS-SecurityPolicy).

Nilai defaultnya adalah Basic256.
clientCredentialType Menentukan jenis kredensial yang akan digunakan saat melakukan autentikasi klien menggunakan keamanan berbasis Pesan. Defaultnya adalah UserName.

clientCredentialType Attribute

Nilai Deskripsi
UserName - Mengharuskan klien diautentikasi ke server menggunakan kredensial UserName. Kredensial ini perlu ditentukan menggunakan <clientCredentials>.
- WCF tidak mendukung pengiriman digest kata sandi atau mengambil kunci menggunakan kata sandi dan menggunakan kunci tersebut untuk keamanan pesan. Oleh karena itu, WCF memaksa agar transportasi diamankan saat menggunakan kredensial UserName. Untuk basicHttpBinding, cara ini memerlukan penyiapan saluran SSL.
Sertifikat Mengharuskan klien diautentikasi ke server menggunakan sertifikat. Kredensial klien dalam hal ini perlu ditentukan menggunakan <clientCredentials> dan <clientCertificate>. Selain itu, saat menggunakan mode keamanan pesan, klien harus dilengkapi dengan sertifikat layanan. Kredensial layanan dalam hal ini perlu ditentukan menggunakan kelas ClientCredentials atau elemen perilaku ClientCredentials dan menentukan sertifikat layanan menggunakan <serviceCertificate>.

Elemen Anak

Tidak ada

Elemen Induk

Elemen Deskripsi
<keamanan> Menentukan kapabilitas keamanan untuk <basicHttpBinding>.

Contoh

Contoh ini menunjukkan cara mengimplementasikan aplikasi yang menggunakan basicHttpBinding dan keamanan pesan. Dalam contoh konfigurasi berikut untuk layanan, definisi titik akhir menetapkan basicHttpBinding dan merujuk konfigurasi pengikatan bernama Binding1. Sertifikat yang digunakan layanan untuk mengautentikasi dirinya sendiri ke klien diatur di bagian behaviors dari file konfigurasi pada elemen serviceCredentials. Mode validasi yang berlaku untuk sertifikat yang digunakan klien untuk mengautentikasi dirinya sendiri ke layanan juga diatur di bagian behaviors pada elemen clientCertificate.

Detail pengikatan dan keamanan yang sama ditentukan dalam file konfigurasi klien.

<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>

Lihat juga