windows - IIS:对不在域中的客户端计算机使用 Kerberos

标签 windows internet-explorer iis active-directory kerberos

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

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

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

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

最佳答案

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

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

关于windows - IIS:对不在域中的客户端计算机使用 Kerberos,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14224580/

相关文章:

php - 如何确定文件路径是否是绝对路径?

vb.net - Response.redirect 引发 "Thread was being aborted"

security - IIS中 'Require SSL'的证书与网站绑定(bind)的HTTPS证书有什么关系?

.net - ASP.NET 忘记 bin 目录中的 dll

javascript - 互联网浏览器 : Mixed Content Delivery Warning

windows - 如何弹出 docker windows 容器的提示?

windows - Delphi Firemonkey Cross Platform - 传递 Windows 句柄的通用方法

c++ - 如何在 C++ 和 Windows XP 中更改子网掩码和 DHCP 启用标志

c++ - 将项目添加到 Internet Explorer 的右键单击上下文菜单

jQuery 可以在除 IE 之外的所有平台上工作吗? (用户界面)