IIS:将Kerberos用于不在域中的客户端计算机

一台不属于域(但是在networking上)的计算机是否可以通过IIS8发布的网站进行身份validation,其中该网站的身份validation仅与“Negotiate:Kerberos”的单个提供程序“Windows身份validation”(并禁用内核模式身份validation)?

我问,因为我正在尝试做到这一点,但我不能通过身份validation到网站(但单独尝试将身份validation传递到数据库)。 我在客户端的响应中看到了“WWW-Authenticate:Negotiate”标题,但客户端似乎只在随后的(重新)请求中发送“NTLM Type1:Negotiation”(NTLMS Type1:Negotiation)(NTLMSSP)。 无论是我还是不正确地解释Fiddler2的结果!

我正在使用Kerberos,因为大多数客户端将是域计算机,我需要将用户凭据从Web应用程序传递回数据库。 我希望能够对非域名计算机做同样的事情,他们只会被提示input一个用户名/域名/密码,这个用户名/域名/密码将被validation并转换成服务器上的Kerberos票据。

请注意,出于testing目的,Windows 8既是服务器又是客户端。 在生产中,服务器将是Windows 2008 Server R2,客户端将主要是Windows 7(尽pipe会有一些Windows 8客户端)。

Kerberos将不适用于不属于域的帐户/计算机。 你有两个选择来实现你的目标:

  1. 使用基本身份验证请求用户数据并将其传递给LogonUserEx 。 看到这个答案。
  2. 通过其他方式验证用户并使用S4U2self (协议转换)。