Dela via


Federationsexempel

Federationsexemplet visar federerad säkerhet.

Exempelinformation

Windows Communication Foundation (WCF) ger stöd för att distribuera federerade säkerhetsarkitekturer via wsFederationHttpBinding. Ger wsFederationHttpBinding en säker, tillförlitlig och driftskompatibel bindning som innebär användning av HTTP som den underliggande transportmekanismen för begäran/svar-kommunikation och Text/XML som trådformat för kodning. Mer information om federation i WCF finns i Federation.

Scenariot består av 4 delar:

  • Bokhandelstjänst

  • Bokhandel STS

  • HomeRealm STS

  • Bokhandelsklient

BookStore-tjänsten stöder två åtgärder och BrowseBooksBuyBook. Det ger anonym åtkomst till åtgärden, men kräver autentiserad BrowseBooks åtkomst för att få åtkomst till åtgärden BuyBooks . Autentiseringen sker i form av en token som utfärdats av BookStore STS. Konfigurationsfilen för BookStore Service pekar klienter till BookStore STS med hjälp av 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 kräver sedan att klienter autentiserar med hjälp av en token som utfärdats av HomeRealm STS. Återigen pekar konfigurationsfilen för BookStore STS klienter till HomeRealm STS med hjälp av 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>

Händelsesekvensen vid åtkomst till åtgärden BuyBook är följande:

  1. Klienten autentiserar till HomeRealm STS med Windows-autentiseringsuppgifter.

  2. HomeRealm STS utfärdar en token som kan användas för att autentisera till BookStore STS.

  3. Klienten autentiserar till BookStore STS med hjälp av token som utfärdats av HomeRealm STS.

  4. BookStore STS utfärdar en token som kan användas för att autentisera till BookStore-tjänsten.

  5. Klienten autentiserar till BookStore-tjänsten med hjälp av den token som utfärdats av BookStore STS.

  6. Klienten kommer åt åtgärden BuyBook .

Se följande instruktioner om hur du konfigurerar och kör det här exemplet.

Kommentar

Du måste ha skrivbehörighet till katalogen wwwroot för att kunna köra det här exemplet.

Så här konfigurerar du, skapar och kör exemplet

  1. Öppna SDK-kommandofönstret. Kör Setup.bat i exempelsökvägen. Detta skapar de virtuella kataloger som krävs för exemplet och installerar de certifikat som krävs med lämpliga behörigheter.

    Kommentar

    Den Setup.bat batchfilen är utformad för att köras från en Windows SDK-kommandotolk. Det kräver att miljövariabeln MSSDK pekar på katalogen där SDK:et är installerat. Den här miljövariabeln anges automatiskt i en Windows SDK-kommandotolk. I Windows Vista måste du se till att IIS 6.0 Management Compatibility är installerat eftersom konfigurationen använder IIS-administratörsskript. För att köra konfigurationsskriptet i Windows Vista krävs administratörsbehörighet.

  2. Öppna FederationSample.sln i Visual Studio och välj Skapa lösningmenyn Skapa . Detta skapar de vanliga projektfilerna, Bokhandelstjänsten, Bookstore STS, HomeRealm STS och distribuerar dem i IIS. Detta skapar även bookstore-klientprogrammet och placerar den körbara BookStoreClient.exe i mappen FederationSample\BookStoreClient\bin\Debug.

  3. Dubbelklicka på BookStoreClient.exe. Fönstret BookStoreClient visas.

  4. Du kan bläddra bland de böcker som är tillgängliga i bokhandeln genom att klicka på Bläddra i böcker.

  5. Om du vill köpa en viss bok väljer du boken i listan och klickar på Köp bok. Programmet startar och autentiserar med Windows-autentisering med HomeRealm Security Token Service.

    Exemplet är konfigurerat för att tillåta användare att köpa böcker som kostar 15 USD eller mindre. Försök att köpa böcker som kostar mer än 15 USD resulterar i att klienten får ett meddelande om nekad åtkomst från bokbutikstjänsten.

    Kommentar

    Exemplet uppdaterar inte användarens kreditgräns efter ett köp. Du kan köpa böcker upprepade gånger inom användarens (fasta) kreditgräns.

Så här rensar du

Kör Cleanup.bat. Detta tar bort de virtuella kataloger som skapades under konfigurationen och tar även bort de certifikat som installerades under installationen.