2009-12-17 5 views
5

J'essaie de comprendre comment l'authentification/cryptage Windows fonctionne avec NetTcpBinding dans WCF. J'ai besoin de savoir exactement quel algorithme de cryptage est utilisé pour crypter les données qui traversent le réseau (et une documentation pour le prouver). Est-ce que l'authentification/cryptage de Windows fonctionnera toujours si le client et/ou l'hôte ne se trouve pas sur un domaine?Authentification/cryptage Windows dans WCF avec NetTcpBinding

Répondre

6

Le netTcpBinding utilisant Windows Credentials nécessite que l'appelant et le service soient sur le même domaine - ou au moins sur des domaines d'approbation mutuelle. Sinon, le serveur ne pourra pas vérifier les informations d'identification Windows et refusera l'appel de service. En ce qui concerne le cryptage: vous pouvez même choisir celui que vous souhaitez! :-) TripleDES, AES - vous le nommez, avec des longueurs de clé variables, aussi.

Voir l'article Fundamentals of WCF Security - il traite de tous les aspects de la sécurité et du cryptage; voir également les documents MSDN sur Securing Services qui va dans plus de détails; un bon aperçu peut être trouvé here montrant les propriétés de l'élément de sécurité de transport basicHttp.

2

L'année dernière, j'ai dû implémenter un système distribué utilisant wcf qui nécessitait un mécanisme à la fois sûr et performant sur toutes les couches du système. Nous avons décidé de créer notre propre architecture de sécurité en créant un jeton chiffré binaire. Le jeton chiffré contenait toutes les autorisations d'un utilisateur donné. Ainsi, par exemple, un utilisateur se connecterait au système et, s'il était authentifié avec succès, il recevrait un jeton chiffré. Ce jeton a été stocké localement sur le client Web. Toutes les autres demandes de l'utilisateur contiendraient ce jeton. Le jeton a été utilisé dans plusieurs niveaux de l'architecture. Le serveur Web l'utiliserait pour décider quels éléments visuels activer ou désactiver. Comme la couche de service était exposée à Internet, chaque porte ouverte vérifiait l'authentification du jeton et vérifiait si ce jeton avait l'autorisation appropriée pour exécuter une tâche donnée. La couche de gestion pourrait vérifier à nouveau pour un droit plus spécifique inclus dans le jeton.

Les avantages:

  • Il n'a pas d'importance si nous utilisions NetTcpBinding ou tout autre type de reliure (et nous avons utilisé plus d'un type de reliure).
  • Nous avons économisé beaucoup d'allers-retours à la base de données
  • Nous pourrions utiliser le même ordre d'idées sur différentes plates-formes

Je sais que cela ne répond pas probablement à vos questions, mais il vous donnera peut-être quelques-uns pour réfléchir à l'architecture intra-couche de votre système.

+0

Cela semble vraiment intéressant. Avez-vous des exemples ou des références que vous pourriez m'indiquer pour mettre en œuvre ceci? Les données de connexion initiales ont-elles été cryptées? (nom d'utilisateur et mot de passe) – Lewray

Questions connexes