VerbundbeispielFederation Sample

Dieses Beispiel veranschaulicht die Verbundsicherheit.This sample demonstrates federated security.

BeispieldetailsSample Details

Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) bietet Unterstützung für die Bereitstellung von Verbundsicherheitsarchitekturen durch wsFederationHttpBinding. provides support for deploying federated security architectures through the wsFederationHttpBinding. Die wsFederationHttpBinding bietet eine sichere, zuverlässige und interoperable Bindung, die die Verwendung von HTTP als den zugrunde liegenden Transportmechanismus für die Anforderungs-Antwort-Kommunikation umfasst, während Text und XML als Übertragungsformate für die Codierung verwendet werden.The wsFederationHttpBinding provides a secure, reliable, and interoperable binding that involves the use of HTTP as the underlying transport mechanism for request/reply communication, and Text/XML as the wire format for encoding. Weitere Informationen finden Sie unterFor more information aboutVerbund in WCFWCF, finden Sie unter Verbund. Federation in WCFWCF, see Federation.

Das Szenario besteht aus 4 Einheiten:The scenario is made up of 4 pieces:

  • BookStore-DienstBookStore service

  • BookStore STSBookStore STS

  • HomeRealm STSHomeRealm STS

  • BookStore-ClientBookStore Client

Der BookStore-Dienst unterstützt zwei Vorgänge: BrowseBooks und BuyBook.The BookStore service supports two operations, BrowseBooks and BuyBook. Es lässt anonymen Zugriff auf den BrowseBooks-Vorgang zu, aber erfordert authentifizierten Zugriff, um auf den BuyBooks-Vorgang zuzugreifen.It allows anonymous access to the BrowseBooks operation, but requires authenticated access to access the BuyBooks operation. Die Authentifizierung hat das Format eines Tokens, das von BookStore STS ausgegeben wird.The authentication takes the form of a token issued by the BookStore STS. Die Konfigurationsdatei zum BookStore-Dienst verweist Clients mit wsFederationHttpBinding auf BookStore STS.The configuration file for the BookStore Service points clients to the BookStore STS using the 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 erfordert dann, dass Clients mit einem von HomeRealm STS ausgegebenen Token authentifiziert werden.The BookStore STS then requires that clients authenticate using a token issued by the HomeRealm STS. Die Konfigurationsdatei für BookStore STS verweist dann Clients mit wsFederationHttpBinding auf HomeRealm STS.Again, the configuration file for the BookStore STS points clients to the HomeRealm STS using the 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>  

Die Sequenz von Ereignissen beim Zugriff auf den BuyBook-Vorgang lautet wie folgt:The sequence of events when accessing the BuyBook operation is as follows:

  1. Der Client wird mit Windows-Anmeldeinformationen bei HomeRealm STS authentifiziert.The client authenticates to the HomeRealm STS using Windows credentials.

  2. HomeRealm STS gibt ein Token aus, das verwendet werden kann, um bei BookStore STS authentifiziert zu werden.The HomeRealm STS issues a token that can be used to authenticate to the BookStore STS.

  3. Der Client wird bei BookStore STS mit einem von HomeRealm STS ausgegebenen Token authentifiziert.The client authenticates to the BookStore STS using the token issued by the HomeRealm STS.

  4. BookStore STS gibt ein Token aus, das verwendet werden kann, um beim BookStore-Dienst authentifiziert zu werden.The BookStore STS issues a token that can be used to authenticate to the BookStore Service.

  5. Der Client wird beim BookStore-Dienst mit einem von BookStore STS ausgegebenen Token authentifiziert.The client authenticates to the BookStore service using the token issued by the BookStore STS.

  6. Der Client greift auf den BuyBook-Vorgang zu.The client accesses the BuyBook operation.

In den folgenden Anweisungen finden Sie Informationen zum Einrichten und Ausführen dieses Beispiels.See the following instructions about how to set up and run this sample.

Hinweis

Sie benötigen Schreibzugriff auf die "Wwwroot" Verzeichnis zum Ausführen dieses Beispiels.You must have Write permissions to the wwwroot directory to run this sample.

