使用计算机帐户(DOMAIN \ MACHINENAME $)从IIS7.5连接到SQL Server 2008+的安全问题/风险

我正在与一组工程师进行.NET 4 / MVC 3开发,在本地使用Windows 7 Enterprise和IIS 7.5,并连接到MSSQL 2008+开发/testing数据库。 这些数据库是远程的,但仍在相同的Active Directory环境中。

我们当前的设置需要我们的本地开发环境作为我们的个人帐户(例如DOMAIN\Paul )连接到SQL,我们通过将应用程序池的凭据设置为与我们用来login到工作站的凭据相同。 在数据库服务器上,我们已经configuration了一个组(例如DOMAIN\EngineerGroup ),它具有对我们的开发/testing数据库的适当访问。 这似乎工作得很好,除了每次更改我们的密码时不得不在IIS中更新我们的凭据带来的不便之处。 (我们的企业/团体政策强制要求我们定期更改密码。)

我想知道是否有任何安全风险或与使用内置的ApplicationPoolIdentity帐户相关的其他问题。 我已经通过创build与DOMAIN\MYMACHINE$相对应的新SQLlogin并授予它与DOMAIN\EngineerGroup相同的访问权限,从而在独立环境中工作。 我的build议是创build一个新的Active Directory组,例如DOMAIN\EngineerWorkstationGroup ,其成员是每个工程师的工作站(而不是每个工程师的用户帐户),并授予对新组的相同访问权限。

理想情况下,我正在寻找一些合理的权威文章或文档(大概来自微软),详细说明了这些MACHINENAME$账户如何获得保护,它们可能与用户帐户有什么不同,以及它们使用会给我们带来什么(如果有的话) 。 到目前为止,我发现的最好的资源是关于iis.net的文章。 我已经尝试了许多search,并没有真正发现任何其他讨论使用不同的AD帐户types的权衡。

提前致谢!

PS我们也考虑过使用一个中央域帐户(例如,创build一个像DOMAIN\EngineerAppPool这样的帐户,并且每个人都从该帐户的IIS连接到SQL),但是我认为这使得审计和分析更加困难。

我相信这是一个奇怪的解决scheme,一个共同的authenticationscheme。 通常所做的是让客户端使用自己的用户/密码进行身份validation,然后使用模拟来访问数据库。 要启用此function,您必须使用信任来委派和双重Kerberos身份validation(不支持NTLM)

这样,应用程序池可以作为机器帐户或服务帐户运行。 用户使用他们的用户/通行证进行身份validation(单点login)。 然后,应用程序池的机器帐户或服务帐户将被信任,以在访问数据库时作为用户进行模拟。

然而,你将不得不对你的应用程序进行更改才能使其工作。