【发布时间】:2017-01-06 16:35:01
【问题描述】:
最近,我接到了一个项目,需要我遵循一些我不太习惯的步骤。通常,当在带有 IIS 的 Windows Server 上设置站点时,我会安装 IIS,让它完成它的工作,然后从那里开始……但是,这种设置有点不同。
环境信息:
- Windows Server 2012
- IIS 8.0
- .NET 4.5 WebAPI 2 应用程序
要求:
- 应用程序必须安装到“私人应用程序”文件夹中。此文件夹的权限非常有限,几乎所有必要的权限都必须以独占方式添加。
- 应用程序必须在 IIS 上作为 默认网站 下的应用程序运行,使用 AppPool 作为应用程序特定的域用户:“DOMAIN\AppUser”
问题:
- 初始安装应用程序后,IIS 开始抛出 401.3 错误。跟踪显示,这特别是由于“NT AUTHORITY\IUSRS”无法访问应用程序文件夹(即使应用程序池被告知在“DOMAIN\AppUser”下运行) em>")。
发现:
当然,我尝试的第一件事是将“NT AUTHORITY\IUSRS”添加到具有读取/执行/列表权限的文件夹中。这让一切正常工作!不幸的是,这让我很担心。如果架构师非常关注安全性以至于他们要求我们将内部应用程序安装到这个“Private Applications”文件夹中,那么授予对如此广泛的东西的访问权限就不会成为安全问题, 也?所以,我决定研究更多的选择。我最终发现了 IIS 中的物理路径凭据。我将这些凭据设置为与 AppPool 用户的凭据相匹配(该用户已经具有继承到该文件夹的访问权限)并且这也有效!
可能的解决方案:
- 授予对目录的 IUSRS 权限。收工。
- 或 -
- 设置物理路径凭据以匹配 AppPool 凭据。
问题:
- 如果努力保持服务器及其目录尽可能安全,谁能告诉我为什么其中一种可能的解决方案(上面列出的)会比另一种更好?
- 我是否只是偏执地担心 IUSRS 是一种广泛、盲目的权限授予?
- 这些选项是否会带来我不知道的影响(假设我是个白痴)?
【问题讨论】:
标签: .net security iis asp.net-web-api2 iis-8