要点 只有在工作进程隔离模式下运行时才能使用这个 IIS 6.0 功能。
应用程序池标识是运行应用程序池的工作进程所使用的帐户名称。默认情况下,应用程序池以“网络服务”帐户身份来进行操作,该帐户拥有低级别的用户访问权限。也就是说,该帐户在攻击者或恶意用户可能试图控制正在运行万维网发布服务(WWW 服务)的计算机时,提供更好的安全性。“本地服务”帐户同样具有低级别访问权限,该帐户适用于那种不需要访问远程计算机上资源的情形。您可以配置应用程序池以“本地系统”方式运行,本地系统是一个比网络服务或本地服务帐户拥有更多用户权限的帐户。但是,要注意在一个具有增强的用户权限的帐户下运行应用程序池意味着较高的安全风险。
例如,假设一个 Internet 服务提供商 (ISP) 要允许客户上载通用网关接口 (CGI) 应用程序并将其加入到应用程序池。以网络服务帐户身份在应用程序池中运行启用 CGI 的应用程序,由于网络服务帐户较低的用户权限,可以降低这些应用程序被用来攻击服务器的风险。
要点 您必须是本地计算机上 Administrators 组的成员或者您必须被委派相应的权限才能执行下列步骤。作为安全最佳操作,请使用不属于 Administrators 组的帐户登录到计算机,然后使用运行方式命令来以管理员身份运行 IIS 管理器。在命令提示符下,键入 runas /user:administrative_accountname "mmc %systemroot%\system32\inetsrv\iis.msc"。
更改运行于应用程序池中的帐户
您可以隔离以不同标识运行在不同工作进程中的网站;但是,如果您还希望使用 Kerberos 身份验证,那么会有一些限制。Kerberos 采用某种服务的概念。要使用 Kerberos 身份验证,某种服务必须注册其名称(称为服务主体名称 (SPN)),以及运行该服务所使用的帐户。默认情况下,Active Directory® 目录服务注册 NetBIOS 或者计算机名,并允许计算机帐户使用 Kerberos。如果要以不同帐户或使用不同名称(例如,如果计算机使用其他的 WINS 或 DNS 名)运行服务,那么您可以使用 Setspn.exe 命令行工具设置 SPN。要设置 SPN,您必须是域管理员。Setspn.exe 命令行实用程序可以在 Windows Server 2003 CD-ROM 内的支持工具包中获得。
如果使用集成 Windows 身份验证并且希望将本地用户帐户或本地服务用作工作进程标识,那么您不能使用 Kerberos 身份验证,因为 Active Directory 不信任这些帐户。在这种情况下,您必须强制 IIS 使用 NTLM 身份验证(也被称作 Windows NT 质询/响应验证)。
下面是使用 Setspn.exe 命令行实用程序的基本语法,其中“accountname”可以是单独的名称,也可以是域\名称。
setspn [parameter] accountname
Setspn.exe 可以使用下列参数:
参数 | 功能 | 示例 |
---|---|---|
-R | 重置 HOST ServicePrincipalName。 | setspn -R computername |
-A | 添加任意的 SPN。 | setspn -A SPN computername |
-D | 删除任意的 SPN。 | setspn -D SPN computername |
-L | 列出已注册的 SPN。 | setspn -L SPN computername |
下面的示例使用 Setspn.exe 命令行实用程序注册以 Domain\UserAccount 运行的应用程序池:
SETSPN.EXE -A HOST/<your computer name> Domain\UserAccount
下面的示例注册 SPN“HOST/daserver1”和“HOST/{DNS of daserver1}”:
setspn -R daserver1
下面的示例为计算机“daserver1”注册 SPN“http/daserver”:
setspn -A http/daserver daserver1
下面的示例从计算机“daserver1”删除 SPN“http/daserver”:
setspn -D http/daserver daserver1
© 1997-2003 Microsoft Corporation。保留所有权利。