Delen via


Federatievoorbeeld

Het federatievoorbeeld demonstreert federatieve beveiliging.

Voorbeelddetails

Windows Communication Foundation (WCF) biedt ondersteuning voor het implementeren van federatieve beveiligingsarchitecturen via de wsFederationHttpBinding. De wsFederationHttpBinding biedt een veilige, betrouwbare en interoperabele binding waarbij HTTP wordt gebruikt als het onderliggende transportmechanisme voor aanvraag-/antwoordcommunicatie en Text/XML als wire-indeling voor codering. Zie Federatie voor meer informatie over federatie in WCF.

Het scenario bestaat uit 4 stuks:

  • BookStore-service

  • Boekwinkel STS

  • HomeRealm STS

  • BookStore Client

De BookStore-service ondersteunt twee bewerkingen en BrowseBooksBuyBook. Hiermee is anonieme toegang tot de BrowseBooks bewerking toegestaan, maar is geverifieerde toegang vereist voor toegang tot de BuyBooks bewerking. De verificatie heeft de vorm van een token dat is uitgegeven door de BookStore STS. Het configuratiebestand voor de BookStore Service verwijst clients naar de BookStore STS met behulp van de 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>

De BookStore STS vereist vervolgens dat clients zich verifiëren met behulp van een token dat is uitgegeven door de HomeRealm STS. Nogmaals, het configuratiebestand voor de BookStore STS wijst clients naar de HomeRealm STS met behulp van de 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>

De volgorde van gebeurtenissen bij het openen van de BuyBook bewerking is als volgt:

  1. De client wordt geverifieerd bij de HomeRealm STS met behulp van Windows-referenties.

  2. De HomeRealm STS geeft een token uit dat kan worden gebruikt voor verificatie bij de BookStore STS.

  3. De client wordt geverifieerd bij de BookStore STS met behulp van het token dat is uitgegeven door de HomeRealm STS.

  4. De BookStore STS geeft een token uit dat kan worden gebruikt voor verificatie bij de BookStore-service.

  5. De client wordt geverifieerd bij de BookStore-service met behulp van het token dat is uitgegeven door de BookStore STS.

  6. De client heeft toegang tot de BuyBook bewerking.

Zie de volgende instructies voor het instellen en uitvoeren van dit voorbeeld.

Notitie

U moet schrijfmachtigingen hebben voor de wwwroot-map om dit voorbeeld uit te voeren.

Het voorbeeld instellen, compileren en uitvoeren

  1. Open het sdk-opdrachtvenster. Voer in het voorbeeldpad Setup.bat uit. Hiermee worden de virtuele mappen gemaakt die vereist zijn voor het voorbeeld en worden de vereiste certificaten geïnstalleerd met de juiste machtigingen.

    Notitie

    Het Setup.bat batchbestand is ontworpen om te worden uitgevoerd vanaf een Windows SDK-opdrachtprompt. Hiervoor moet de omgevingsvariabele MSSDK verwijzen naar de map waarin de SDK is geïnstalleerd. Deze omgevingsvariabele wordt automatisch ingesteld in een Windows SDK-opdrachtprompt. Op Windows Vista moet u ervoor zorgen dat IIS 6.0-beheercompatibiliteit is geïnstalleerd omdat de installatie IIS-beheerdersscripts gebruikt. Voor het uitvoeren van het installatiescript op Windows Vista zijn beheerdersbevoegdheden vereist.

  2. Open FederationSample.sln in Visual Studio en selecteer Build Solution in het menu Build . Hiermee worden de algemene projectbestanden, bookstoreservice, Bookstore STS, HomeRealm STS gebouwd en geïmplementeerd in IIS. Hiermee wordt ook de bookstore-clienttoepassing gebouwd en wordt het uitvoerbare BookStoreClient.exe in de map FederationSample\BookStoreClient\bin\Debug geplaatst.

  3. Dubbelklik op BookStoreClient.exe. Het venster BookStoreClient wordt weergegeven.

  4. U kunt door de boeken bladeren die beschikbaar zijn in de boekwinkel door te klikken op Bladeren in boeken.

  5. Als u een bepaald boek wilt kopen, selecteert u het boek in de lijst en klikt u op Boek kopen. De toepassing wordt gestart en geverifieerd met Behulp van Windows-verificatie met de HomeRealm Security Token Service.

    Het voorbeeld is zo geconfigureerd dat gebruikers boeken kunnen kopen die $ 15 of minder kosten. Als u probeert boeken te kopen die meer dan $ 15 kosten, krijgt de client een bericht dat Toegang geweigerd wordt ontvangen van de Book Store-service.

    Notitie

    Het voorbeeld werkt de kredietlimiet van de gebruiker niet bij na een aankoop. U kunt herhaaldelijk boeken kopen binnen de (vaste) kredietlimiet van de gebruiker.

Opschonen

Voer Cleanup.bat uit. Hiermee verwijdert u de virtuele mappen die zijn gemaakt tijdens het instellen en worden ook de certificaten verwijderd die tijdens de installatie zijn geïnstalleerd.