Freigeben über


Föderationsbeispiel

Im Verbundbeispiel wird die Verbundsicherheit veranschaulicht.

Beispieldetails

Windows Communication Foundation (WCF) bietet Unterstützung für die Bereitstellung von Verbundsicherheitsarchitekturen über die wsFederationHttpBinding. Dies wsFederationHttpBinding bietet eine sichere, zuverlässige und interoperable Bindung, die die Verwendung von HTTP als zugrunde liegenden Transportmechanismus für die Anforderungs-/Antwortkommunikation und Text/XML als Drahtformat für die Codierung umfasst. Weitere Informationen über Federation in WCF finden Sie unter Federation.

Das Szenario besteht aus vier Teilen:

  • BookStore-Dienst

  • BookStore STS

  • HomeRealm STS

  • BookStore-Client

Der BookStore-Dienst unterstützt zwei Vorgänge, BrowseBooks und BuyBook. Er ermöglicht anonymen Zugriff auf den BrowseBooks Vorgang, erfordert jedoch authentifizierten Zugriff auf den BuyBooks Vorgang. Die Authentifizierung übernimmt die Form eines Tokens, das vom BookStore-STS ausgestellt wurde. Die Konfigurationsdatei zum BookStore-Dienst verweist Clients mit wsFederationHttpBinding auf 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>

Der BookStore STS verlangt dann, dass sich die Clients mit einem vom HomeRealm STS ausgestellten Token authentifizieren. Die Konfigurationsdatei für den BookStore-STS verweist die Clients erneut auf den HomeRealm-STS mit Hilfe des 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 Abfolge von Ereignissen beim Zugriff auf den BuyBook Vorgang lautet wie folgt:

  1. Der Client authentifiziert sich mit Windows-Anmeldeinformationen beim HomeRealm STS.

  2. Der HomeRealm STS gibt ein Token aus, das zur Authentifizierung beim BookStore STS verwendet werden kann.

  3. Der Client authentifiziert sich beim BookStore STS mithilfe des vom HomeRealm STS ausgestellten Tokens.

  4. Der BookStore-STS gibt ein Token aus, das zum Authentifizieren beim BookStore-Dienst verwendet werden kann.

  5. Der Client authentifiziert sich beim BookStore-Dienst mithilfe des vom BookStore-STS ausgestellten Tokens.

  6. Der Client greift auf den BuyBook Vorgang zu.

Lesen Sie die folgenden Anweisungen zum Einrichten und Ausführen dieses Beispiels.

Hinweis

Sie müssen über Schreibberechtigungen für das Wwwroot-Verzeichnis verfügen, um dieses Beispiel auszuführen.

So können Sie das Beispiel einrichten, erstellen und ausführen

  1. Öffnen Sie das SDK-Befehlsfenster. Führen Sie im Beispielpfad den Befehl Setup.bataus. Dadurch werden die für das Beispiel erforderlichen virtuellen Verzeichnisse erstellt und die erforderlichen Zertifikate mit entsprechenden Berechtigungen installiert.

    Hinweis

    Die Setup.bat Batchdatei soll über eine Windows SDK-Eingabeaufforderung ausgeführt werden. Sie erfordert, dass die MSSDK-Umgebungsvariable auf das Verzeichnis verweist, in dem das SDK installiert ist. Diese Umgebungsvariable wird automatisch in einer Windows SDK-Eingabeaufforderung festgelegt. Unter Windows Vista müssen Sie sicherstellen, dass die IIS 6.0-Verwaltungskompatibilität installiert ist, da die Einrichtung IIS-Administratorskripts verwendet. Zum Ausführen des Setupskripts unter Windows Vista sind Administratorrechte erforderlich.

  2. Öffnen Sie die Datei „FederationSample.sln“ in Visual Studio, und wählen Sie im Menü Erstellen die Option Projektmappe erstellen aus. Dadurch werden die allgemeinen Projektdateien, der Bookstore-Dienst, Bookstore-STS und HomeRealm STS erstellt und in IIS bereitgestellt. Dadurch wird auch die Bookstore-Clientanwendung erstellt und die ausführbare BookStoreClient.exe im Ordner "FederationSample\BookStoreClient\bin\Debug" platziert.

  3. Doppelklicken Sie auf BookStoreClient.exe. Das BookStoreClient-Fenster wird angezeigt.

  4. Sie können die im Buchladen verfügbaren Bücher durchsuchen, indem Sie auf "Bücher durchsuchen" klicken.

  5. Um ein bestimmtes Buch zu kaufen, wählen Sie das Buch in der Liste aus, und klicken Sie auf "Buch kaufen". Die Anwendung startet und wird mit der Windows-Authentifizierung beim HomeRealm-Sicherheitstokendienst authentifiziert.

    Das Beispiel ist so konfiguriert, dass Benutzer Bücher kaufen können, die 15 oder weniger $ kosten. Der Versuch, Bücher zu kaufen, die mehr als 15 $ kosten, führt dazu, dass der Client eine Nachricht "Zugriff verweigert" aus dem Book Store Service erhält.

    Hinweis

    Im Beispiel wird das Kreditlimit des Benutzers nach einem Kauf nicht aktualisiert. Sie können Bücher wiederholt innerhalb des (festen) Kreditlimits des Benutzers kaufen.

So führen Sie eine Bereinigung durch

Führen Sie die Datei Cleanup.bat aus. Dadurch werden die virtuellen Verzeichnisse gelöscht, die während der Einrichtung erstellt wurden, und entfernt auch die während des Setups installierten Zertifikate.