2

目前,我们所有的网络应用程序都将其应用程序池标识设置为ApplicationPoolIdentity。现在,当应用程序需要访问某些服务器上的某些资源时,例如添加/读取某个文件,该应用程序会在代码中对有权执行此操作的用户执行模拟。但是现在,我们正在考虑为每个应用程序创建一个特定的用户,并将其应用程序池标识设置为其特定的新用户。但我在高级设置对话框中注意到微软建议使用应用程序池标识,如下图所示:

在此处输入图像描述
为什么 Microsoft 建议使用此身份,并且使用特定用户不是最佳做法或错误举措?

谢谢,
阿希隆

4

1 回答 1

1

ApplicationPoolIdentity 使用了一个名为Virtual Accounts的概念 ,并被实现为具有 App Pool 隔离。博客对此进行了详细解释。

ApplicationPoolIdentity 是在 IIS7+ 及以后的每个网站/应用程序池之间进行适当隔离的推荐方法。因此,您可以为一个网站或应用程序运行代码或文件,而其他人无法访问。

但是对于您需要访问另一台服务器上的资源的场景,当您使用 ApplicationPoolIdentity 时,它始终只使用机器身份。所以最好的方法是使用托管服务帐户

托管服务帐户是管理需要网络访问的服务的好方法。让 Windows 为您处理密码和 SPN

请在这里找到更多信息,这里

但这有问题,因为只能将一个托管服务帐户分配给一台服务器。即使具有应用程序池身份,它也会使用 $machineaccount 访问网络资源。

如果您必须为每个网站/应用程序隔离网络资源,那么您为每个网站创建单独的用户帐户并进行管理的唯一方法。

希望这可以帮助!

于 2017-08-02T08:46:59.347 回答