2008-09-23 4 views
1

Je construis une fonctionnalité de routage entre les services. Le service d'origine et le service qui effectue le routage ont une configuration identique; les deux utilisent netTcpBinding avec la configuration de liaison suivante:Sécurité des messages de routage WCF

netTcpBinding

mode de sécurité = "Message"

un message clientCredentialType = "UserName"

Le comportement de service utilise un abonnement réSEAU Fournisseur et un certificat client que nous avons installé sur la machine.

Quand j'éteins la sécurité des messages relaie très bien, mais quand il est allumé je reçois l'exception suivante:.

« Le message n'a pas pu être traité Ceci est probablement parce que l'action « http://foo/Whatever » est incorrect ou parce que le message contient un jeton de contexte de sécurité non valide ou expiré ou parce qu'il existe une incompatibilité entre les liaisons *. Le jeton de contexte de sécurité ne serait pas valide si le service interrompait le canal en raison de l'inactivité. augmentez le délai de réception sur la liaison du point de terminaison du service. " (Emphasis mine)

Je pense que le certificat fonctionne sur le message deux fois (une fois sur l'appel d'origine puis sur le relais) et c'est ce qui corrompt le jeton de sécurité du message.

Questions:

  1. Est-ce ma façon de penser sur la cible? Y at-il un moyen de continuer à utiliser la sécurité des messages pour le routage sans avoir la complexité d'un service de jeton?

+0

Deux questions - 1. Avez-vous besoin de sécurité au niveau du service de routeur? en un sens, l'idée de la sécurité des messages est qu'elle permet au routage etc. de travailler sur le message sans avoir à le déchiffrer. 2.Est-ce que l'erreur que vous obtenez au service de routeur? les deux services partagent-ils le même certificat de service? –

Répondre

1

Vous avez mentionné la commutation entre aucune sécurité et la sécurité des messages. Assurez-vous de modifier à la fois les points de terminaison du service WCF ainsi que le point de terminaison du côté réception? Si non, et les deux ne correspondent pas, vous recevrez une erreur. C'est ce que cette erreur semble me dire.

Pour la question 2, quel type d'environnement utilisez-vous? Un système fermé où vous pouvez utiliser crypter et signer, ou un environnement public, où vous pourriez avoir besoin d'utiliser une clé spéciale?

Questions connexes