我应该使用IUSRS还是物理路径凭证?

时间:2017-01-06 16:35:02

标签: .net security iis asp.net-web-api2 iis-8

最近,我接受了一个项目,要求我遵循一些我不太习惯的步骤。通常,在使用IIS的Windows Server上设置站点时,我只需要安装IIS,让它自己做,然后从那里开始......但是这个设置有点不同。

环境信息:

  • Windows Server 2012
  • IIS 8.0
  • .NET 4.5 WebAPI 2应用程序

要求:

  • 必须将应用程序安装到" 私有应用程序"夹。此文件夹的权限非常有限,只需要添加任何必要的权限。
  • 应用程序必须在IIS上作为默认网站下的应用程序运行,使用AppPool作为特定于应用程序的域用户:" DOMAIN \ AppUser & #34;

问题:

  • 在初始安装应用程序后,IIS开始抛出401.3错误。跟踪显示这是由" NT AUTHORITY \ IUSRS "无权访问应用程序文件夹(即使告诉apppool在" DOMAIN \ AppUser "下运行)。

发现:

当然,我尝试的第一件事就是添加" NT AUTHORITY \ IUSRS "具有读取/执行/列表权限的文件夹。这一切都有效!不幸的是,这关心我。如果架构师如此关注安全性,他们就会要求我们将内部应用程序安装到这个" 私有应用程序"文件夹,也不允许访问如此广泛的安全问题吗?所以,我决定考虑更多的选择。我最终发现了IIS中的物理路径凭据。我将这些凭据设置为与AppPool用户(已经具有继承到该文件夹​​的访问权限)的凭据相匹配,这也是有效的!

可能的解决方案:

  1. 授予目录IUSRS权限。称之为一天。
  2. - 或 -

    1. 设置物理路径凭据以匹配AppPool凭据。
    2. 问题(S):

      • 如果努力保持服务器及其目录尽可能安全,那么有人能告诉我为什么其中一个可能的解决方案(上面列出的)会比另一个好。
      • 我是否因为担心IUSRS是一种广泛的,盲目的权限而感到偏执?
      • 这些选项中的任何一个都会引起我不知道的反响(假设我是个白痴)吗?

1 个答案:

答案 0 :(得分:0)

您可以使用您设置的IIS应用程序池授予对该文件夹的访问权限。当您在文件夹上设置安全性时,将搜索位置从整个网络更改为本地计算机并搜索“iis apppool \ defaultapppool”并将defaultapppool更改为IIS中的应用程序池名称。您的应用程序池应该只需要读取,文件夹列表和执行。此外,您可能需要在IIS中进行匿名身份验证,然后单击编辑并将其更改为使用应用程序池凭据而不是匿名进行传递。如果您不更改它,它仍将使用IUSRS进行匿名请求。