Bagikan melalui


Cara: Mengatur Mode Keamanan

Keamanan Windows Communication Foundation (WCF) memiliki tiga mode keamanan umum yang ditemukan pada sebagian besar pengikatan yang telah ditentukan sebelumnya: transportasi, pesan, dan "transportasi dengan mandat pesan." Dua mode tambahan khusus untuk dua pengikatan: mode "hanya mandat transportasi" yang ditemukan pada BasicHttpBinding, dan mode "Keduanya", ditemukan di NetMsmqBinding. Namun, topik ini berkonsentrasi pada tiga mode keamanan umum: Transport, Message, dan TransportWithMessageCredential.

Perhatikan bahwa tidak setiap pengikatan yang telah ditentukan sebelumnya mendukung semua mode ini. Topik ini mengatur mode dengan kelas WSHttpBinding dan NetTcpBinding serta menunjukkan cara mengatur mode baik secara terprogram maupun melalui konfigurasi.

Untuk informasi selengkapnya, lihat Keamanan WCF, lihat Ringkasan Keamanan, Mengamankan Layanan, dan Mengamankan Layanan dan Klien. Untuk informasi selengkapnya tentang mode transportasi dan pesan, lihat Keamanan Transportasi dan Keamanan Pesan.

Untuk mengatur mode keamanan dalam kode

  1. Buat instans kelas pengikatan yang Anda gunakan. Untuk daftar pengikatan yang telah ditentukan sebelumnya, lihat Pengikatan yang Disediakan Sistem. Contoh berikut membuat instans dari kelas WSHttpBinding.

  2. Atur properti Mode dari objek yang dikembalikan oleh properti Security.

    WSHttpBinding b = new WSHttpBinding();
    b.Security.Mode = SecurityMode.Transport;
    
    Dim b As New WSHttpBinding()
    b.Security.Mode = SecurityMode.Transport
    

    Atau, atur mode ke pesan, seperti yang ditunjukkan dalam kode berikut.

    WSHttpBinding b = new WSHttpBinding();
    b.Security.Mode = SecurityMode.Message;
    
    Dim b As New WSHttpBinding()
    b.Security.Mode = SecurityMode.Message
    

    Atau atur mode untuk diangkut dengan mandat pesan, seperti yang ditunjukkan dalam kode berikut.

    WSHttpBinding b = new WSHttpBinding();
    b.Security.Mode = SecurityMode.TransportWithMessageCredential;
    
    Dim b As New WSHttpBinding()
    b.Security.Mode = SecurityMode.TransportWithMessageCredential
    
  3. Anda juga dapat mengatur mode di konstruktor pengikatan, seperti yang ditunjukkan dalam kode berikut.

    WSHttpBinding b = new WSHttpBinding(SecurityMode.Message);
    
    Dim b As New WSHttpBinding(SecurityMode.Message)
    

Mengatur Properti ClientCredentialType

Mengatur mode ke salah satu dari tiga nilai menentukan cara Anda mengatur properti ClientCredentialType. Misalnya, menggunakan kelas WSHttpBinding, mengatur mode ke Transport berarti Anda harus mengatur properti ClientCredentialType dari kelas HttpTransportSecurity ke nilai yang sesuai.

Untuk mengatur properti ClientCredentialType untuk mode Transportasi

  1. Buat instans pengikatan.

  2. Atur properti Mode ke Transport.

  3. Atur properti ClientCredential ke nilai yang sesuai. Kode berikut mengatur properti ke Windows.

    WSHttpBinding b = new WSHttpBinding();
    b.Security.Mode = SecurityMode.Transport;
    b.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows;
    
    Dim b As New WSHttpBinding()
    b.Security.Mode = SecurityMode.Transport
    b.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows
    

Untuk mengatur properti ClientCredentialType untuk mode Pesan

  1. Buat instans pengikatan.

  2. Atur properti Mode ke Message.

  3. Atur properti ClientCredential ke nilai yang sesuai. Kode berikut mengatur properti ke Certificate.

    WSHttpBinding b = new WSHttpBinding();
    b.Security.Mode = SecurityMode.Message;
    b.Security.Message.ClientCredentialType = MessageCredentialType.Certificate;
    
    Dim b As New WSHttpBinding()
    b.Security.Mode = SecurityMode.Message
    b.Security.Message.ClientCredentialType = MessageCredentialType.Certificate
    

Untuk mengatur properti Mode dan ClientCredentialType dalam konfigurasi

  1. Tambahkan elemen pengikatan yang sesuai ke elemen <pengikatan> file konfigurasi. Contoh berikut menambahkan elemen <wsHttpBinding>.

  2. Tambahkan elemen <binding> dan atur atribut name ke nilai yang sesuai.

  3. Tambahkan elemen <security> dan atur atribut mode ke Message, Transport, atau TransportWithMessageCredential.

  4. Jika mode diatur ke Transport, tambahkan elemen <transport> dan atur atribut clientCredential ke nilai yang sesuai.

    Contoh berikut mengatur mode ke "Transport", lalu mengatur atribut clientCredentialType elemen <transport> ke "Windows".

    <wsHttpBinding>
    <binding name="TransportSecurity">
        <security mode="Transport" >
           <transport clientCredentialType = "Windows" />
        </security>
    </binding>
    </wsHttpBinding >
    

    Atau, atur security mode ke "Message", diikuti oleh <"message"> elemen. Contoh ini mengatur clientCredentialType ke “Certificate".

    <wsHttpBinding>
    <binding name="MessageSecurity">
        <security mode="Message" >
           <message clientCredentialType = "Certificate" />
        </security>
    </binding>
    </wsHttpBinding >
    

    Menggunakan nilai TransportWithMessageCredential adalah kasus khusus, dan dijelaskan di bawah ini.

Menggunakan TransportWithMessageCredential

Saat menyetel mode keamanan ke TransportWithMessageCredential, transportasi menentukan mekanisme sebenarnya yang menyediakan keamanan tingkat transportasi. Misalnya, protokol HTTP menggunakan Secure Sockets Layer (SSL) melalui HTTP (HTTPS). Oleh karena itu, pengaturan properti ClientCredentialType dari objek keamanan transportasi apa pun (seperti HttpTransportSecurity) diabaikan. Dengan kata lain, Anda hanya dapat mengatur objek ClientCredentialType keamanan pesan (untuk pengikatan WSHttpBinding, objek NonDualMessageSecurityOverHttp).

Untuk informasi selengkapnya, lihat Cara: Menggunakan Keamanan Transportasi dan Mandat Pesan.

Lihat juga