So können Sie das Beispiel einrichten, erstellen und ausführenTo set up, build, and run the sample

  1. Öffnen Sie das SDK-Befehlsfenster.Open the SDK command window. Führen Sie im Beispielpfad die Datei "Setup.bat" aus.In the sample path, run Setup.bat. Dadurch werden die erforderlichen virtuellen Verzeichnisse für das Beispiel erstellt und die erforderlichen Zertifikate mit entsprechenden Berechtigungen installiert.This creates the virtual directories required for the sample and installs the required certificates with appropriate permissions.

    Hinweis

    Die Batchdatei "Setup.bat" ist dafür ausgelegt, von einer Windows SDK-Eingabeaufforderung ausgeführt zu werden.The Setup.bat batch file is designed to be run from a Windows SDK Command Prompt. Die MSSDK-Umgebungsvariable muss auf das Verzeichnis zeigen, in dem das SDK installiert ist.It requires that the MSSDK environment variable point to the directory where the SDK is installed. Diese Umgebungsvariable wird automatisch innerhalb einer Windows SDK-Eingabeaufforderung festgelegt.This environment variable is automatically set within a Windows SDK Command Prompt. Bei Windows VistaWindows Vista müssen Sie sicherstellen, dass IIS 6.0-Verwaltungskompatibilität installiert ist, da das Setup die IIS-Administratorskripts verwendet.On Windows VistaWindows Vista, you must ensure that IIS 6.0 Management Compatibility is installed because the set up uses IIS administrator scripts. Das Ausführen des Setupskripts über Windows VistaWindows Vista erfordert Administratorrechte.Running the set-up script on Windows VistaWindows Vista requires administrator privileges.

  2. Öffnen Sie die Datei FederationSample.sln in Visual Studio, und wählen Sie Projektmappe aus der erstellen Menü.Open FederationSample.sln in Visual Studio and select Build Solution from the Build menu. Dadurch werden die allgemeinen Projektdateien, der Bookstore-Dienst, Bookstore-STS und HomeRealm STS erstellt und in IIS bereitgestellt.This builds the common project files, Bookstore service, Bookstore STS, HomeRealm STS, and deploys them in IIS. Auf diese Weise wird auch die Buchhandlungsclientanwendung erstellt, und die ausführbare Datei "BookStoreClient.exe" wird im Ordner "FederationSample\BookStoreClient\bin\Debug" gespeichert.This also builds the Bookstore client application and places the executable BookStoreClient.exe in the FederationSample\BookStoreClient\bin\Debug folder.

  3. Doppelklicken Sie auf "BookStoreClient.exe".Double-click BookStoreClient.exe. Das Fenster "BookStoreClient" wird angezeigt.The BookStoreClient window is displayed.

  4. Sie können die in der Buchhandlung verfügbaren Bücher durchsuchen, indem Sie auf Bücher Durchsuchen.You can browse the books available in the bookstore by clicking Browse Books.

  5. Um ein bestimmtes Buch zu kaufen, wählen Sie das Buch in der Liste aus, und klicken Sie auf Buch kaufen.To purchase a particular book, select the book in the list and click Buy Book. Die Anwendung startet und wird mit der Windows-Authentifizierung beim HomeRealm-Sicherheitstokendienst authentifiziert.The application starts up and authenticates using Windows authentication with the HomeRealm Security Token Service.

    Das Beispiel ist so konfiguriert, dass Benutzern der Kauf von Büchern ermöglicht wird, die $15 oder weniger kosten.The sample is configured to allow users to purchase books that cost $15 or less. Wenn versucht wird, Bücher zu kaufen, die mehr als $15 kosten, erhält der Client vom BookStore-Dienst eine Nachricht vom Typ Zugriff verweigert.Attempting to buy books that cost more than $15 results in the client getting an Access Denied message from the Book Store Service.

    Hinweis

    Im Beispiel wird der Kreditrahmen des Benutzers nach einem Kauf nicht aktualisiert.The sample does not update the user’s credit limit after a purchase. Sie können immer wieder Bücher innerhalb des Kreditrahmens (fest) des Benutzers kaufen.You can repeatedly purchase books within the user’s (fixed) credit limit.

So führen Sie eine Bereinigung durchTo clean up

  1. Führen Sie die Datei Cleanup.bat aus.Run Cleanup.bat. Dadurch werden die virtuellen Verzeichnisse, die beim Setup erstellt wurden, gelöscht, und auch die beim Setup installierten Zertifikate werden entfernt.This deletes the virtual directories that were created during set up and also removes the certificates installed during setup.

Wichtig

Die Beispiele sind möglicherweise bereits auf dem Computer installiert.The samples may already be installed on your machine. Suchen Sie nach dem folgenden Verzeichnis (Standardverzeichnis), bevor Sie fortfahren.Check for the following (default) directory before continuing.

<InstallDrive>:\WF_WCF_Samples

Wenn dieses Verzeichnis nicht vorhanden ist, rufen Sie Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 auf, um alle Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) - und WFWF -Beispiele herunterzuladen.If this directory does not exist, go to Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 to download all Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) and WFWF samples. Dieses Beispiel befindet sich im folgenden Verzeichnis.This sample is located in the following directory.

<InstallDrive>:\WF_WCF_Samples\WCF\Scenario\Federation

Siehe auchSee Also