我应该为ASP.NET使用什么帐户?

时间:2009-10-19 11:09:23

标签: asp.net security

默认情况下,ASP.NET使用网络服务帐户,这是我应该在生产中使用ASP.NET的帐户吗?与ASP.NET使用的帐户相关的最佳实践是什么?

此致

编辑:如果这有任何区别,我将在Windows 2008服务器上使用ASP.NET

5 个答案:

答案 0 :(得分:4)

对于生产,您应该创建一个只有最低权限的服务帐户才能运行Web应用程序。

Microsoft模式和实践团队就此提供了以下指导:

How To: Create a Service Account for an ASP.NET 2.0 Application

答案 1 :(得分:3)

你会得到很多“它取决于”的答案但不管怎么说这是我的2美分。

考虑密码更改管理,通过妥协造成的潜在损害以及应用程序需求,例如:可信赖的连接。

在大多数情况下,网络服务在这些方面表现最佳。

  1. 它没有密码,永不过期 - 无需更改管理
  2. 它不能用作其他计算机上的交互式登录
  3. 可通过凭证<domain>\<machinename>$
  4. 在受信任的连接和ACL访问其他主机中使用

    当然,您的应用可能有不同的需求 - 但通常我们会尽可能使用网络服务 - 我们运行10,000台机器。

答案 2 :(得分:1)

除非你有其他需要 - 比如要求对SQL Server使用集成身份验证进行数据库连接 - 我会坚持使用默认帐户。它具有比许多其他帐户更少的权限,但启用了运行Web应用程序所需的权限。请注意:我们通常不会对网络服务帐户进行任何权限更改,并且通常会为每个生产应用程序(或一组相关应用程序)启动VM,而不是为每个服务器配置多个应用程序。如果您为每个服务器运行多个应用程序或由于其他原因更改网络服务帐户的权限,您可能需要考虑为每个应用程序使用单独的服务帐户。如果这样做,请确保此服务帐户具有运行ASP.NET应用程序所需的最少权限,并执行所需的任何其他任务。

答案 3 :(得分:0)

您应该使用较少特权的帐户

答案 4 :(得分:0)

1)为每个应用程序创建一个特定的用户帐户

2)创建在此帐户下运行的应用程序池

3)网站应配置为在此应用程序池下运行。

4)在SQL Server中,使用Windows身份验证并为此用户授予数据库权限。

5)在连接字符串中使用此用户(即连接字符串中没有密码)

6)使用此用户根据需要为其他资源分配权限。