6

我们有一个活动目录域(我们称之为)和一个用于 IIS 应用程序池标识 foodomain的域用户帐户( )。foodomain\fooAppPoolUser

我们希望在此用户帐户下运行应用程序池,而不是在Network Service新用户帐户下运行,AppPoolIdentity因为我们必须访问 SQL 服务器,并且 IIS 上有多个应用程序(具有自己的应用程序池)访问不同的数据库。

问题是我找不到明确的 HOW-TO 解释,必须为此用户帐户设置哪些用户权限以及如何设置 IIS 才能使其正常工作。

首先我得到了错误(不幸的是我不记得哪些错误),然后我添加fooAppPoolUser到本地管理员组(Administrators我知道,只是为了测试),然后它工作了。现在我再次删除了用户,重新启动了 IIS,它仍然可以工作。

所以我有点困惑,想知道如何配置/设置才能让它工作。

在我读到的地方,该帐户需要具有“在身份验证后模拟客户端”用户权限。这就是我将帐户添加到 Admin 组的原因(用户权限分配被组策略阻止,但如果确实需要,这肯定可以更改。

我希望我足够清楚问题是什么,并希望有人有答案。

4

4 回答 4

8

令人沮丧的是,很难找到这些信息,因为一些安全管理员似乎喜欢更改默认策略设置以阻止在 IIS 中安装应用程序的残酷和不寻常的惩罚。

以下是我认为您应该执行的操作,以使帐户能够作为 ApplicationPool 身份工作:

  • 运行aspnet_regiis -ga DOMAIN\USER以添加访问 IIS 元数据库的权限。(这到底是什么意思,谁知道呢?)aspnet_regiis 参考
  • 将用户添加到IIS_IUSRS组。这可以根据 IIS 配置设置 processmodel.manualGroupMembership 自动完成,但最容易自己添加。
  • 如果安全策略使用的是 Windows 默认值,那就是这样。如果安全策略被锁定,您可能需要为该帐户启用特定用户权限。ApplicationPoolIdentities 默认拥有的那些(这似乎是一个很好的起点,但不一定都是必需的):
    • 从网络访问这台计算机
    • 调整进程的内存配额
    • 允许本地登录
    • Bypass traverse checking
    • Generate security audit details
    • Impersonate a client after authentication - (Often not available by default on locked-down environments)
    • Log on as a batch job - (Often not available by default on locked-down environments)
    • Log on as a service - (I'm not sure this is needed)
    • Replace a process level token
  • If you're using windows auth and Kerberos (provider=Negotiate) then depending on the URL and if kernel-mode auth is on you might need to set up an SPN. I suggest switching to NTLM if possible. Otherwise, see articles below about SPNs and find a friendly domain admin to add them for you.

Fun reading:

于 2016-01-06T00:01:30.863 回答
4

您的应用程序在删除管理员权限后工作的原因是您的应用程序使用管理员权限编译到框架临时文件夹 - 您的应用程序在删除管理员权限后工作,因为应用程序已编译。如果您更新应用程序并且需要重新编译,则应用程序池帐户将再次需要信任。

首先我遇到了错误(不幸的是我不记得哪些错误),然后我将 fooAppPoolUser 添加到本地管理员组(我知道管理员只是为了测试),然后它就起作用了。现在我再次删除了用户,重新启动了 IIS,它仍然可以工作。

于 2013-02-17T07:20:44.637 回答
1

阿尔杰,

对于 IIS 中的配置步骤,我将查看TechNet 上的为应用程序池 (IIS 7) 指定标识。

于 2012-02-15T23:54:49.510 回答
-1

我发现以下链接回答了我遇到的类似问题: http ://www.iis.net/learn/manage/configuring-security/application-pool-identities

基本上,ApplicationPoolIdentity是一个虚拟用户帐户,其行为仍类似于 NETWORK SERVICE,但没有一些缺点;每个应用程序池都有自己创建的 ApplicationPoolIdenity 帐户。

还可以找到更多特定于IIS 7.5 Application Pool Identities的详细信息。

于 2013-01-04T00:15:24.997 回答