gpt4 book ai didi

sql-server - 与 IIS、Firefox 和 SQL Server 集成 Windows 身份验证

转载 作者:可可西里 更新时间:2023-11-01 12:24:54 25 4
gpt4 key购买 nike

我的本​​地主机上有一个在 IIS 上运行的网站。此网站将目录安全设置为仅允许集成 Windows 身份验证。它是 Intranet 的一部分,需要通过我们的域帐户进行身份验证。

然后我在连接字符串中使用 Integrated Security = SSPI 连接到 SQL Server。

这在 Microsoft Internet Explorer 上运行良好,它会在我登录域时自动对我进行身份验证,我可以看到 logon_user 是我的域帐户,并且 SQL Server 连接字符串工作正常。

但是,当我使用 Firefox 登录时,情况就不同了。

首先,系统提示我进行身份验证,这是正确的,因为 Firefox 没有配置为足够信任本地主机来自动发送凭据(事实上我已经知道如何引入这种信任,这不是问题所在) .然后我登录,这又很好,只要我输入域帐户详细信息,一切都很好。事实上,一两个调试语句显示 logon_user 仍然是我的域帐户,一切都很好。

但是,当我连接到 SQL Server(它在远程服务器上运行,我的域帐户对其具有完全的系统管理员权限)时,出现以下错误:

Microsoft OLE DB Provider for SQL Server (0x80040E4D)
Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.

这向我表明身份验证堆栈中有问题,出于某种原因,当我使用来自 Firefox 的 Windows 身份验证进行身份验证时,IIS 未作为经过身份验证的帐户运行。

这在使用 Google Chrome 时也能正常工作。

有什么建议吗?

最佳答案

AS noted通过 Pontus Gagge , IIS需要传递一个Kerberos SQL Server 的票证。这足以让我的 Google-fu 走向正确的方向。

Firefox 支持 Kerberos,但是,您必须告诉它它信任哪些域才能发送 Kerberos token 。

  1. 打开火狐
  2. 在地址栏中输入:about:config
  3. Firefox3.x 及更高版本要求您同意谨慎行事。
  4. 配置页面加载后,在过滤框中键入:network.negotiate-auth
  5. 双击该行修改 network.negotiate-auth.trusted-uris 并输入 yourdomain.com
  6. 可以通过逗号分隔添加多个域,例如 yourdomain.com、yourotherdomain.com

注意:gbn相同的 solution这只是将 firefox 配置为在登录时不提示您输入域帐户详细信息。

此外,如果您已经尝试在当前 Firefox session 中通过堆栈进行身份验证,则需要重新启动 Firefox 才能生效。

关于sql-server - 与 IIS、Firefox 和 SQL Server 集成 Windows 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/733237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com