我正在寻找IIS使用的IUSR和IWAM帐户的一个很好的解释,以帮助我更好地configuration我们的托pipe环境:
在将多个站点部署到服务器时,创build您自己的这些帐户版本似乎很常见,这引发了一些额外的问题:
我使用大多数默认configuration的IIS 6和IIS 7。
IUSR和IWAM可以追溯到IIS的早期版本,当您单独安装(而不是OS组件)。 默认情况下,如果网站允许匿名身份validation,则IUSR帐户将用于操作系统的权限。 这可以从默认值改变。 有一些安全build议,至less重命名帐户,所以它不是一个“已知的”帐户,就像有一个build议重命名服务器上的pipe理员帐户。 您可以在MSDN上了解有关IUSR和身份validation的更多信息。
IWAM专为任何进程外应用程序而devise,只有在IIS 5.0隔离模式下才能用于IIS 6.0。 你通常用COM / DCOM对象来看它。
关于应用程序池标识,缺省值是作为networking服务运行。 您不应该以本地系统身份运行,因为该帐户的权限大于pipe理员的权限。 因此,基本上让你到networking服务,本地服务,或这两个以外的本地/域帐户。
至于要做什么,这取决于。 将其作为networking服务的一个好处是这是服务器上的有限权限帐户。 但是,当它通过networking访问资源时,它显示为Domain \ ComputerName $,这意味着您可以分配权限,允许networking服务帐户访问资源,例如在另一个框上运行的SQL Server。 此外,因为它显示为计算机帐户,所以如果启用Kerberos身份validation,则按照服务器名称访问网站时,SPN已经就位。
如果您希望特定帐户访问联网资源(例如访问基于Web的应用程序的SQL Server的服务帐户),则可以考虑将应用程序池更改为特定的Windows域帐户。 在ASP.NET中还有其他选项可以在不改变应用程序池标识的情况下执行此操作,因此这不再是必需的。 您考虑使用域用户帐户的另一个原因是您正在进行Kerberos身份validation,并且您有多个Web服务器为Web应用程序提供服务。 一个很好的例子是如果你有两个或更多的Web服务器提供SQL Server Reporting Services。 前端可能会到一个通用的url,如reports.mydomain.com或reporting.mydomain.com。 在这种情况下,SPN只能应用于AD内的一个帐户。 如果在每台服务器上运行“networking服务”下的应用程序池,那么这将不起作用,因为当它们离开服务器时,它们显示为Domain \ ComputerName $,这意味着您将拥有与服务器应用程序。 解决scheme是创build一个域帐户,将所有服务器上的应用程序池标识设置为相同的域用户帐户,并创build一个SPN,从而允许Kerberos身份validation。 对于像SSRS这样的应用程序,您可能希望将用户凭证传递到后端数据库服务器,那么Kerberos身份validation是必须的,因为那样您将不得不configurationKerberos委派。
我知道这很重要,但简单的答案是,除了本地系统,这取决于。
IUSR =互联网用户,即任何匿名,未经authentication的访问者(即几乎每个人)
IWAM =互联网Web应用程序pipe理器,即您的所有ASP和.NET应用程序将运行在此帐户下
一般来说,IUSR和IWAM只能访问他们所需要的东西。 他们绝不应该被允许访问其他任何东西,如果这些账户被攻破,那么他们不能访问任何关键的东西。
这就是我所能提供的所有问题列表,其他具有更多IISpipe理经验的人也许可以帮助您!
我总是诉诸于这个指南 –
http://learn.iis.net/page.aspx/140/understanding-the-built-in-user-and-group-accounts-in-iis-70/
你可以在iis.net上find很多
简单地说 – IUSR就是默认情况下拥有超过c:\ inetpub \ wwwroot权限的guest虚拟机帐户。