IIS AppPool 检查域组成员的权限?

Posted

技术标签:

【中文标题】IIS AppPool 检查域组成员的权限?【英文标题】:IIS AppPool Permissions to inspect Domain Group Membership? 【发布时间】:2018-08-20 17:28:02 【问题描述】:

这似乎是一个荒谬的微不足道的问题,但如果我能自己找出答案,那就太糟糕了:给定一个在本地应用程序池身份下运行的 IIS 7.x 或更高版本的应用程序,该身份如何能够检查组成员身份没有固有的网络访问权限的网络?

换句话说,假设我有一个名为“SuperDuperApp”的应用程序,它在名为“SuperDuperApp”的本地 IIS AppPool 身份下运行。我将应用程序的权限定义为包括来自“SomeDomain\SuperDuperAppUsers”的用户。鉴于 IIS AppPool\SuperDuperApp 身份不会具有网络访问权限,它如何能够确定给定域用户是否是“SomeDomain\SuperDuperAppUsers”的成员?

【问题讨论】:

"我定义了应用程序的权限以包括来自...的用户" 如何?不同的方式将在后台调用不同的 Windows API,并且该特定 API 将验证调用者是否有权这样做。由于应用程序池标识是虚拟帐户,docs.microsoft.com/en-us/iis/manage/configuring-security/… 连接到外部资源(如数据库),Windows 自动使用机器帐户代替。 @LexLi 使用 IIS 管理器,我将右键单击一个站点,单击“编辑权限”,然后根据需要在该对话框中添加/删除用户和/或组。 @LexLi 该参考实际上正是我试图找到的。它直接回答了这个问题。如果您想将其发布为答案,我很乐意接受。 【参考方案1】:

从评论中复制,

由于应用程序池标识是虚拟帐户,它们不用于连接外部资源(如数据库)。更多信息可以在Microsoft documentation找到。

在这些情况下,Windows 会自动使用机器帐户。因此,当您配置文件共享或数据库时,请确保机器帐户可以访问它。

【讨论】:

再次感谢。我讨厌这样的微妙之处(我想我早就应该知道了)有时会咬我。 @DavidW 好吧,IIS/Windows 有很多东西记录得很糟糕,所以每个人(包括我)都在学习它:)

以上是关于IIS AppPool 检查域组成员的权限?的主要内容,如果未能解决你的问题,请参考以下文章

新创建的 IIS AppPool 标识的权限集

IIS 7:身份“IIS APPPOOL\DefaultAppPool”没有足够的权限来访问临时目录

IIS7.5 用 IIS AppPool应用程序池名 做账号 将各站点权限分开

IIS AppPool 回收时间使用啥时区/格式?

用户 'IIS APPPOOL***' 登录失败

为啥 IIS 似乎将来自 AppPool 的一个请求的 WindowsIdentity 提升到我的用户帐户?