在我们的一个网络中,我们正在使用 netTCPBinding。托管在作为域帐户运行的 Windows 服务中的 WCF 服务。
从事件查看器中,我可以看到我的 WCF 服务使用 Kerberos 身份验证。使用简单的默认配置,无需 <identity>
,一切都可以“开箱即用”无缝运行配置文件中的元素,并且没有任何机器的 SPN 设置,例如:
setspn -a WcfServiceName//Server domaonAccount
但是从多个在线引用资料中我得出的结论是 SPN 设置是必要的
目前尚不清楚,为什么在我的情况下它可以在没有这些设置的情况下工作?
期待 WCF-Security 专家的解释。
最佳答案
根据 WCF 安全指南:
netTcpBinding :指定一个安全、可靠、优化的绑定(bind),适用于
跨机通信。默认情况下,它会生成一个运行时
具有传输安全性的通信堆栈和
Windows 身份验证作为默认安全设置。它用
用于消息传递的 TCP 协议(protocol)和二进制消息
编码。
本质上,默认情况下它是安全的,调用者必须提供 Windows 凭据进行身份验证。
关于WCF - 为什么 netTCPBinding 可以在没有任何 SPN 设置的情况下与 Kerberos 身份验证一起正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2208275/