THE*_*ike 15 windows sql-server authentication iis firefox
我在我的localhost上有一个在IIS上运行的网站.此网站的目录安全性设置为仅允许集成Windows身份验证.它是Intranet的一部分,需要通过我们的域帐户进行身份验证.
然后,我在连接字符串中使用Integrated Security = SSPI连接到SQL Server.
这适用于Microsoft Internet Explorer,当我登录到域时它会自动验证我,我可以看到logon_user是我的域帐户,SQL Server连接字符串工作得很好.
但是,当我使用Firefox登录时,情况就不同了.
首先,我被提示进行身份验证,这很好并且正确,因为Firefox未配置为足以信任localhost足以自动发送凭据(事实上,我知道如何引入此信任,这不是问题).我然后登录,再次没问题,只要我输入域名帐户详细信息一切正常.实际上,一个或两个调试语句显示logon_user仍然是我的域帐户,一切都很好.
但是,当我连接到SQL Server(在远程服务器上运行,我的域帐户具有完全sysadmin权限)时,我收到以下错误:
Microsoft OLE DB Provider for SQL Server (0x80040E4D)
Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.
Run Code Online (Sandbox Code Playgroud)
这向我表明身份验证堆栈中存在问题,出于某种原因,当我使用来自firefox的Windows身份验证进行身份验证时,IIS未作为经过身份验证的帐户运行.
使用谷歌浏览器时也可以正常使用.
有什么建议?
THE*_*ike 28
AS 指出由庞Gagge,IIS需要一个传递的Kerberos票据到SQL Server.这足以让我的谷歌向正确的方向倾斜.
Firefox支持Kerberos,但是,您必须告诉它它信任哪些域来发送Kerberos令牌.
注意:这是不一样的GBN的解决方案刚刚配置的Firefox不提示您在登录时输入域帐户的详细信息.
此外,如果您已经尝试在当前的Firefox会话中通过堆栈进行身份验证,则需要重新启动Firefox才能使其正常工作.
我还为Intranet站点使用IEtab附加组件
IIS需要将Kerberos票证传递给SQL Server才能使此方案正常工作.MSIE正在拿起工作站会话票,而Firefox正在协商自己的身份验证(而不是Kerberos).
查看这篇密集的博客文章,作为了解所需内容的起点.我不确定FF是否支持MS-Kerberos.
请注意,如果您的版本或信任配置错误,即使获得MSIE-> IIS-> SQL Server身份验证也很棘手...