Mode Autentikasi SecurityBindingElement
Windows Communication Foundation (WCF) menyediakan beberapa mode yang mana klien dan layanan mode satu sama lain. Anda dapat membuat elemen pengikat keamanan untuk mode autentikasi ini dengan menggunakan metode statik pada SecurityBindingElement kelas atau melalui konfigurasi. Topik ini menjelaskan secara singkat 18 mode autentikasi.
Untuk contoh penggunaan elemen untuk salah satu mode autentikasi, lihat Cara: Membuat SecurityBindingElement untuk Mode Autentikasi yang Ditentukan.
Pemrograman Konfigurasi Dasar
Prosedur berikut menjelaskan cara mengatur mode autentikasi dalam file konfigurasi.
Untuk mengatur mode autentikasi dalam konfigurasi
Untuk elemen <pengikatan>, tambahkan <customBinding>.
Sebagai elemen turunan, tambahkan elemen <binding> ke elemen
<customBinding>
.Menambahkan elemen
<security>
ke elemen<binding>
.Atur
authenticationMode
atribut ke salah satu nilai yang dijelaskan di bawah. Misalnya, kode berikut mengatur mode keAnonymousForCertificate
.<bindings> <customBinding> <binding name="SecureCustomBinding"> <security authenticationMode ="AnonymousForCertificate" /> </binding> </customBinding> </bindings>
Untuk mengatur mode secara terprogram
Tentukan jenis pengembalian, yang dapat berupa salah satu dari berikut ini: SymmetricSecurityBindingElement, TransportSecurityBindingElement, AsymmetricSecurityBindingElement, atau SecurityBindingElement.
Panggil metode statik yang sesuai dari kelas SecurityBindingElement. Misalnya, kode berikut memanggil metode CreateAnonymousForCertificateBindingElement.
SymmetricSecurityBindingElement b = SecurityBindingElement. CreateAnonymousForCertificateBindingElement();
Dim b As SymmetricSecurityBindingElement = _ SecurityBindingElement.CreateAnonymousForCertificateBindingElement()
Gunakan elemen pengikatan untuk membuat pengikatan kustom. Untuk informasi lebih lanjut, lihat Pengikatan Kustom.
Deskripsi Mode
AnonymousForCertificate
Dengan mode autentikasi ini, klien anonim dan layanan diautentikasi menggunakan sertifikat X.509. Elemen pengikat keamanan adalah SymmetricSecurityBindingElement yang dikembalikan oleh metode CreateAnonymousForCertificateBindingElement. Atau, atur atribut authenticationMode
dari elemen <security
> ke AnonymousForCertificate
.
AnonymousForSslNegotiated
Dengan mode autentikasi ini, klien adalah anonim dan layanan diautentikasi menggunakan sertifikat X.509 yang dinegosiasikan saat run time. Elemen pengikat keamanan adalah SymmetricSecurityBindingElement yang dikembalikan oleh metode CreateSslNegotiationBindingElement saat nilai false
diteruskan untuk parameter pertama. Atau, atur atribut authenticationMode
ke AnonymousForSslNegotiated
.
CertificateOverTransport
Dengan mode autentikasi ini, klien mengautentikasi menggunakan sertifikat X.509 yang muncul di lapisan SOAP sebagai token pendukung yang mendukung; yaitu, token yang menandatangani tanda tangan pesan. Layanan diautentikasi menggunakan sertifikat X.509 pada lapisan transportasi. Elemen pengikat keamanan adalah TransportSecurityBindingElement yang dikembalikan oleh metode CreateCertificateOverTransportBindingElement. Atau, atur atribut authenticationMode
ke CertificateOverTransport
.
IssuedToken
Dengan mode autentikasi ini, klien tidak mengautentikasi ke layanan, seperti; sebagai gantinya, klien mengautentikasi ke layanan token keamanan dan menerima token SAML, yang kemudian disajikan ke server untuk membuktikan pengetahuannya tentang kunci bersama. Layanan tidak diautentikasi ke klien, tetapi layanan token keamanan mengenkripsi kunci bersama sebagai bagian dari token yang dikeluarkan sehingga hanya layanan yang dapat mendekripsi kunci. Elemen pengikat keamanan adalah SymmetricSecurityBindingElement yang dikembalikan oleh metode CreateIssuedTokenBindingElement. Atau, atur atribut authenticationMode
ke IssuedToken
.
IssuedTokenForCertificate
Dengan mode autentikasi ini, klien tidak mengautentikasi ke layanan, seperti; sebagai gantinya, klien mengautentikasi ke layanan token keamanan dan menerima token SAML, yang kemudian disajikan ke server untuk membuktikan pengetahuannya tentang kunci bersama. Token yang dikeluarkan muncul di lapisan SOAP sebagai token pendukung yang mendukung atau token pembawa; yaitu, token yang menandatangani tanda tangan pesan. Layanan mengautentikasi ke klien menggunakan sertifikat X.509. Elemen pengikat keamanan adalah SymmetricSecurityBindingElement yang dikembalikan oleh metode CreateIssuedTokenForCertificateBindingElement. Atau, atur atribut authenticationMode
ke IssuedTokenForCertificate
.
IssuedTokenForSslNegotiated
Dengan mode autentikasi ini, klien tidak mengautentikasi ke layanan, seperti; sebagai gantinya, klien mengautentikasi ke layanan token keamanan dan menerima token SAML, yang kemudian disajikan ke server untuk membuktikan pengetahuannya tentang kunci bersama. Token yang dikeluarkan muncul di lapisan SOAP sebagai token pendukung yang mendukung atau token pembawa; yaitu, token yang menandatangani tanda tangan pesan. Layanan diautentikasi menggunakan sertifikat X.509. Elemen pengikat keamanan adalah SymmetricSecurityBindingElement yang dikembalikan oleh metode CreateIssuedTokenForSslBindingElement. Atau, atur atribut authenticationMode
ke IssuedTokenForSslNegotiated
.
IssuedTokenOverTransport
Dengan mode autentikasi ini, klien tidak mengautentikasi ke layanan, seperti; sebagai gantinya, klien mengautentikasi ke layanan token keamanan dan menerima token SAML, yang kemudian disajikan ke server untuk membuktikan pengetahuannya tentang kunci bersama. Token yang dikeluarkan muncul di lapisan SOAP sebagai token pendukung yang mendukung atau token pembawa; yaitu, token yang menandatangani tanda tangan pesan. Layanan diautentikasi menggunakan sertifikat X.509 pada lapisan transportasi. Elemen pengikat keamanan adalah TransportSecurityBindingElement
yang dikembalikan oleh metode CreateIssuedTokenOverTransportBindingElement. Atau, atur atribut authenticationMode
ke IssuedTokenOverTransport
.
Kerberos
Dengan mode autentikasi ini, klien mengautentikasi ke layanan menggunakan tiket Kerberos. Tiket yang sama tersebut juga menyediakan autentikasi server. Elemen pengikat keamanan adalah SymmetricSecurityBindingElement
yang dikembalikan oleh metode CreateKerberosBindingElement. Atau, atur atribut authenticationMode
ke Kerberos
.
Catatan
Untuk menggunakan mode autentikasi ini, akun layanan harus dikaitkan dengan nama prinsip layanan (SPN). Untuk melakukan ini, jalankan layanan di bawah akun LAYANAN JARINGAN atau akun SISTEM LOKAL. Atau, gunakan alat SetSpn.exe untuk membuat SPN untuk akun layanan. Dalam kedua kasus tersebut, klien harus menggunakan SPN yang benar di <elemen servicePrincipalName>, atau dengan menggunakan konstruktor EndpointAddress. Untuk informasi selengkapnya, lihat Identitas dan Autentikasi Layanan.
Catatan
Bila mode autentikasi Kerberos
digunakan, tingkat peniruan identitas Anonymous dan Delegation tidak didukung.
KerberosOverTransport
Dengan mode autentikasi ini, klien mengautentikasi ke layanan menggunakan tiket Kerberos. Token Kerberos muncul di lapisan SOAP sebagai token pendukung yang mendukung; yaitu, token yang menandatangani tanda tangan pesan. Layanan diautentikasi menggunakan sertifikat X.509 pada lapisan transportasi. Elemen pengikat keamanan adalah TransportSecurityBindingElement
yang dikembalikan oleh metode CreateKerberosOverTransportBindingElement. Atau, atur atribut authenticationMode
ke KerberosOverTransport
.
Catatan
Untuk menggunakan mode autentikasi ini, akun layanan harus dikaitkan dengan SPN. Untuk melakukan ini, jalankan layanan di bawah akun LAYANAN JARINGAN atau akun SISTEM LOKAL. Atau, gunakan alat SetSpn.exe untuk membuat SPN untuk akun layanan. Dalam kedua kasus tersebut, klien harus menggunakan SPN yang benar di <elemen servicePrincipalName>, atau dengan menggunakan konstruktor EndpointAddress. Untuk informasi selengkapnya, lihat Identitas dan Autentikasi Layanan.
MutualCertificate
Dengan mode autentikasi ini, klien mengautentikasi menggunakan sertifikat X.509 yang muncul di lapisan SOAP sebagai token pendukung yang mendukung; yaitu, token yang menandatangani tanda tangan pesan. Layanan ini juga diautentikasi menggunakan sertifikat X.509. Elemen pengikat keamanan adalah SymmetricSecurityBindingElement
yang dikembalikan oleh metode CreateMutualCertificateBindingElement. Atau, atur atribut authenticationMode
ke MutualCertificate
.
MutualCertificateDuplex
Dengan mode autentikasi ini, klien mengautentikasi menggunakan sertifikat X.509 yang muncul di lapisan SOAP sebagai token pendukung yang mendukung; yaitu, token yang menandatangani tanda tangan pesan. Layanan ini juga diautentikasi menggunakan sertifikat X.509. Pengikatan adalah AsymmetricSecurityBindingElement
yang dikembalikan oleh metode CreateMutualCertificateDuplexBindingElement. Atau, atur atribut authenticationMode
ke MutualCertificateDuplex
.
MutualSslNegotiated
Dengan mode autentikasi ini, klien dan layanan mengautentikasi menggunakan sertifikat X.509. Elemen pengikat keamanan adalah SymmetricSecurityBindingElement
yang dikembalikan oleh metode CreateSslNegotiationBindingElement saat nilai true
diteruskan untuk parameter pertama. Atau, atur atribut authenticationMode
ke MutualSslNegotiated
.
SecureConversation
Elemen pengikat keamanan adalah SymmetricSecurityBindingElement
yang dikembalikan oleh metode CreateSecureConversationBindingElement. Metode ini mengambil SecurityBindingElement sebagai parameter, yang digunakan selama inisialisasi untuk menetapkan sesi aman. Atau, atur atribut authenticationMode
ke SecureConversation
.
Jika tidak ada pengikatan bootstrap yang ditentukan, maka mode autentikasi SspiNegotiated
digunakan untuk bootstrap.
SspiNegotiation
Dengan mode autentikasi ini, protokol negosiasi digunakan untuk melakukan autentikasi klien dan server. Kerberos digunakan jika memungkinkan; jika tidak, NT LanMan (NTLM) digunakan. Elemen pengikat keamanan adalah SymmetricSecurityBindingElement
yang dikembalikan oleh metode CreateSspiNegotiationBindingElement. Atau, atur atribut authenticationMode
ke SspiNegotiated
.
SspiNegotiatedOverTransport
Dengan mode autentikasi ini, protokol negosiasi digunakan untuk melakukan autentikasi klien dan server. Protokol Kerberos digunakan jika memungkinkan; jika tidak, NTLM digunakan. Token yang dihasilkan muncul di lapisan SOAP sebagai token pendukung yang mendukung; yaitu, token yang menandatangani tanda tangan pesan. Layanan ini juga diautentikasi pada lapisan transportasi oleh sertifikat X.509. Elemen pengikat keamanan adalah TransportSecurityBindingElement
yang dikembalikan oleh metode CreateSspiNegotiationOverTransportBindingElement. Atau, atur atribut authenticationMode
ke SspiNegotiatedOverTransport
.
UserNameForCertificate
Dengan mode autentikasi ini, klien mengautentikasi ke layanan menggunakan Token Nama Pengguna yang muncul di lapisan SOAP sebagai token pendukung yang ditandatangani; yaitu, token yang ditandatangani oleh tanda tangan pesan. Layanan mengautentikasi ke klien menggunakan sertifikat X.509. Elemen pengikat keamanan adalah SymmetricSecurityBindingElement
yang dikembalikan oleh metode CreateUserNameForCertificateBindingElement. Atau, atur atribut authenticationMode
ke UserNameForCertificate
.
Untuk mode autentikasi UserNameForCertificate
, klien dan layanan harus menggunakan WS-Security 1.1.
UserNameForSslNegotiated
Dengan mode autentikasi ini, klien diautentikasi menggunakan Token Nama Pengguna yang muncul di lapisan SOAP sebagai token pendukung yang ditandatangani; yaitu, token yang ditandatangani oleh tanda tangan pesan. Layanan diautentikasi menggunakan sertifikat X.509. Elemen pengikat keamanan adalah SymmetricSecurityBindingElement
yang dikembalikan oleh metode CreateUserNameForSslBindingElement. Atau, atur atribut authenticationMode
ke UserNameForSslNegotiated
.
UserNameOverTransport
Dengan mode autentikasi ini, klien mengautentikasi menggunakan Token Nama Pengguna yang muncul di lapisan SOAP sebagai token pendukung yang ditandatangani; yaitu, token yang ditandatangani oleh tanda tangan pesan. Layanan diautentikasi menggunakan sertifikat X.509 pada lapisan transportasi. Elemen pengikat keamanan adalah TransportSecurityBindingElement
yang dikembalikan oleh metode CreateUserNameOverTransportBindingElement. Atau, atur atribut authenticationMode
ke UserNameOverTransport
.