views:

292

answers:

1

In one of our networks we are utilizing the netTCPBinding. The WCF service hosted in windows service that run as a domain account.

From the event viewer I can see that my WCF service uses Kerberos authentication. Everything works seamlessly "out-of-the-box" with simple default configuration without an <identity> element in the configuration file and without any SPN setting for the machine like:

setspn -a WcfServiceName//Server domaonAccount

But from the multiple online references I concluded that SPN setting is necessary Its not clear, why in my case it works without those settings?

Looking forward for an explanation from WCF-Security experts.

A: 

Per the WCF Security Guidance: netTcpBinding : Specifies a secure, reliable, optimized binding suitable for cross-machine communication. By default, it generates a runtime communication stack with transport security and Windows authentication as default security settings. It uses TCP protocol for message delivery, and binary message encoding.

In essence, its secure by default, callers must provide Windows creds for authentication.

RandomNoob
Thank you you for the reply. Unfortunately I've read many references that stated opposite.Take for instance this: http://mastermynd-code.blogspot.com/2009/06/service-principal-name-when-using-wcf.htmlwhich says ".. In order to use the WCF NetTcpBinding with a Windows Service, it is necessary to create a SPN."
ablei2000
You say it is "..secure by default" and I can see that. But the system still execute Kerberos calls in spite of the "default secure" transport. The reason I'm asking is that in our internal network it works with no SPN setting. But the same application with the same configuration fails on our client's network, when trying to make Kerboros authentication. It works though with Ntlm + basicHttpbinding... but we would like to stay with tcp.
ablei2000