我很感激有关以下问题的任何提示:
问题摘要:
在IIS 7.5中使用Negotiate:Kerberos时,授权正常工作,直到我们设置URL重写(使用MS模块“URL Rewrite 2.0”) - 任何重写的URL然后返回“401.1 Unathorized”(请求不匹配任何重写规则)继续工作)。
设置:
网址重写2.0
服务器位于域
身份验证提供程序仅设置为“协商:Kerberos”(无NTLM或匿名)
网址重写规则为“^(。*)/ $”=> “索引?X = {R1}”
结果:
1)当访问任何不匹配任何URL重写模式的URL时,Kerberos正常工作,即发出Kerberos票证(使用klist验证),发送(使用netmon和HTTP头验证)并接受(通过URL验证可访问和适当的AUTH_USER属性设置为我的域帐户名称)=>没问题。
2)访问任何匹配URL重写模式的URL时,例如“hostname / foo”的结果是:
HTTP Error 401.1 - Unauthorized
You do not have permission to view this directory or page using the credentials that you supplied.
Module WindowsAuthenticationModule
Notification AuthenticateRequest
Error Code 0x80070055
Requested URL http://hostname/index?x=foo
Physical Path D:\wwwroot\
Logon Method Not yet determined
Logon User Not yet determined
(如果我们尝试直接访问重写的URL,例如hostname / index?x = foo,Kerberos会再次正常工作)
到目前为止尝试解决这个问题:
谷歌搜索后,我们尝试了几种选择:
结论:
到目前为止,我们已经达到了死胡同 - 它可能是一种奇怪的“双跃点”问题,需要使用自定义域帐户而不是默认的应用程序池标识,但是因为我们实际上访问的是相同的资源,所以看起来更像是一个URL Rewrite问题。
任何提示,提示,指示?任何事都会受到高度赞赏。
祝你好运, 马立克
答案 0 :(得分:1)
我们面临与您相同的问题。通过启用扩展错误记录,我们能够指出实际问题,这似乎是重写模块中的错误(或者至少在IIS的某些部分,与模块有关):
我们(当前项目中的另一个人)正在向Microsoft发送此问题。当我得到任何结果时,我会通知你。
答案 1 :(得分:0)
好像你在这里有多个问题。
要修复丢失的日志问题,必须确保运行站点的AppllicationPool的用户具有对生成这些日志的文件夹的读取/修改权限,否则您将看不到任何内容。请参阅此页面上标记为“启用失败请求跟踪”的部分:Troubleshoot Failed Requests Using Tracing in IIS 7
不清楚的是,网站的应用程序池标识(在应用程序池的高级设置中找到)是需要对该文件夹的读/修改权限的帐户。
修复后,您可以在IE中加载XML日志,并查看更清晰的情况。
对401错误的可能解决方法是确保在请求筛选中允许使用未列出的文件扩展名。转到IIS - >网站 - > [您的网站] - >请求过滤
这里有两个选项:
第一个选项应该运行良好,第二个选项显然会打开一个大洞,但允许一切,所以你应该能够让它工作。
我希望有所帮助。