6

I have a wcf application hosted in a windows service running a local windows account. Do I need to set an SPN for this account? If so, what's the protocol the SPN needs to be set under? I know how to do this for services over HTTP, but have never done it for net.tcp.

Johnno Nolan
  • 29,228
  • 19
  • 111
  • 160
Esteban Araya
  • 29,284
  • 24
  • 107
  • 141

2 Answers2

6

Change the service account to an AD account and register the SPN's as shown. Use your own service name e.g. fooservice

setspn -A fooservice/servermachinename domain\serviceAccountName
setspn -A fooservice/servermachinename.fullyqualifieddomainname domain\serviceAccountName

In the client config set:

<identity>
    <serviceprincipalname value="fooservice/servermachinename" />
</identity>
Tim M.
  • 53,671
  • 14
  • 120
  • 163
softveda
  • 10,858
  • 6
  • 42
  • 50
3

By default (i.e. out of the box) net.tcp services are unsecured and don't perform any authentication at all. So you won't need (and in fact can't) set a service principal name.

If you need to authenticate, then check the net.tcp security modes on MSDN. The best way to understand the different combinations is to experiment!

Jeremy McGee
  • 24,842
  • 10
  • 63
  • 95