次の方法で共有


フェデレーション サンプル

フェデレーション サンプルでは、フェデレーション セキュリティを示します。

サンプルの詳細

Windows Communication Foundation (WCF) は、 wsFederationHttpBindingを介してフェデレーション セキュリティ アーキテクチャを展開するためのサポートを提供します。 wsFederationHttpBindingは、要求/応答通信の基になるトランスポート メカニズムとして HTTP を使用し、テキスト/XML をエンコード用のワイヤ形式として使用する、安全で信頼性の高い相互運用可能なバインディングを提供します。 WCF でのフェデレーションの詳細については、「 フェデレーション」を参照してください。

このシナリオは、次の 4 つの部分で構成されます。

  • BookStore サービス

  • BookStore STS

  • HomeRealm STS

  • BookStore クライアント

BookStore サービスは、 BrowseBooksBuyBookの 2 つの操作をサポートしています。 BrowseBooks操作への匿名アクセスが許可されますが、BuyBooks操作にアクセスするには認証済みアクセスが必要です。 認証は、BookStore STS によって発行されたトークンの形式になります。 BookStore サービスの構成ファイルは、 wsFederationHttpBindingを使用してクライアントを BookStore STS にポイントします。

<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 では、HomeRealm STS によって発行されたトークンを使用してクライアントが認証される必要があります。 ここでも、BookStore STS の構成ファイルは、 wsFederationHttpBindingを使用してクライアントを HomeRealm STS にポイントします。

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

BuyBook操作にアクセスするときのイベントのシーケンスは次のとおりです。

  1. クライアントは、Windows 資格情報を使用して HomeRealm STS に対して認証を行います。

  2. HomeRealm STS は、BookStore STS に対する認証に使用できるトークンを発行します。

  3. クライアントは、HomeRealm STS によって発行されたトークンを使用して BookStore STS に対して認証を行います。

  4. BookStore STS は、BookStore サービスに対する認証に使用できるトークンを発行します。

  5. クライアントは、BookStore STS によって発行されたトークンを使用して BookStore サービスに対して認証を行います。

  6. クライアントは、 BuyBook 操作にアクセスします。

このサンプルを設定して実行する方法については、次の手順を参照してください。

このサンプルを実行するには、 wwwroot ディレクトリへの書き込みアクセス許可が必要です。

サンプルを設定、ビルド、実行するには

  1. SDK コマンド ウィンドウを開きます。 サンプル パスで、Setup.batを実行します。 これにより、サンプルに必要な仮想ディレクトリが作成され、必要な証明書が適切なアクセス許可でインストールされます。

    Setup.bat バッチ ファイルは、Windows SDK コマンド プロンプトから実行するように設計されています。 これは、MSSDK 環境変数が SDK がインストールされているディレクトリを指している必要があります。 この環境変数は、Windows SDK コマンド プロンプト内で自動的に設定されます。 Windows Vista では、セットアップで IIS 管理者スクリプトが使用されるため、IIS 6.0 管理互換性がインストールされていることを確認する必要があります。 Windows Vista でセットアップ スクリプトを実行するには、管理者特権が必要です。

  2. Visual Studio でFederationSample.slnを開き、[ビルド] メニューから [ソリューションビルド ] を選択します。 これにより、共通のプロジェクト ファイル、Bookstore サービス、Bookstore STS、HomeRealm STS がビルドされ、IIS に展開されます。 これにより、Bookstore クライアント アプリケーションもビルドされ、実行可能 BookStoreClient.exe が FederationSample\BookStoreClient\bin\Debug フォルダーに配置されます。

  3. BookStoreClient.exeをダブルクリックします。 BookStoreClient ウィンドウが表示されます。

  4. ブックストアで利用可能な書籍を参照するには、[ ブックの参照] をクリックします。

  5. 特定の書籍を購入するには、一覧から書籍を選択し、[ 書籍の購入] をクリックします。 アプリケーションが起動し、HomeRealm セキュリティ トークン サービスで Windows 認証を使用して認証されます。

    このサンプルは、ユーザーが 15 ドル以下の書籍を購入できるように構成されています。 15 ドルを超える書籍を購入しようとすると、クライアントは Book Store サービスからアクセス拒否メッセージを受け取ります。

    このサンプルでは、購入後にユーザーの与信限度額は更新されません。 ユーザーの (固定) 与信限度額内で書籍を繰り返し購入できます。

クリーンアップするには

Cleanup.batを実行します。 これにより、セットアップ中に作成された仮想ディレクトリが削除され、セットアップ時にインストールされた証明書も削除されます。