Partager via


Exemple de fédération

L’exemple de fédération illustre la sécurité fédérée.

Détails de l'exemple

Windows Communication Foundation (WCF) prend en charge le déploiement d’architectures de sécurité fédérées via le wsFederationHttpBinding. Le wsFederationHttpBinding offre une liaison sécurisée, fiable et interopérable qui implique l'utilisation de HTTP comme mécanisme de transport sous-jacent pour la communication de type requête/réponse, et Texte/XML comme format de transmission pour l'encodage. Pour plus d’informations sur la fédération dans WCF, consultez Fédération.

Le scénario est constitué de 4 éléments :

  • Service BookStore

  • BookStore STS

  • HomeRealm STS

  • BookStore Client

Le service BookStore prend en charge deux opérations, BrowseBooks et BuyBook. Il autorise l’accès anonyme à l’opération BrowseBooks , mais nécessite un accès authentifié pour accéder à l’opération BuyBooks . L’authentification prend la forme d’un jeton émis par le STS BookStore. Le fichier de configuration du service BookStore pointe les clients vers le STS BookStore en utilisant le fichier 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>

Le STS BookStore exige ensuite que les clients s’authentifient à l’aide d’un jeton émis par homeRealm STS. Là encore, le fichier de configuration pour le BookStore STS pointe les clients vers le STS HomeRealm à l’aide du fichier 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>

La séquence d’événements lors de l’accès à l’opération BuyBook est la suivante :

  1. Le client s’authentifie auprès de HomeRealm STS à l’aide des informations d’identification Windows.

  2. HomeRealm STS émet un jeton qui peut être utilisé pour s’authentifier auprès du STS BookStore.

  3. Le client s’authentifie auprès du STS BookStore à l’aide du jeton émis par le STS HomeRealm.

  4. BookStore STS émet un jeton qui peut être utilisé pour s’authentifier auprès du service BookStore.

  5. Le client s’authentifie auprès du service BookStore à l’aide du jeton émis par le STS BookStore.

  6. Le client accède à l’opération BuyBook .

Consultez les instructions suivantes sur la configuration et l’exécution de cet exemple.

Remarque

Vous devez disposer des autorisations d’écriture dans le répertoire wwwroot pour exécuter cet exemple.

Pour configurer, générer et exécuter l’exemple

  1. Ouvrez la fenêtre de commande du Kit de développement logiciel (SDK). Dans le chemin d’accès de l’exemple, exécutez Setup.bat. Cela crée les répertoires virtuels requis pour l’exemple et installe les certificats requis avec les autorisations appropriées.

    Remarque

    Le fichier batch Setup.bat est conçu pour être exécuté à partir d’une invite de commandes du Kit de développement logiciel (SDK) Windows. Il nécessite que la variable d’environnement MSSDK pointe vers le répertoire où le KIT DE développement logiciel (SDK) est installé. Cette variable d’environnement est automatiquement définie dans une invite de commandes du Kit de développement logiciel (SDK) Windows. Sur Windows Vista, vous devez vous assurer que la compatibilité de gestion IIS 6.0 est installée, car la configuration utilise des scripts d’administrateur IIS. L’exécution du script de configuration sur Windows Vista nécessite des privilèges d’administrateur.

  2. Ouvrez FederationSample.sln dans Visual Studio et sélectionnez Générer la solution dans le menu Générer . Cela génère les fichiers projet courants, le service Bookstore, Bookstore STS, HomeRealm STS et les déploie dans IIS. Cela génère également l’application cliente Bookstore et place l'BookStoreClient.exe exécutable dans le dossier FederationSample\BookStoreClient\bin\Debug.

  3. Double-cliquez sur BookStoreClient.exe. La fenêtre BookStoreClient s’affiche.

  4. Vous pouvez parcourir les livres disponibles dans la librairie en cliquant sur Parcourir les livres.

  5. Pour acheter un livre particulier, sélectionnez le livre dans la liste, puis cliquez sur Acheter un livre. L’application démarre et s’authentifie à l’aide de l’authentification Windows avec le service HomeRealm Security Token.

    L’exemple est configuré pour permettre aux utilisateurs d’acheter des livres qui coûtent 15 $ ou moins. Si vous tentez d’acheter des livres qui coûtent plus de 15 $, le client reçoit un message d’accès refusé auprès du service Book Store.

    Remarque

    L’exemple ne met pas à jour la limite de crédit de l’utilisateur après un achat. Vous pouvez acheter des livres à plusieurs reprises dans la limite de crédit (fixe) de l’utilisateur.

Pour nettoyer

Exécutez Cleanup.bat. Cela supprime les répertoires virtuels qui ont été créés pendant la configuration et supprime également les certificats installés lors de l’installation.