IIS 匿名身份验证帐户与应用程序池帐户

IIS 匿名身份验证帐户与应用程序池帐户

有人能解释一下这两个帐户是做什么用的吗?

我知道应用程序池帐户控制适用于网站的.NET 代码的权限。

如果该帐户对目录没有写权限,那么您就无法创建文件。

但是还有一个帐户 IISUSR,它是用于匿名身份验证的帐户。

这个帐户与.NET 代码和网站访问有何关系?

为什么我们需要 2 个账户?

答案1

IIS_Anonymous 帐户是用户访问网站时使用的帐户。因此,您需要确保此用户无法访问 Web 根目录之外的任何文件以及包含敏感信息(例如 sql 连接字符串等)的文件。您通常不希望允许此用户在任何地方具有写访问权限。

应用程序池帐户是您的应用程序(或 IIS 服务器)在其下运行的帐户。您需要为该帐户提供运行脚本所需的最低限度的访问权限。如果您有安全意识,您将为每个站点创建不同的应用程序池,这样一来,一个站点上的安全配置错误就不会影响到另一个站点。

答案2

Serverfault 上有一个类似的问题:

了解 IUSR_ 帐户

我写:

大多数人很难理解 IIS 的匿名用户(IUSR_...)和用于执行二进制文件的帐户(应用程序池帐户)之间的区别。

IUSR 帐户用于用户未在服务器上进行身份验证的情况,对于“普通”网站而言,这是默认用例。对于内部网站,您可以禁用对 IIS 服务器的匿名访问,并让用户(自动)提交其网络/域凭据。

匿名帐户对文件和文件夹的权限决定了普通 Web 用户可以访问该服务器上的哪些资源(文件)。通常所有(静态)文件都是只读的,并且不允许列出文件夹内容。

应用程序池标识(例如网络服务帐户)有所不同。它是执行脚本或程序集的帐户,即进程标识。例如,如果您的应用程序要写入某个文件夹(例如 C:\temp),则该帐户必须具有修改该文件夹中文件的文件系统权限。

相关内容