5

不属于域(但在网络上)的计算机是否可以针对 IIS8 发布的网站进行身份验证,其中该站点的身份验证是“Windows 身份验证”,仅使用“Negotiate:Kerberos”的单个提供者(并禁用内核模式身份验证)?

我问是因为我正在尝试这样做,但是我无法通过对站点的身份验证(但仅是尝试将身份验证传递给数据库)。我在对客户端的响应中看到“WWW-Authenticate: Negotiate”标头,但客户端似乎只在后续(重新)请求中发送“NTLM Type1:协商”(NTLMSSP)。要么,要么我错误地解释了 Fiddler2 的结果!

我正在使用 Kerberos,因为大多数客户端都是域计算机,我需要将用户凭据从 Web 应用程序传回数据库。我希望我能够对非域计算机执行相同的操作,并且它们只会被提示输入用户名/域/密码,该用户名/域/密码将被验证并转换为服务器上的 Kerberos 票证。

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

4

1 回答 1

2

Kerberos不能在不属于域的帐户/计算机上工作。您有两种选择来实现您的目标:

  1. 使用 Basic auth 请求用户数据并将其传递给LogonUserEx. 请参阅以获取答案。
  2. 通过其他方式对用户进行身份验证,并使用S4U2self(协议转换)。
于 2013-01-09T08:05:59.597 回答