我们有一个活动目录域(让我们称之为foodomain
)和一个用于IIS应用程序池标识的域用户帐户(foodomain\fooAppPoolUser
)。
我们希望在此用户帐户下运行应用程序池,而不是Network Service
或新AppPoolIdentity
,因为我们必须访问SQL服务器并且在IIS上拥有多个应用程序(具有自己的应用程序池)不同的数据库
问题在于我无法找到明确的HOW-TO解释,必须为此用户帐户设置哪些用户权限以及如何设置IIS以使其正常工作。
首先我遇到了错误(遗憾的是我不记得哪些错误),然后我将fooAppPoolUser
添加到本地管理员组(Administrators
,我知道,只是为了测试),然后它就可以了。现在我再次删除了用户,重新启动了IIS,它仍然有效。
所以我有点困惑,想知道配置/设置如何让它工作。
我读到的Somwhere,该帐户需要“认证后模拟客户端”用户权限。这就是我将帐户添加到Admin组的原因(用户权限分配是通过组策略阻止的,但如果确实需要,这肯定可以更改。
我希望我很清楚问题是什么,并希望有人得到答案。
答案 0 :(得分:5)
令人沮丧的是,这些信息很难找到,因为一些安全管理员似乎喜欢更改默认策略设置以阻止在IIS中安装应用程序的残酷和不寻常的惩罚。
以下是我认为您应该做的事情,以使帐户能够作为ApplicationPool标识使用:
aspnet_regiis -ga DOMAIN\USER
以添加访问IIS元数据库的权限。 (完全这意味着什么,谁知道?)aspnet_regiis reference IIS_IUSRS
组。这可以根据IIS配置设置processmodel.manualGroupMembership自动完成,但最容易自己添加。 Negotiate
),那么根据URL以及是否启用了内核模式身份验证,您可能需要设置SPN。我建议尽可能切换到NTLM。否则,请参阅以下有关SPN的文章,并找到一个友好的域管理员为您添加它们。 有趣的阅读:
答案 1 :(得分:3)
您的应用程序在删除管理员权限后工作的原因是您的应用程序使用管理员权限编译到Framework临时文件夹 - 您的应用程序在删除管理员权限后工作,因为应用程序已编译。如果您更新应用程序并且需要重新编译,则应用程序池帐户将再次需要信任。
首先我得到了错误(不幸的是我不记得哪些错误) 我将fooAppPoolUser添加到本地管理员组(管理员,我 知道,只是为了测试),然后它工作。现在我再次删除了用户, 重新启动IIS,它仍然有效。
答案 2 :(得分:1)
罗,
对于IIS中的配置步骤,我将在TechNet上查看Specify an Identity for an Application Pool (IIS 7)。
答案 3 :(得分:-1)
我发现以下链接回答了我遇到的类似问题:http://www.iis.net/learn/manage/configuring-security/application-pool-identities
基本上, ApplicationPoolIdentity 是一个虚拟用户帐户,其行为仍然像NETWORK SERVICE,但没有一些下行方面;每个应用程序池都有自己创建的ApplicationPoolIdenity帐户。
还可以找到更详细的信息,这些信息也特定于IIS 7.5 Application Pool Identities。