当SQL Server在另一台服务器上时IIS 7.5 ApplicationPoolidentity

有人能build议在下面的情况下为Web服务设置应用程序池标识的最佳实践

IIS7.5

  1. Web服务需要对SQL数据库的读/写权限
  2. IIS和SQL在不同的服务器上,但在同一个域上

如果使用ApplicationPoolIdentity \ $作为SQL用户添加,是否会将我们的服务器暴露给任何特定的安全风险,而不是添加新的域用户,并将此用户分配为应用程序池标识并赋予用户对SQL数据库的权限?

IIS6

相同的情况,而是使用NetworkService内置用户作为应用程序池标识。 同样,这是否暴露我们的服务器到任何特定的安全风险,而不是添加一个新的域用户?

谢谢

对于远程SQL服务器使用AppPool Identity本质上意味着您要给AD计算机帐户以便Web服务器访问SQL数据库。 因此,在计算机帐户的上下文中运行在Web服务器上的其他内容可以访问SQL服务器。 在安全性方面,你可能做得更糟,但是明确定义的域帐户肯定是更好的,因为你可以确保使用它的唯一代码是你的网站。

如果pipe理基于域的帐户(及其必需的密码)太麻烦,并且您的Web服务器在2008 R2或Win7上运行,则可以使用托pipe服务帐户 ,该帐户基本上为您提供AppPool Identity的可pipe理性好处域帐户的安全性。

我还没有亲自获得玩pipe理服务帐户的机会。 所以我不确定TechNet文档是否有缺陷或警告。 但是如果你有足够的时间和你的环境满足所有的要求,这是值得的。 他们绝对不会在你的IIS6盒子上工作。

使用应用程序池标识更安全: –

1 – 将用户能力限制在本地而不是networking或域,所以由用户运行的任何进程都不允许在任何networking资源上运行,因为它不是域\用户名(更安全的域)

2 – 允许此应用程序文件夹的NTFS权限只允许更多的Web应用程序的安全性(更多本地安全)

3我不同意瑞安:用户帐户=计算机\机器帐户=组只是SIDauthentication和授权=>域成员计算机也在AD中的Kerberos主体,这意味着域控制器有一个关联的帐户密码哈希他们可以使用在线时validation计算机的身份。 该密码与计算机帐户对象相关联

微软表示:随着越来越多的Windows系统服务开始作为networking服务运行,随着时间的推移问题不断出现。 这是因为作为networking服务运行的服务可以篡改在相同身份下运行的其他服务。 由于IIS工作进程默认运行第三方代码(传统ASP,ASP.NET,PHP代码),因此是时候将IIS工作进程与其他Windows系统服务隔离开来,并以唯一身份运行IIS工作进程。 Windows操作系统提供了一个称为“虚拟帐户”的function,允许IIS为其每个应用程序池创build唯一标识。