2009-04-21 4 views
1

L'environnement est une application basée sur un service interne fonctionnant dans un environnement Windows avec WCF.En-tête SOAP avec l'identité du client final

  • Il existe plusieurs applications Web ASP.NET « niveau intermédiaire » et les services Web qui authentifient le client final en utilisant l'authentification Windows, et utiliser les rôles ASP.NET pour définir Thread.CurrentPrincipal à un RolePrincipal approprié. Ces applications s'exécutent chacune sous leur propre compte de service, qui est un compte de domaine, et sont considérées comme des sous-systèmes de confiance.

  • Certains services Web WCF dorsaux auxquels seuls ces applications «de niveau intermédiaire» fiables peuvent accéder. Ils utilisent l'authentification Windows pour limiter l'accès aux comptes de service utilisés par ces applications.

Nous avons maintenant une exigence pour les services de back-end pour vérifier l'identité du client final dont l'appel à l'application de niveau intermédiaire donné lieu à l'appel au service back-end.

Pour éviter toute modification d'application, je pensais écrire un comportement de point de terminaison qui insère un en-tête SOAP avec l'identité du client final dans la requête envoyée au service principal. Notez que les applications de niveau intermédiaire sont approuvées, donc aucune authentification de cet en-tête SOAP n'est requise. Il m'est apparu que cette exigence n'est peut-être pas unique, alors avant que j'invente mon propre SOAP Header à cet effet, j'ai pensé que je demanderais s'il existe des normes dans ce domaine, je pourrais réutiliser?

Répondre

0

On dirait que vous êtes après WCF Impersonation, consultez la MSDN Link ou Google ce terme de recherche pour plus d'informations. Je ne l'ai jamais utilisé moi-même, donc je ne peux pas conseiller complètement, mais j'espère que c'est ce que vous recherchez. Bonne chance

Edit: La WCF OperationContext porte pas par l'identité de la deuxième phase? (OperationContext.Current.ServiceSecurityContext.PrimaryIdentity.Name)

+0

Non, je ne suis pas après l'usurpation d'identité. L'application de niveau intermédiaire est un sous-système de confiance qui fonctionne sous son identité propre: Je ne veux pas usurper l'identité de son client - juste pour transférer des informations sur le client dans un en-tête SOAP. Je peux facilement le faire moi-même avec un en-tête SOAP personnalisé, mais je me demandais s'il y avait un standard. Toutes mes excuses, – Joe

+0

pas sûr des normes, bien que je suis sur le chemin d'en-tête de savon personnalisé moi-même, donc si vous avez des questions avec qui me le faire savoir. – Tanner

Questions connexes