2011-03-23 86 views
0

主办我有一个asp.net网站,在IIS 7.5与ASP.NET面临的问题在IIS和Windows身份验证

该网站有使用Windows身份验证托管。用户被添加到AD组。 AD用户组完全控制网站发布的Web文件夹。 Server/IIS_IUSRS也可以完全控制Web文件夹。

网站需要使用的数据存储在另一台服务器上。 AD组完全控制存储数据的文件夹。 我正在使用经典模式,因为Integrated可以打破它。

什么应该是网站身份验证和APP池设置?

回答

1

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

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

  • 建立一个单独的应用程序池的 应用
  • 配置应用程序池运行为 服务帐户
  • 服务帐户添加到 IIS_WPG组的服务器上
  • 确保IIS_WPG组具有读取,读取 执行&,列出文件夹的网站 目录,读取和列出文件夹目录 到C 目录权限:\ WINDOWS \ TEMP文件夹 (或同等学历)。
  • 授予用户权限“调整内存 配额的过程”,“替换 进程级令牌”和“登录为 服务”服务帐户
+0

感谢您的回复。这是否意味着任何输入网站URL的人都能够自动登录?我只希望属于某个用户组的用户访问该网站。 – InfoLearner 2011-03-23 20:51:04

+0

您仍然可以通过任何适当的方式确保访问网站。您不必担心试图让用户访问后端资源。在我工作的大多数应用程序中,我们都有一个授权管理系统。该应用程序将Windows用户标识和其他一些信息传递给安全插件,并以每个用户允许的内容做出响应。类似的事情可以使用安全组来完成。 – Rozwel 2011-03-24 11:33:06

1

别把IIS autorization和ASP.NET autorization:

IIS autorization

  • IP/DNS地址限制
  • Web权限(读,写,脚本资源访问...)
  • NTFS权限(非ASP.NET ISAPI扩展只:热媒,.JPG ...)

ASP。NET autorization

  • 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"/>);不喜欢这一个

+0

(((System.Security.Principal.WindowsIdentity)User.Identity).Impersonate();)我必须在Global.asax或每个方法中只执行一次吗?另外你为什么不喜欢在web.config模拟? – InfoLearner 2011-03-24 00:16:58

+0

冒充整个站点可能会带来自动化/委派/安全问题,同时伪装一段代码会隔离特定的安全需求和行为。 – JoeBilly 2011-03-24 17:14:14