2009-01-28 8 views
5

Je travaille sur un service WCF qui communiquera via net.tcp à n instances d'une application client (en cours de développement par un autre programmeur de mon bureau). En ce moment, j'utilise net.tcp sans aucune sécurité car je pensais qu'il n'était pas nécessaire de le configurer à ce stade, du moins pas avant que nous ne soyons plus proches du déploiement.Logique d'abord, sécurité WCF plus tard?

Lors du développement d'une application WCF, est-il dangereux d'utiliser une liaison standard (net.tcp dans mon cas) sans sécurité, puis une fois la logique métier terminée, d'implémenter toutes les exigences de sécurité? Y a-t-il des choses dont je dois être conscient qui pourraient ne pas fonctionner après la mise en œuvre de la sécurité?

Répondre

5

Bien que votre conception globale devrait considérer la sécurité dès le début , Je ne pense pas que ce soit une bonne idée de coupler vos composants à une stratégie de sécurité particulière. Vous pouvez très bien utiliser certains de vos composants de manière non sécurisée ou via un protocole différent qui offre différentes options de sécurité.

Donc, ma réponse est oui et non. Oui, vous devez y penser dès le début, mais non, vous ne devriez pas coupler vos composants à vos besoins de sécurité. Cela dit, puisque vous savez que vous utiliserez net.tcp, sachez que la sécurité de transport est activée par défaut pour cette liaison. Pour plus d'informations, voir le fantastique Programming WCF Services de Juval Lowy, chapitre 10. Lowy, dans sa bibliothèque ServiceModelEx (discutée en détail dans le livre) fournit un cadre vraiment agréable que vous pouvez brancher après avoir créé vos composants. Même si ce n'est pas exactement ce que vous cherchez, vous pouvez le personnaliser en fonction de vos besoins.

+0

J'ai effectivement lu les services de programmation WCF, mais je n'avais pas encore atteint ce but. Je vais certainement donner à ce chapitre une lecture :) –

+2

Ouais - n'ayez pas peur de simplement plonger dans le chapitre 10. J'ai sauté 7, 8 et 9 pour frapper les trucs de sécurité. C'est très bien écrit. –

3

La sécurité doit être envisagée dès le début, et non ajoutée à la fin. Développez un plan pour votre sécurité et mettez-le en œuvre au fur et à mesure, plutôt qu'à la fin.

Référence: Microsoft .NET: Architecturer Applications pour l'entreprise

http://www.amazon.com/Microsoft ®-NET-architecturer-Applications-PRO-développeur/dp/073562609X

+0

Merci pour votre réponse. Si vous pouviez mettre à jour votre réponse avec quelques références, ce serait génial. –

+0

Fera, je dois rentrer à la maison d'abord. –

2

Vous avez deux choix, faites-le depuis le début ou appliquez-le à la fin. En ce qui concerne la sécurité en général, je dirais que cela ne fonctionne vraiment pas dans le glaçage, alors vous devez faire un gâchis de votre gâteau pour l'obtenir. Cependant, la façon dont je vois votre question est que vous savez déjà que vous devez faire quelque chose pour résoudre un problème de sécurité, vous n'avez simplement pas décidé quoi faire. Dans ce cas, je serais d'accord avec Terry que vous devriez alors concevoir autour d'une abstraction qui vous permet de brancher la solution éventuelle.

Si j'étais vous je ferais probablement un modèle de menace et l'utiliserais pour considérer les entrées et les risques présentés par votre service. Cela vous aidera à décider ce que vous devriez faire et si votre abstraction couvre toutes les bases.

Questions connexes