【问题标题】:Facing problem with ASP.NET hosted in IIS and Windows Authentication面临托管在 IIS 和 Windows 身份验证中的 ASP.NET 问题
【发布时间】:2011-03-25 01:16:11
【问题描述】:

我有一个托管在 IIS 7.5 中的 asp.net 网站

网站必须使用 Windows 身份验证。用户被添加到 AD 组。 AD 用户组对发布网站的 web 文件夹具有完全控制权。 Server/IIS_IUSRS 也可以完全控制 web 文件夹。

网站需要使用的数据存储在另一台服务器中。 AD 组对存储数据的文件夹具有完全控制权。 我使用的是经典模式,因为集成会破坏它。

网站认证和APP Pool设置应该是什么?

【问题讨论】:

    标签: c# asp.net iis


    【解决方案1】:

    我个人喜欢将应用程序池身份设置为 AD 服务帐户,然后允许应用程序使用这些凭据访问数据库和其他资源。无需在连接字符串上传递凭据或尝试模拟用户(编辑:应注意这适用于使用 Windows 集成安全性的资源)。也无需尝试让用户直接访问数据存储或其他资源,只需要应用程序凭据即可访问。初始设置有点麻烦,但从长远来看更容易管理。

    当我要求他们为我建立一个新站点时,我发送给我们的服务器组的清单如下:(注意这是基于 Win Serv2003 和 IIS 6,在较新的版本中情况可能会有所不同。)

    • 为 应用
    • 将应用程序池配置为作为 服务帐号
    • 将服务帐户添加到 服务器上的 IIS_WPG 组
    • 确保 IIS_WPG 组已读取, 读取和执行,列出文件夹 网站的内容权限 目录和读取和列出文件夹 C:\Windows\Temp 的内容 文件夹(或等效文件夹)。
    • 授予用户权限“调整内存 进程的配额”、“替换 进程级别令牌”和“登录为 服务”到服务帐户

    【讨论】:

    • 感谢您的回复。这是否意味着任何输入网站 URL 的人都可以自动登录?我只希望属于某个用户组的用户能够访问该网站。
    • 您仍然可以通过任何适当的方式保护对网站的访问。您不必担心试图让用户访问后端资源。在我开发的大多数应用程序中,我们都有一个与之相关的授权管理系统。该应用程序将 Windows 用户 ID 和其他一些信息传递到安全插件中,并以允许每个用户执行的操作进行响应。使用安全组可以完成类似的事情。
    【解决方案2】:

    不要混淆 IIS 自动化和 ASP.NET 自动化:

    IIS 自动化

    • IP/DNS 地址限制
    • Web 权限(读取、写入、脚本源访问...)
    • NTFS 权限(仅限非 ASP.NET ISAPI 扩展:.htm、.jpg...)

    ASP.NET 自动化

    • URL 授权(<authorization> 元素)
    • 文件授权(仅限 ASP.NET ISAPI 扩展:.aspx、.ascx...)
    • 主要权限(要求)
    • .NET 角色

    限制访问您的网络:

    • 取消选中匿名访问
    • 配置 NTFS 权限

    允许访问您的数据文件夹,一些解决方案:

    • 为您的应用程序池使用服务帐户,在您的文件夹中允许它并在您的应用程序中管理访问控制
    • 在访问数据文件夹时,使用默认的 IIS 7 ASP.NET 帐户,并在代码中本地 impersonate 用户

      System.Security.Principal.WindowsImpersonationContext 模拟上下文; impersonationContext = ((System.Security.Principal.WindowsIdentity)User.Identity).Impersonate();

      //插入你在下面运行的代码 身份验证的安全上下文 用户在这里。

      impersonationContext.Undo();

    • 全局激活impersonation (<identity impersonate="true"/>);不喜欢这个

    【讨论】:

    • (((System.Security.Principal.WindowsIdentity)User.Identity).Impersonate();) 我必须在 Global.asax 或每种方法中只做一次吗?另外,您为什么不喜欢在 web.config 中进行模拟?
    • 冒充整个站点会带来自动化/授权/安全问题,而冒充一段代码会隔离特定的安全需求和行为。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-15
    • 1970-01-01
    • 2021-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多