【发布时间】:2011-01-06 18:49:10
【问题描述】:
我们有一个第 3 方产品,它允许我们的一些用户通过单独服务器 (SvrWeb) 上的网站来操作数据库中的数据(在我们将称为 SvrSQL 的东西上)。
在 SvrWeb 上,我们为此应用程序有一个特定的、非默认的网站设置,因此我们使用 http://application.company.com 解析为 SvrWeb 并且主机标头解析为正确的网站,而不是转到 http://SvrWeb.company.com 来访问该网站.
还为此站点设置了一个特定的应用程序池,它使用我们称为“company\SrvWeb_iis”的 Active Directory 帐户身份。我们设置为允许对该帐户进行委派,并允许它模拟我们希望它执行的另一个登录。 (我们希望此帐户将登录网站的人的 AD 凭据传递给 SQL Server,而不是服务帐户。
我们还通过以下命令为 SrvWeb_iis 帐户设置了 SPN: setspn -A HTTP/SrvWeb.company.com SrvWeb_iis
网站拉起,但调用数据库的网站部分返回消息: 无法执行数据库查询。 用户“NT AUTHORITY\ANONYMOUS LOGON”登录失败。
我以为我们正确设置了 SPN 信息,但是当我检查 SrvWeb 上的安全事件日志时,我看到了我的登录条目,但它似乎使用的是 NTLM 而不是 kerberos:
Logon Type: 3
Logon Process: NtLmSsp
Authentication Package: NTLM
非常感谢任何详细介绍此设置的想法或文章!
如果有帮助,我们使用的是 SQL Server 2005,并且 Web 和 SQL 服务器都是 Windows 2003。
【问题讨论】:
-
您是否为 Web 应用程序设置了集成 Windows 身份验证?
-
是的,先生,它只使用集成身份验证。让我澄清一下,它正在为网站使用集成身份验证,我认为应用程序池不会为您提供更改此选项的选项吗?
-
我希望我能更多地了解我们的设置。
-
是的,这是一个挑战。我已经设置了在 SQL 安装之后需要设置 SPN 的链接服务器,但 IIS 路径对我来说是另一只野兽。从好的方面来说,我们可能已经发现了问题,如果/一旦我们确认,我会发布修复。
-
您是否在 SQL Server 上正确设置了 SPN?
标签: sql-server iis kerberos