Sécurisation des services de workflow
Cette rubrique s'applique à Windows Workflow Foundation 4.
L'exemple de service de workflow sécurisé présente les procédures suivantes :
Création d'un service de workflow de base à l'aide des activités Receive et SendReply.
Utilisation de la configuration Windows Communication Foundation (WCF) pour définir des points de terminaison sécurisés en vue d'une utilisation par le service de workflow.
Création de revendications à l'intérieure d'une stratégie personnalisée et utilisation de ServiceAuthorizationManager pour valider les revendications.
Montre
Utilisation de la sécurité WCF pour sécuriser la communication entre le client et service de workflow. Autorisation basée sur des revendications
Discussion
Cet exemple illustre l'utilisation de l'infrastructure de sécurité WCF pour sécuriser un service de workflow exactement comme vous le feriez avec un service WCF normal. Plus particulièrement, il utilise une revendication personnalisée pour spécifier l'autorisation. Dans ce cas, il utilise WSHttpBinding et la sécurité en mode de message avec les informations d'identification Windows.
L'IAuthorizationPolicy personnalisé (CustomNameCheckerPolicy
) vérifie le nom d'utilisateur Windows du client et recherche un caractère spécifique. Si ce caractère est présent, il crée et ajoute la revendication à EvaluationContext. Ainsi, la stratégie personnalisée établit le constat selon lequel le nom d'utilisateur du client contient ce caractère. Cette revendication peut être faire l'objet d'une requête pendant toute la durée de vie de l'appel. Vous trouverez ce caractère dans Constants.cs
.
La stratégie d'autorisation recherche la revendication à l'intérieur de SecureWorkFlowAuthZManager
. Si elle le trouve, elle retourne true et autorise le workflow à continuer. Sinon, elle retourne false, ce qui entraîne le retour d'un message 'Accès refusé' au client. D'autres revendications sont présentes dans le contexte et peuvent également être examinées à l'intérieur de SecureWorkFlowAuthZManager
.
Pour exécuter cet exemple
Exécutez Visual Studio 2010 avec des privilèges d'administrateur.
Chargez SecuringWorkflowServices.sln dans Visual Studio 2010.
Appuyez sur F6 pour compiler la solution.
Définissez le projet Service comme projet de démarrage pour la solution.
Appuyez sur CTRL+F5 pour démarrer le service sans débogage.
Définissez le projet Client comme projet de démarrage pour la solution.
Appuyez sur CTRL+F5 pour démarrer le client sans débogage.
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\WF\Scenario\Services\SecuringWorkflowServices
|