Udostępnij za pośrednictwem


Federacja — przykład

Przykład federacji demonstruje zabezpieczenia federacyjne.

Przykładowe szczegóły

Program Windows Communication Foundation (WCF) zapewnia obsługę wdrażania architektur zabezpieczeń federacyjnych za pośrednictwem programu wsFederationHttpBinding. Zapewnia wsFederationHttpBinding bezpieczne, niezawodne i współdziałające powiązanie, które obejmuje użycie protokołu HTTP jako podstawowego mechanizmu transportu do komunikacji żądań/odpowiedzi, a tekst/XML jako format przewodu do kodowania. Aby uzyskać więcej informacji na temat federacji w programie WCF, zobacz Federacja.

Scenariusz składa się z 4 elementów:

  • Usługa BookStore

  • BookStore STS

  • HomeRealm STS

  • Klient księgarni

Usługa BookStore obsługuje dwie operacje i BrowseBooksBuyBook. Umożliwia ona anonimowy dostęp do BrowseBooks operacji, ale wymaga uwierzytelnionego dostępu w celu uzyskania dostępu BuyBooks do operacji. Uwierzytelnianie ma postać tokenu wystawionego przez usługę STS BookStore. Plik konfiguracji usługi BookStore wskazuje klientów do usługi BookStore STS przy użyciu programu 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>

Usługa STS magazynu książek wymaga następnie, aby klienci uwierzytelnili się przy użyciu tokenu wystawionego przez usługę HomeRealm STS. Ponownie plik konfiguracji usługi STS bookStore wskazuje klientów do usługi HomeRealm STS przy użyciu polecenia 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>

Sekwencja zdarzeń podczas uzyskiwania BuyBook dostępu do operacji jest następująca:

  1. Klient uwierzytelnia się w usłudze HomeRealm STS przy użyciu poświadczeń systemu Windows.

  2. Usługa HomeRealm STS wystawia token, który może służyć do uwierzytelniania w usłudze StS BookStore.

  3. Klient uwierzytelnia się w usłudze BookStore STS przy użyciu tokenu wystawionego przez usługę HomeRealm STS.

  4. BookStore STS wystawia token, który może służyć do uwierzytelniania w usłudze BookStore.

  5. Klient uwierzytelnia się w usłudze BookStore przy użyciu tokenu wystawionego przez usługę STS BookStore.

  6. Klient uzyskuje BuyBook dostęp do operacji.

Zapoznaj się z poniższymi instrukcjami dotyczącymi sposobu konfigurowania i uruchamiania tego przykładu.

Uwaga

Aby uruchomić ten przykład, musisz mieć uprawnienia do zapisu w katalogu wwwroot .

Aby skonfigurować, skompilować i uruchomić przykład

  1. Otwórz okno polecenia zestawu SDK. W przykładowej ścieżce uruchom Setup.bat. Spowoduje to utworzenie katalogów wirtualnych wymaganych dla przykładu i zainstalowanie wymaganych certyfikatów z odpowiednimi uprawnieniami.

    Uwaga

    Plik wsadowy Setup.bat jest przeznaczony do uruchamiania z wiersza polecenia zestawu Windows SDK. Wymaga to, aby zmienna środowiskowa MSSDK wskazywała katalog, w którym zainstalowano zestaw SDK. Ta zmienna środowiskowa jest automatycznie ustawiana w wierszu polecenia zestawu Windows SDK. W systemie Windows Vista należy upewnić się, że jest zainstalowana zgodność zarządzania usługami IIS 6.0, ponieważ konfiguracja używa skryptów administratora usług IIS. Uruchomienie skryptu konfiguracji w systemie Windows Vista wymaga uprawnień administratora.

  2. Otwórz FederationSample.sln w programie Visual Studio i wybierz pozycję Kompiluj rozwiązanie z menu Kompilacja . Spowoduje to skompilowanie typowych plików projektu, usługi księgarni, usługi Bookstore STS, HomeRealm STS i wdrożenia ich w usługach IIS. Spowoduje to również skompilowanie aplikacji klienckiej księgarni i umieszczenie pliku wykonywalnego BookStoreClient.exe w folderze FederationSample\BookStoreClient\bin\Debug.

  3. Kliknij dwukrotnie BookStoreClient.exe. Zostanie wyświetlone okno BookStoreClient.

  4. Możesz przeglądać książki dostępne w księgarni, klikając pozycję Przeglądaj książki.

  5. Aby kupić określoną książkę, wybierz książkę z listy i kliknij pozycję Kup książkę. Aplikacja uruchamia się i uwierzytelnia przy użyciu uwierzytelniania systemu Windows za pomocą usługi tokenu zabezpieczającego HomeRealm.

    Przykład jest skonfigurowany tak, aby umożliwić użytkownikom kupowanie książek, które kosztują 15 USD lub mniej. Próba zakupu książek, które kosztują ponad 15 USD, powoduje, że klient otrzymuje komunikat Odmowa dostępu z usługi Księgawnictwa.

    Uwaga

    Przykład nie aktualizuje limitu środków użytkownika po zakupie. Książki można wielokrotnie kupować w ramach limitu środków (stałego) użytkownika.

Aby wyczyścić

Uruchom Cleanup.bat. Spowoduje to usunięcie katalogów wirtualnych utworzonych podczas konfigurowania, a także usunięcie certyfikatów zainstalowanych podczas instalacji.