這是什麼意思,在高級別上指定一個WCF服務使用Windows身份驗證時的DNS身份?例如:使用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服務?
如果您將應用程序池作爲「網絡服務」運行並在標準HTTP端口上運行服務,則SPN值將自動設置爲Kerberos身份驗證的正確值。如果您使用自定義服務帳戶和/或自定義端口,則需要由域管理員設置新的SPN。加入域的計算機的默認SPN設置是host/server和host/server-fqn。 「主機」服務具有HTTP和別名的別名。 – 2012-01-27 00:44:41