目前,我们所有的网络应用都将其应用池标识设置为 ApplicationPoolIdentity 。现在,当应用程序需要访问某些服务器上的某些资源时,比如添加/读取某个文件,该应用程序会在代码中对有权执行此操作的用户执行模拟。但现在,我们正在考虑为每个应用创建一个特定用户,并将其应用池标识设置为其特定的新用户。但我注意到Microsoft建议在高级设置对话框中使用应用程序池标识,如下图所示:
为什么Microsoft建议使用此身份,并且使用特定用户不是最佳做法或错误的举动?
感谢,
ashilon
答案 0 :(得分:1)
ApplicationPoolIdentity使用名为Virtual Accounts的概念 实现了App Pool隔离。This博客解释道 详细说明。
ApplicationPoolIdentity是在IIS7 +之后在每个网站/应用程序池之间进行适当隔离的推荐方法。因此,您可以为一个网站或应用程序运行代码或文件,而其他任何人都无法访问。
但是对于您需要访问其他服务器上的资源的场景,当您使用ApplicationPoolIdentity时,它始终只使用计算机标识。所以最好的方法是使用托管服务帐户
托管服务帐户是管理服务的好方法 需要网络访问。让Windows负责密码和SPN 为你
但这有问题,因为只有一个托管服务帐户可以分配给一个Server.Even具有应用程序池标识,它将使用$ machineaccount访问网络资源。
如果您必须为每个网站/应用程序隔离网络资源,那么您只能为每个网站创建单独的用户帐户并进行管理。
希望这有帮助!