Federation, exemple
Cet exemple présente la sécurité fédérée.
Détails de l'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 d'encodage étant Text/XML. Pour plus d'informations sur le sujet suivant la fédération dans WCF, consultez Fédération.
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 clients 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.
Remarque : |
---|
Vous devez disposer d'autorisations en écriture sur le répertoire wwwroot pour exécuter cet exemple. |
Pour configurer, générer et exécuter l'exemple
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. 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 vers 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 la compatibilité avec la gestion IIS 6 est installée, 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 Générer la solution dans le menu Générer. 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 du service BookStore indiquant que l'accès est refusé.
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.
Pour nettoyer
- 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.
Remarque : |
---|
Les exemples peuvent déjà être installés sur votre ordinateur. Recherchez le répertoire (par défaut) suivant avant de continuer.
<LecteurInstall>:\WF_WCF_Samples
Si ce répertoire n'existe pas, rendez-vous sur la page (éventuellement en anglais) des exemples Windows Communication Foundation (WCF) et Windows Workflow Foundation (WF) pour .NET Framework 4 pour télécharger tous les exemples Windows Communication Foundation (WCF) et WF. Cet exemple se trouve dans le répertoire suivant.
<LecteurInstall>:\WF_WCF_Samples\WCF\Scenario\Federation
|