2010-08-25 4 views
3

Voici mon scénario, j'ai un service WCF qui est hébergé sur un serveur interne derrière un pare-feu.quel type de sécurité est nécessaire pour WCF

Le client est une application Web résidant sur le serveur Web de la zone démilitarisée. Le pare-feu est ouvert sur un port entre les deux nœuds afin que la connexion puisse être établie entre le client et le serveur.

Quel type de liaison dois-je utiliser pour la sécurité ici. Connaissez-vous un exemple de programme ou de tutoriel? Lorsque je recherche, tout ce que je trouve est l'endroit où le service est utilisé par les clients sur Internet et en utilisant l'authentification Windows ou en demandant un nom d'utilisateur et un mot de passe.

J'ai juste besoin de notre application sur le serveur web pour parler au service web. Toutes les recommandations sont appréciées. Merci!

En outre, mon service Web fonctionne en tant qu'application de console.

+0

Que voulez-vous protéger avec votre sécurité? Trucs bancaires? Messages non autorisés sur un forum? ou quoi? –

+0

C'est l'historique des transactions pour l'utilisateur.Fondamentalement, juste un historique d'achat est tout. Rien de trop risqué, mais quelque chose que nous voulons un peu sécurisé. Fondamentalement, nous ne voulons pas être piratables. – twal

+0

Le service Web s'exécute en tant qu'application de console? Cela ne ressemble pas à une bonne architecture de production. –

Répondre

1

Si vous contrôlez les deux extrémités de la solution (serveur Web (client) dans la DMZ et console (serveur) derrière), pourquoi ne pas opter pour un NetTcpBinding?

  • Il est une liaison spécifique .NET, si vous n'allez pas pour l'interopérabilité (mais puisque vous avez le contrôle des deux extrémités de la communication, il semble comme ce n'est pas un problème).
  • Ses performances sont plus rapides que la liaison WSHttpBinding et les résultats plus petits messages sont transmis.

Il semble que vous n'avez pas besoin des informations d'identification transmises avec le message (en plus d'un ID utilisateur ou un certain type d'identifiant passé dans le message), vous pouvez donc utiliser cette liaison à l'aide TcpClientCredentialType.None.

Here Une bonne description des caractéristiques de sécurité de chaque liaison WCF intégrée. La description de NetTcpBinding est à environ 1/3 de la page.

J'espère que cela aide.

+0

Génial, merci je vais jeter un coup d'oeil à ceci. J'apprécie ton aide! – twal

+0

J'espère que cela fonctionne pour vous. S'il y a d'autres problèmes, ajoutez un commentaire et je mettrai à jour ma réponse en conséquence. Bonne chance! –

+0

Désolé si ce sont des questions bêtes, Quel mode de sécurité est-ce que je voudrais utiliser dans cette situation? Transport? – twal

0

Si vous commencez par ce qui pourrait être attaqué, puis essayez de le protéger. Le 3 obvoius était de l'attaquer sont:

  • Écoutez le trafic entre les serveurs. Utilisez un protocole crypté, par exemple ws-httpbinding avec cryptage des messages. La liaison Nettcp fonctionne également bien ici.
  • Appelez le service WCF directement. Supprimer MEX afin qu'ils ne peuvent pas obtenir la signature de votre service, nécessitent une authentification sur le service. Obtient les informations d'authentification pour le service à partir du serveur Web.
  • Ne stockez pas le nom d'utilisateur et le mot de passe en texte clair dans le fichier de configuration. Par exemple, utilisez le contexte de sécurité du service que vous utilisez.

Cela corrige certaines choses, il y a toujours plus que vous pourriez faire.

Questions connexes