Bagikan melalui


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:

  1. Klien mengautentikasi ke HomeRealm STS menggunakan kredensial Windows.

  2. HomeRealm STS mengeluarkan token yang dapat digunakan untuk mengautentikasi ke BookStore STS.

  3. Klien mengautentikasi ke BookStore STS menggunakan token yang dikeluarkan oleh HomeRealm STS.

  4. BookStore STS mengeluarkan token yang dapat digunakan untuk mengautentikasi ke BookStore Service.

  5. Klien mengautentikasi ke layanan BookStore menggunakan token yang dikeluarkan oleh BookStore STS.

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

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

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

  3. Klik dua kali BookStoreClient.exe. Jendela BookStoreClient ditampilkan.

  4. Anda dapat menelusuri buku yang tersedia di bookstore dengan mengeklik Telusuri Buku.

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