У меня есть приложение wcf, размещенное в службе Windows, которая запускает локальную учетную запись Windows. Нужно ли устанавливать SPN для этой учетной записи? Если да, то какой протокол должен быть установлен SPN? Я знаю, как это сделать для служб через HTTP, но никогда не делал этого для net.tcp.
Какой SPN мне нужно установить для службы net.tcp?
Ответ 1
По умолчанию (т.е. из коробки) службы net.tcp являются незащищенными и вообще не выполняют никакой проверки подлинности. Таким образом, вам не понадобится (и на самом деле не может) установить имя участника службы.
Если вам нужно пройти аутентификацию, проверьте в режим net.tcp security. Лучший способ понять различные комбинации - экспериментировать!
Ответ 2
Измените учетную запись службы на учетную запись AD и зарегистрируйте SPN, как показано. Используйте свое собственное имя службы, например. fooservice
setspn -A fooservice/servermachinename domain\serviceAccountName
setspn -A fooservice/servermachinename.fulqualifieddomainname домен \serviceAccountName
В конфигурации клиента:
<identity>
<serviceprincipalname value="fooservice/servermachinename" />
</identity>