WCF - Comment crypter des messages?
Mon service WCF implique l'envoi d'un jeu de données (au format csv) des données entre le client et le service. Ce jeu de données doivent être cryptées de sorte que les données ne peuvent pas être interceptées. Je suis en utilisant wshttpbinding et d'essayer de chiffrer le message en utilisant les paramètres suivants dans le web.config:
<wsHttpBinding>
<binding name="wsHttp">
<reliableSession enabled="true" />
<security mode="Message">
<message clientCredentialType="UserName" algorithmSuite="TripleDes" />
</security>
</binding>
</wsHttpBinding>
Quand je l'ai essayer et de générer un proxy client-je obtenir une longue erreur messagebox (qui ne peut pas être complètement à lire, car il va sur le bas de l'écran!). Le message d'erreur mentionne quelque chose à propos d'un "certificat de service ne sont pas disponibles".
Comment chiffrer un message? Ai-je besoin d'un certificat? Je tiens à préciser que ce service sera utilisé sur l'internet à partir de différents domaines, donc je ne suis pas sûr qu'à l'aide de "nom d'utilisateur" la sécurité est la meilleure option (?)
Fondamentalement, je suis confus!
Vous devez vous connecter pour publier un commentaire.
Oui, vos besoins de service un certificat de sorte que vos clés de chiffrement peuvent être échangés en toute sécurité. Vous pouvez créer un service de tests de certificat d'authentification avec makecert.exe. Voir cette entrée dans mon blog pour les détails de la.
Vous devez également vous assurer que le compte de votre service est en cours d'exécution est en mesure de lire la clé privée du certificat de fichier. Si vous êtes sur Windows Vista (ou plus tard) le composant logiciel enfichable MMC Certificats vous permet de contrôler les autorisations sur la clé privée, mais pour les versions antérieures de Windows, c'est un peu plus difficile. J'ai utilisé un utilitaire fourni avec WSE3, mais quelqu'un d'autre pourrait être en mesure de vous suggérer d'une manière plus directe. À moins que votre service s'exécute en tant qu'administrateur, vous devrez probablement ajuster ces autorisations.
Mise à jour: comme toutes les bonnes choses, mon blog est venu à une fin. Grâce à makerofthings7 de me le rappeler. Le makecert de commande vous avez besoin de générer un service d'authentification de certificat est quelque chose comme cela...
...il suffit de remplacer sujet-nom avec un certificat de nom de qui fait sens pour votre service.
@Martin a raison, vous avez besoin d'un certificat sur le serveur. Ce lien a une bonne vue d'ensemble du flux de communication pour le message en fonction de la sécurité et propose des exemples de code. Ce lien a un bon aperçu de travailler avec des certificats.
Pour votre authenication exigences, ce lien passe en revue les différentes options disponibles. Si vous êtes nouveau à la WCF, l'Apprentissage de la WCF: UN Guide pratique par Michele Bustamante est un bon livre et couvre message en fonction de la sécurité.
Je suis encore à essayer de trouver la solution à ce problème. Je l'ai aussi, mais avec la signature d'un document xml. Reste à trouver l'utilisateur IIS est en cours d'exécution dans WinXP Démarrer > Cliquez-Droit sur Mon Ordinateur > Gérer > les Services Et les Applications > Services > IIS Admin > Double-cliquez sur et dans l'onglet connexion, il aura l'habitude de dire du Système Local.
MODIFIER
OK, c'est comment j'ai résolu mon problème. J'ai eu un ceritificate que j'ai utilisé ce l'article
pour faire le cert. Si le projet est un ASPWebSite qui est enregistré sur votre Dossier C vous ne pouvez pas avoir des problèmes avec cela. Mais si le son enregistré à IIS HTTP projet, puis vous aurez des problèmes.
La façon de le résoudre après des semaines de investigationg n'est pas si difficile que ça. Microsoft a quelque chose qui s'appelle les Web Services Enhancements vous pourrez télécharger la dernière, mais je suis en utilisant le second avec le dernier service pack. Quand je l'ai installé, j'ai activé tout.
Certificats peut être dans un fichier physique, mais ils sont généralement dans le Certificat de Gestion de Magasin pour obtenir l'utilisation de l'outil Certificat X509 outil dans WSE 2.0. Ici, ouvrez votre certificat par la recherche dans les différentes sections jusqu'à ce que vous trouver. Puis l'ouvrir et en bas il y aura un Affichage de la Clé Privée, dans l'onglet sécurité ajouter LOCALHOST\ASPNET . Et cela devrait permettre à votre site pour lire le certificat.
En bref ce qui se passe est que lorsque vous créez des clés publiques et privées, bien que vous pouvez voir la clé privée très bien, il a vraiment son envoyer à Tombouctou, dans le système de fichiers et vous devez le trouver pour ajouter le compte ASPNET pour l'accès en lecture. Je suis de lecture que dans Vista, c'est beaucoup plus facile, mais je suis avec XP.