.net 具有Windows身份验证的DNS标识类型意味着什么?

.net 具有Windows身份验证的DNS标识类型意味着什么?,.net,wcf,wcf-security,.net,Wcf,Wcf Security,在较高级别上,为WCF服务使用Windows身份验证时指定DNS标识意味着什么?例如: <configuration> <system.serviceModel> <bindings> <wsHttpBinding> <binding name="WSHttpBinding_ICalculator_Windows"> <security> <message c

在较高级别上,为WCF服务使用Windows身份验证时指定DNS标识意味着什么?例如:

<configuration>
<system.serviceModel>
  <bindings>
    <wsHttpBinding>
      <binding name="WSHttpBinding_ICalculator_Windows">
        <security>
          <message clientCredentialType="Windows"/>
        </security>
      </binding>
    </wsHttpBinding>
  </bindings>
  <client>
    <endpoint address="http://localhost:8003/servicemodelsamples/service/dnsidentity"
      binding="wsHttpBinding"
      bindingConfiguration="WSHttpBinding_ICalculator_Windows"
      contract="ICalculator"
      name="WSHttpBinding_ICalculator">
      <identity>
        <dns value="contoso.com" />
      </identity>
    </endpoint>
  </client>
</system.serviceModel>
</configuration>

说:

在这种情况下,当客户端收到服务的Windows(Kerberos)凭据时,它希望该值为contoso.com

我真的不明白。该服务的凭据的值如何为contoso.com?证书是什么意思


它是否也验证服务的实际DNS名称确实是contoso.com?否则,如何防止有人编写一个声称其身份是contoso.com的恶意WCF服务?

如果我没有弄错的话,
contoso.com
用于解析Kerberos的SPN。查找的SPN将是http/contoso.com:8003。此SPN将在Active Directory中映射到服务帐户。Kerberos票证将使用服务帐户的凭据进行加密。

如果我没有弄错的话,
contoso.com
用于解析Kerberos的SPN。查找的SPN将是http/contoso.com:8003。此SPN将在Active Directory中映射到服务帐户。Kerberos票证将使用服务帐户的凭据进行加密。

我意识到这是一个老问题,但我发现在带有windows transport的tcp绑定的自托管服务中,客户端似乎不遵守SpnIdentity设置,而只遵守DnsIdentity设置。查看此处:了解更多信息和/或评论。

我意识到这是一个老问题,但我发现在带有windows transport的tcp绑定的自托管服务中,客户端似乎不尊重SPNIDNITY设置,只尊重DNSIDNITY设置。检查此处:了解更多信息和/或注释。

如果您以
网络服务运行应用程序池,并在标准HTTP端口上运行服务,则SPN值将自动正确设置为Kerberos身份验证。如果您使用自定义服务帐户和/或自定义端口,则需要由域管理员设置新的SPN。加入域的计算机的默认SPN设置为主机/服务器和主机/服务器fqn。
主机
服务具有http和其他服务的别名。如果您以
网络服务
运行应用程序池,并在标准http端口上运行服务,则SPN值将自动正确设置为Kerberos身份验证。如果您使用自定义服务帐户和/或自定义端口,则需要由域管理员设置新的SPN。加入域的计算机的默认SPN设置为主机/服务器和主机/服务器fqn。
主机
服务具有http和其他服务的别名。