Federation, exemple
Windows Communication Foundation (WCF) fournit la prise en charge permettant de déployer des architectures de sécurité fédérée via wsFederationHttpBinding. wsFederationHttpBinding fournit 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 demande/réponse, le format de câble de codage étant Text/XML. Cet exemple présente la sécurité fédérée : Pour plus d'informations sur la fédération dans WCF, consultez Federation in Windows Communication Foundation.
Le scénario comporte 4 parties :
- Service BookStore
- STS BookStore
- STS HomeRealm
- Client BookStore
Le service BookStore prend en charge deux opérations : BrowseBooks et BuyBook. Il autorise l'accès anonyme à l'opération BrowseBooks, mais requiert l'authentification 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 des clients sur le STS BookStore à l'aide 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='https://localhost/FederationSample/BookStoreSTS/STS.svc/mex' >
<identity>
<dns value ='BookStoreSTS.com'/>
</identity>
</issuerMetadata>
</message>
</security>
</binding>
</wsFederationHttpBinding>
Le STS BookStore impose ensuite aux client de s'authentifier à l'aide d'un jeton émis par le STS HomeRealm. Une fois encore, le fichier de configuration du STS BookStore pointe des clients sur le STS HomeRealm à l'aide 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='https://localhost/FederationSample/HomeRealmSTS/STS.svc/mex' >
<identity>
<dns value ='HomeRealmSTS.com' />
</identity>
</issuerMetadata>
</message>
</security>
</binding>
</wsFederationHttpBinding>
La séquence des événements lors de l'accès à l'opération BuyBook est la suivante :
- Le client s'authentifie auprès du STS HomeRealm à l'aide d'informations d'identification Windows.
- Le STS HomeRealm émet un jeton qui peut être utilisé pour s'authentifier auprès du STS BookStore.
- Le client s'authentifie auprès du STS BookStore à l'aide du jeton émis par le STS HomeRealm.
- Le STS BookStore émet un jeton qui peut être utilisé pour s'authentifier auprès du service BookStore.
- Le client s'authentifie auprès du service BookStore à l'aide du jeton émis par le STS BookStore.
- Le client accède à l'opération BuyBook.
Suivez les instructions suivantes sur la configuration et l'exécution de cet exemple.
Pour configurer, générer et exécuter l'exemple
Ouvrez la fenêtre de commande de Kit de développement SDK. Dans le chemin d'accès de l'exemple, exécutez Setup.bat. Cette opération crée les répertoires virtuels requis pour l'exemple et installe les certificats requis avec les autorisations appropriées.
Remarque : Le fichier de commandes Setup.bat est conçu pour être exécuté à partir d'une invite de commandes du Kit de développement Windows SDK. La variable d'environnement du Kit de développement MS SDK doit pointer sur le répertoire d'installation du Kit de développement SDK. Cette variable est définie automatiquement dans une invite de commandes du Kit de développement Windows SDK. Sur Windows Vista, vous devez vous assurer que IIS 6 Management Compatibility est installé car le programme d'installation utilise des scripts d'administrateur IIS. L'exécution du script installation sur Windows Vista requiert des privilèges d'administrateur. Ouvrez FederationSample.sln dans Visual Studio et sélectionnez Build Solution dans le menu Build. Cette opération génère les fichiers de projet communs, le service Bookstore, le STS Bookstore, le STS HomeRealm, et les déploie dans IIS. Elle génère également l'application cliente Bookstore et place le fichier exécutable BookStoreClient.exe dans le dossier FederationSample\BookStoreClient\bin\Debug.
Double-cliquez sur BookStoreClient.exe. La fenêtre BookStoreClient s'affiche.
- Pour parcourir les livres disponibles dans la librairie, cliquez sur Browse Books.
- Pour acheter un livre spécifique, sélectionnez -le dans la liste et cliquez sur Buy Book. L'application démarre et s'authentifie à l'aide de l'authentification Windows avec le STS HomeRealm.
L'exemple est configuré pour permettre aux utilisateurs d'acheter des livres pour un montant égal ou inférieur à 15 dollars. Si un client tente d'acheter des livres pour un montant supérieur à 15 dollars, il reçoit un message indiquant que l'accès est refusé depuis le service BookStore.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 (fixée) de l'utilisateur.
Exécutez Cleanup.bat. Cette opération supprime les répertoires virtuels créés pendant l'installation ainsi que les certificats installés pendant l'installation.
Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.