【问题标题】:Application pool identity or Impersonation应用程序池身份或模拟
【发布时间】:2011-08-15 04:11:46
【问题描述】:

(已向before 提出了类似的问题,但问题和接受的答案均未提供我正在寻找的细节)

为了在专用域帐户下运行 asmx Web 服务,使用场景和/或利弊是什么? em> 使用具有域帐户身份的应用程序池与模拟?

我们有 3 个在相对较低负载下运行的小型内部 Web 服务,我们希望将它们切换为在自己的域帐户下运行(为了与 SQL Server 等集成安全性)。我似乎可以选择为每个应用程序创建专用应用程序池,或者为所有应用程序创建一个应用程序池并在每个应用程序中使用模拟。

我了解应用程序池提供工作进程隔离,并且在使用模拟时需要考虑性能,但除了这些之外,还有什么会决定正确的选项?

【问题讨论】:

  • 使用应用程序池标识可能会比模拟更少人感到惊讶。

标签: asp.net iis asmx impersonation integrated-security


【解决方案1】:

通常,您将为工作进程选择不同的身份(或进行 ASP.NET 模拟),因为需要访问需要特定权限的本地/网络资源。明显的缺点是您的应用程序代码运行的权限可能超出其可能需要的权限,从而增加了抵御恶意攻击的漏洞。

ASP.NET 模拟会产生更多开销,因为需要为每个请求切换用户上下文。我会建议使用单独的应用程序池方法 - 应用程序池方法的唯一缺点是每个进程都有进程,因此每个进程都会有开销(从操作系统的角度来看)。如果您的应用程序较小并且没有强大的内存需求,那么这应该不是问题,

【讨论】:

    【解决方案2】:

    如果您希望您的 Web 服务通过 Windows 身份验证连接到 SQL,您几乎肯定会希望使用专用应用程序池选项设置每个应用程序。这需要最少的设置和管理。

    如果您走模拟路线,则需要考虑“两跳”问题。当用户调用使用模拟的 Web 服务时,该 Web 服务可以作为该用户访问 本地 资源。但是,如果 Web 服务尝试连接到非本地资源(例如,运行在单独服务器上的数据库),结果将是身份验证错误。原因是 NTLM 会阻止您的凭据进行多次“跳跃”。要解决此问题,您需要使用 Kerberos 委派。委派的设置并不难,但它确实需要域管理员权限,这在某些公司环境中可能会使事情变得困难。

    此外,使用模拟意味着您需要为可能访问您的 Web 服务的每个用户管理数据库权限。数据库角色和 AD 组的组合将大大简化此操作,但这是您可能不希望执行的额外管理步骤。这也是一个可能的安全风险,因为某些用户最终可能会获得超出您的网络服务预期的权限。

    【讨论】:

      【解决方案3】:

      当您需要与基于 Windows 安全性的其他 Windows 服务的共同最终用户体验时,模拟非常有用。

      例如,Microsoft SharePoint 服务器使用模拟,因为您可以使用 Web 浏览器访问 SharePoint 文档库使用标准 Windows 共享 UI(连接/断开网络共享,基于 SMB协议)。为确保两者之间的安全性一致,在这种情况下,您需要模拟。

      除了这种情况,模拟在大多数情况下是没有用的(但在可扩展性方面可能会花费很多)

      【讨论】:

        【解决方案4】:

        应用程序池专家:

        您不必成为 .Net 程序员也能理解正在发生的事情。

        安全方面离开了程序员的领域,属于基础设施的职权范围

        通过 IIS 轻松更改设置应用程序池时,通过适当的安全检查用户名是否正确。 IE。它不会让您输入错误的用户名。

        模仿专家:

        1. 如果配置文件存储在那里,则可以通过源代码控制历史记录对配置的更改进行记录和追溯。

        假冒的缺点:

        1. 要更改用户,您需要熟悉.Net 配置,而不仅仅是建立一个网站

        我不确定我还能想出什么。

        我的直觉告诉我要为每个网站使用不同的应用程序池,但这是你的聚会。

        【讨论】:

          【解决方案5】:

          我建议您查看以下页面以了解安全详情...

          https://www.attosol.com/sample-aspx-page-to-show-security-details-in-asp-net/

          完成此操作后,您将“准确地”看到模仿如何改变身份。

          【讨论】:

          • 链接不再有效,我认为这是您要链接的页面(希望此链接能持续)link
          猜你喜欢
          • 2011-06-30
          • 1970-01-01
          • 2023-03-17
          • 2016-07-21
          • 2020-11-16
          • 2013-03-20
          • 2020-09-28
          • 2011-05-07
          • 1970-01-01
          相关资源
          最近更新 更多