我目前在IIS网络服务器上设置了kerberos委派。
用户连接到网络服务器上的网站,可以呼叫在Web应用程序中生成SSRS报告。 Web应用程序通过调用SSRS Web服务ReportExecution2005.asmx生成报告,以生成报告并将报告作为pdf二进制数组返回,然后在屏幕上显示。
IIS网站针对使用服务帐户的应用程序池运行。 IIS服务器和服务帐户都受信任以进行委派。
当我在IE中查看网站并请求报告时,一切都很顺利。当我通过Chrome或FireFox拨打同一个电话时,尽管成功发行了kerberos票,但是对SSRS服务器的呼叫失败了,但仍有401。
当我将呼叫发送到SSRS服务时,我尝试将呼叫设置为使用System.Net.CredentialCaceh.DefaultCredentials和System.Net.CredentialCaceh.DefaultNetworkCredentials
有人可以向我解释为什么当浏览器不是IE时kerberos委托会失败吗?
- 更新
我在所有浏览器中访问该网站的初步声明导致Kerberos票证被发现是错误的。只有当我使用IE访问该网站时才会生成票证。 Chrome / Firefox仅解析为NTLM。
- 更新2
我现在已经确定Firefox和Chrome默认情况下都不使用Negotiate协议。为了允许我的网站进行基于kerberos的身份验证,我必须明确声明它是使用about:config区域的两个浏览器的可信站点。
如果其他人遇到同样的问题,请参阅http://blog.webonweboff.com/2010/12/integrated-windows-authentication-and.html