2010-01-12 3 views
2

Est-il possible d'envoyer à la fois le jeton de nom d'utilisateur et le jeton Kerberos via HTTP avec WCF?Modes d'authentification mixtes: envoyer à la fois le jeton Kerberos et le jeton de nom d'utilisateur via HTTP avec WCF

Nous sommes en mesure d'utiliser la liaison personnalisée avec le mode d'authentification défini sur 'UserNameOverTransport', qui inclura un jeton de nom d'utilisateur dans l'en-tête SOAP conformément à la norme de sécurité des services Web OASIS.

Vous pouvez également définir le mode d'authentification sur 'KerberosOverTransport', qui inclura un jeton Kerberos dans l'en-tête SOAP.

Toutefois, le service que nous essayons de communiquer nécessite d'authentifier l'utilisation du token kerberos &. Cela ne semble pas possible avec les modes d'authentification existants.

+0

est le service que vous essayez de communiquer avec un service WCF? Je pensais qu'un point de terminaison unique ne pouvait avoir qu'un seul mode d'authentification. – kd7

+0

Non, nous interagissons avec les services Web utilisant JBoss ESB. –

Répondre

0

Le jeton (qui est un jeton Kerberos) contient en fait le nom d'utilisateur. Donc, si vous avez besoin de communiquer avec un service qui nécessite les deux, alors vous voudrez utiliser KerberosOverTransport. Vous devrez ensuite passer le jeton au constructor of WindowsIdentity which asks for an IntPtr.

Une fois que vous l'avez construit, vous pouvez accéder au nom d'utilisateur via le name property. Un morceau de code qui est presque ce dont vous avez besoin (sans l'enregistrement en bits) peuvent être trouvés ici:

http://kseesharp.blogspot.com/2009/04/c-create-windowsidentity-from-userid.html

Questions connexes