我正在尝试从IIS7(webadmin)上的Windows 2008 serer上运行的经典asp站点写入服务器(web05)上的文件。这会失败,web05会在保存操作过程中记录匿名登录尝试。
Webadmin的网站以经典模式在应用程序池上运行,域用户作为进程帐户。进程帐户具有“信任此用户以委派任何服务(仅限Kerberos)”的权限。这同样适用于web05和webadmin服务器。
该网站正在使用Windows身份验证,我的想法是,当我使用我的域用户登录该网站时,我的用户权限应该定义我在IIS站点的上下文中可以执行的操作。如果我打开基本身份验证,一切正常。
我还使用setspn.exe为URL添加SPN。如果我输入setspn.exe -L webadmin,我会得到:
HTTP/webadmin.companyname.com
TERMSRV/webadmin
TERMSRV/webadmin.companypub.local
HOST/webadmin
HOST/webadmin.companypub.local
据我了解,SPN设置正确。
如果我在执行保存操作时在webadmin上运行processmonitor,它会说该进程确实冒充我的域用户 - 但是获得“拒绝访问”(正如我之前所说,web05记录匿名登录尝试)。 / p>
知道是什么原因引起的吗?
亲切的问候, 西蒙
答案 0 :(得分:4)
听起来我觉得你对模仿有点困惑。该过程不会模拟域用户帐户,只是作为该用户运行。有区别。
当请求到达ASP时,它将模拟用户,处理请求的线程将在模拟用户的安全令牌下运行。很有可能在多个线程中模拟多个不同用户的相同进程。在启用匿名用户访问的大多数情况下,此用户是访客级别IUSR
帐户。最有可能的是,在此用户下,您的代码正在尝试并且无法运行。
但是,如果为正在访问的资源关闭了匿名,或者IUSR
帐户无法访问该资源,则会发回401响应,并指示它将接受哪些身份验证协议。然后,浏览器可以尝试使用当前用户凭证来验证连接,或者请求来自用户的一些凭证。
您没有准确指定尝试保存文件的方式。值得指出的是几件事。
答案 1 :(得分:0)
我正在努力清理以前的问题。这个答案不足以回答上面的问题,但我得出的结论是,提供一些洞察力比没有洞察力更好。如果不同意,请采取必要的行动。
这是回归的方式 - 但我记得想在这个应用程序上运行kerberos身份验证。问题原来是我试图在防火墙外做kerberos。该应用程序可以在服务器主域的域和防火墙内正常工作,但无论何时来自外部的请求都会失败。
我和微软的一名爱尔兰技术人员进行了很多聊天,他教我一些使用Kerberos时的局限性。我想使用Kerberos的原因是我不喜欢基本Windows身份验证未加密的想法。
祝你的Kerberos任务好运:-)
答案 2 :(得分:0)
我遇到了同样的问题,结果发现这是对应用程序池的一个简单改动。如果启用32位应用程序设置为FALSE,则我收到登录计算机的提示。将此值设置为true可修复此问题。