应用程序池标识需要什么权限来管理其他应用程序池?

应用程序池标识需要什么权限来管理其他应用程序池?

我有一个网站(用于管理我们软件的各个部分),需要启动/停止其他应用程序池所需的权限。

我已经创建了一个用户并将应用程序池标识设置为自定义,但是 Web 应用程序仍然无法启动/停止应用程序池。我收到以下错误:

System.UnauthorizedAccessException: Filename: redirection.config
Error: Cannot read configuration file due to insufficient permissions
   at Microsoft.Web.Administration.Interop.AppHostWritableAdminManager.GetAdminSection(String bstrSectionName, String bstrSectionPath)
   at Microsoft.Web.Administration.Configuration.GetSectionInternal(ConfigurationSection section, String sectionPath, String locationPath)
   at Microsoft.Web.Administration.ServerManager.get_ApplicationPoolsSection()
   at Microsoft.Web.Administration.ServerManager.get_ApplicationPools()

讨论这里建议将应用程序池设置为本地系统或管理员,这确实有效,但出于安全原因我不想这样做(外部支持需要访问此站点)。

我确实给了用户更高的权限(正如这里建议的那样),首先将其设为本地管理员组的一部分,但最初这不起作用,并且授予用户对 C:\Windows\System32\inetsrv\config 的读/写/修改权限也不起作用。我一定是做错了什么,因为本地管理员现在可以工作了,但这仍然不是我想要的。

那么有人可以建议我需要向该用户添加哪些权限,以及如何应用它们吗?

回答我的问题(但问题不同)在这儿但需要澄清的是,我认为我需要授予单个用户“IIS 运行时操作权限”,有人知道如何执行此操作吗,如果这确实是我需要的权限?

答案1

如果您尝试允许他们回收应用程序池或执行任何运行时操作(启动、停止、查询状态等),那么您需要成为管理员组的一部分。这是因为 RSCA API 受到保护,仅允许管理员组成员使用。

正如链接问题所建议的,您可以使用 ACL 配置文件(和目录,甚至加密密钥)来读取/写入配置,但要允许运行时访问,您需要修改我们的 RSCA api 的 DCOM 权限。

我可能会建议你通过在运行所需代码之前仅模拟管理员帐户来保护网站中需要此操作的操作。你还可以考虑实施 Gatekeeper 模式,其中高权限操作仅在以管理员身份运行的一个应用程序中公开,并且该应用程序受到保护,只能从已知和有限的 IP 地址访问,并需要强身份验证,然后你从另一个管理站点调用这些操作。

相关内容