Sampel Federasi
Sampel Federasi menunjukkan keamanan federasi.
Detail Sampel
Windows Communication Foundation (WCF) menyediakan dukungan untuk menyebarkan arsitektur keamanan federasi melalui wsFederationHttpBinding
. wsFederationHttpBinding
menyediakan pengikatan yang aman, andal, dan dapat dioperasikan yang melibatkan penggunaan HTTP sebagai mekanisme transportasi dasar untuk komunikasi permintaan/balasan, dan Teks/XML sebagai format kawat untuk encoding. Untuk informasi selengkapnya tentang Federasi di WCF, lihat Federasi.
Skenario ini terdiri dari 4 bagian:
Layanan BookStore
BookStore STS
HomeRealm STS
Klien BookStore
Layanan BookStore mendukung dua operasi, BrowseBooks
dan BuyBook
. Ini memungkinkan akses anonim ke operasi BrowseBooks
, tetapi memerlukan akses terautentikasi untuk mengakses operasi BuyBooks
. Autentikasi mengambil formulir token yang dikeluarkan oleh BookStore STS. File konfigurasi untuk BookStore Service menunjuk klien ke BookStore STS menggunakan wsFederationHttpBinding
.
<wsFederationHttpBinding>
<!-- This is the Service binding for the BuyBooks endpoint. It redirects clients to the BookStore STS -->
<binding name='BuyBookBinding'>
<security mode="Message">
<message>
<issuerMetadata
address='http://localhost/FederationSample/BookStoreSTS/STS.svc/mex' >
<identity>
<dns value ='BookStoreSTS.com'/>
</identity>
</issuerMetadata>
</message>
</security>
</binding>
</wsFederationHttpBinding>
BookStore STS kemudian mengharuskan klien mengautentikasi menggunakan token yang dikeluarkan oleh HomeRealm STS. Sekali lagi, file konfigurasi untuk BookStore Service menunjuk klien ke HomeRealm STS menggunakan wsFederationHttpBinding
.
<wsFederationHttpBinding>
<!-- This is the binding for the clients requesting tokens from this STS. It redirects clients to the HomeRealm STS -->
<binding name='BookStoreSTSBinding'>
<security mode='Message'>
<message>
<issuerMetadata
address='http://localhost/FederationSample/HomeRealmSTS/STS.svc/mex' >
<identity>
<dns value ='HomeRealmSTS.com' />
</identity>
</issuerMetadata>
</message>
</security>
</binding>
</wsFederationHttpBinding>
Urutan peristiwa saat mengakses operasi BuyBook
adalah sebagai berikut:
Klien mengautentikasi ke HomeRealm STS menggunakan kredensial Windows.
HomeRealm STS mengeluarkan token yang dapat digunakan untuk mengautentikasi ke BookStore STS.
Klien mengautentikasi ke BookStore STS menggunakan token yang dikeluarkan oleh HomeRealm STS.
BookStore STS mengeluarkan token yang dapat digunakan untuk mengautentikasi ke BookStore Service.
Klien mengautentikasi ke layanan BookStore menggunakan token yang dikeluarkan oleh BookStore STS.
Klien mengakses operasi
BuyBook
.
Lihat instruksi berikut tentang cara menyiapkan dan menjalankan sampel ini.
Catatan
Anda harus memiliki izin Tulis ke direktori wwwroot untuk menjalankan sampel ini.
Untuk menyiapkan, membangun, dan menjalankan sampel
Buka jendela perintah SDK. Di jalur sampel, jalankan Setup.bat. Hal ini menciptakan direktori virtual yang diperlukan untuk sampel dan menginstal sertifikat yang diperlukan dengan izin yang sesuai.
Catatan
File batch Setup.bat dirancang untuk dijalankan dari Perintah SDK Windows. Hal ini mengharuskan variabel lingkungan MSSDK menunjuk ke direktori tempat SDK diinstal. Variabel lingkungan ini secara otomatis diatur dalam Perintah SDK Windows. Di Windows Vista, Anda harus memastikan bahwa Kompatibilitas Manajemen IIS 6.0 diinstal karena pengaturan menggunakan skrip administrator IIS. Menjalankan skrip penyiapan di Windows Vista memerlukan hak istimewa administrator.
Buka FederationSample.sln di Visual Studio dan pilih Bangun Solusi dari menu Build. Opsi ini membangun file proyek umum, layanan Bookstore, Bookstore STS, HomeRealm STS, dan menyebarkannya di IIS. Opsi ini juga membangun aplikasi klien Bookstore dan menempatkan BookStoreClient.exe yang dapat dieksekusi di folder FederationSample\BookStoreClient\bin\Debug.
Klik dua kali BookStoreClient.exe. Jendela BookStoreClient ditampilkan.
Anda dapat menelusuri buku yang tersedia di bookstore dengan mengeklik Telusuri Buku.
Untuk membeli buku tertentu, pilih buku dalam daftar dan klik Beli Buku. Aplikasi dimulai dan mengautentikasi menggunakan NTLM dengan Layanan Token Keamanan HomeRealm.
Sampel dikonfigurasi untuk memungkinkan pengguna membeli buku yang harganya $15 atau kurang. Mencoba membeli buku yang harganya lebih dari $15 mengakibatkan klien mendapatkan pesan Akses Ditolak dari Layanan Toko Buku.
Catatan
Sampel tidak memperbarui batas kredit pengguna setelah pembelian. Anda dapat berulang kali membeli buku dalam batas kredit (tetap) pengguna.
Untuk membersihkan
Jalankan Cleanup.bat. Hal ini menghapus direktori virtual yang dibuat selama penyiapan dan juga menghapus sertifikat yang diinstal selama penyiapan.