我们最近发布了最新版本的 Intranet 应用程序,该应用程序现在使用 Windows 身份验证作为标准,并且需要能够使用最终用户的域凭据连接到已配置的 SQL 服务器。
最近我们发现,在一些客户部署中,尽管 IIS 可以看到用户的域凭据,但它不会将这些凭据传递到 SQL Server。相反,它似乎使用匿名帐户。尽管遵循了所有正确的步骤(将目录安全性更改为 Win Auth、更新 Web.Config 以使用 Win Auth 并拒绝匿名用户),情况还是如此。
我已经做了很多阅读,表明我们需要确保 Kerberos 就位,但我不确定 (a) 这有多有效(即它真的是一个要求吗?)或 (b) 如何着手调查它是否已设置或如何设置。
我们面临的情况是,我们需要能够配置 IIS 或应用程序以供客户使用,或者向客户准确解释他们需要做什么才能使其正常工作。
我们已经成功地通过一个测试 SQL 服务器和一个开发人员的 IIS 盒子在我们的内部网络上重现了这个问题,所以我们将搞乱这个设置,看看我们是否能想出一个解决方案,但如果有人有的话好主意,我很高兴听到它们!
我特别想听听人们对 Kerberos 的想法或建议。这是一个要求吗?如果是,我如何向客户概述应如何配置?
哦,我还看到有几个人提到了域的“经典一跳规则”以及传递 Windows 凭据,但我不知道这实际上有多大影响?
Thanks!
Matt
这被称为双跳问题并禁止将用户的凭据转发给第三方。当他们从一台计算机浏览另一台计算机(第一跃点)上的站点并将凭据转发到第三台计算机(第二跃点)时,就会发生这种情况。
如果您将 IIS 和 SQL Server 安装在同一台计算机上,则不会出现此问题。
有更多关于此的技术细节发布在如何在 ASP.NET 中使用 System.DirectoryServices 命名空间,它解释了双跳问题以及主要和次要令牌。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)