我应该使用哪个用户帐户进行Intranet Web应用程序服务?

我写了一个web应用程序在Windows(XP,7,2008等)上运行,而不是使用MS工具(python / django / nginx,尽pipe它不应该)。 要运行应用程序,我创build了一个安装并运行正常的Windows服务

但是,应用程序将在安全性很重要的环境中运行。 默认情况下,服务安装在Local System帐户下运行,我知道这个帐户是完全控制计算机的。 听起来不是一个好主意。

我也见过使用Network Service但描述往往谈论域名等。 这个应用程序使用networking,并在Windows上运行,但不会说“Windows”,如果有的话。 它是自包含的,并将其数据保存在“通用应用程序数据文件夹”中,即...\All Users\Application Data

我应该使用Network Service吗? 我应该创build自己的帐户吗? 在UNIX上,我会,但不知道在Windows上的“陷阱”。 将更容易使用现有的帐户。

既然你来自Unix背景,你应该习惯于在非特权环境下运行。 许多Windows开发人员不具备这种背景,因此,我们在Windows生态系统中有很多需要特权的服务。 我很高兴听到您质疑以“LocalSystem”身份运行的必要性。

作为一个有安全意识的Windows系统pipe理员,我宁愿所有的服务都在非特权用户帐户下运行,无论是本地服务器运行的服务器计算机,还是如果服务绝对需要通过Microsoftnetworking访问其他机器上的资源,域帐户。

我个人不喜欢任何“本地服务” , “networking服务”等,因为他们不是用户帐户,我可以专门控制的参数。 值得注意的 ,“本地服务”总是访问具有空会话(匿名凭证)的远程计算机,并且行为不能与正常的用户帐户重复。 不过,我更喜欢一个明确指定的非特权用户来“本地服务”,但“本地服务”也是一个完全合理的select。 如果你编写的代码是作为“本地服务”工作的话,它也应该可以像没有特权的用户那样工作,除非你在“本地服务”上写了一些显式的依赖关系。