繁体   English   中英

IIS7 Windows 2008服务器上的经典ASP模拟问题

[英]Classic ASP Impersonation problem on IIS7 Windows 2008 server

我试图从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记录匿名登录尝试)。

知道是什么原因引起的吗?

亲切的问候,西蒙

听起来像你对模仿有点困惑。 该过程不会模拟域用户帐户,只是作为该用户运行。 它们是有区别的。

当请求到达ASP时,它将模拟用户,处理请求的线程将在模拟用户的安全令牌下运行。 很有可能在多个线程中模拟多个不同用户的相同进程。 在启用匿名用户访问的大多数情况下,此用户是访客级别IUSR帐户。 最有可能的是,在此用户下,您的代码正在尝试并且无法运行。

但是,如果为正在访问的资源关闭匿名或者IUSR帐户无权访问该资源,则会返回a 401响应,并指示它将接受哪些身份验证协议。 然后,浏览器可以尝试使用当前用户凭证来认证连接,或者请求来自用户的一些凭证。

您没有准确指定尝试保存文件的方式。 值得指出的是几件事。

  1. ASP代码执行可能随后导致访问被拒绝将不会使用上述机制来尝试解析用户。
  2. 一旦连接被认证,它通常继续被重新用于后续请求(这对于HTTP是“无连接”协议的知识是反直觉的)。

我遇到了同样的问题,结果发现它是对应用程序池的一个简单改动。 如果启用32位应用程序设置为FALSE,则我收到登录计算机的提示。 将此值设置为true可解决此问题。

我正在努力清理以前的问题。 这个答案不足以回答上面的问题,但我得出的结论是,提供一些洞察力比没有洞察力更好。 如果op不同意,请采取必要的行动。

这是回归 - 但我记得想在这个应用程序上运行kerberos身份验证。 问题原来是我试图在防火墙外做kerberos。 该应用程序可以在服务器主域的域和防火墙内正常工作,但无论何时来自外部的请求都会失败。

我和微软的一位爱尔兰技术人员进行了很多聊天,他教我一些使用Kerberos时的局限性。 我想使用Kerberos的原因是我不喜欢基本Windows身份验证未加密的想法。

祝你的Kerberos任务好运:-)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM