构建安全的企业内部WEB程序

类别:.NET开发 点击:0 评论:0 推荐:

构建安全的企业内部WEB程序

 

为了保护企业内部的敏感信息、方便用户管理、确保用户只访问他们应该访问的地方。我一直在寻找最便捷的方法……

查询了一些资料,下述是我个人的一些理解。我们集合IISASP.NET,通过验证(authentication)和授权(authorization)来实现企业WEB程序的安全。客户端对page.aspx的请求是这样发出的:图片无法显示

这里涉及到两个重要的概念,它们定义如下:

验证(Authentication):标识请求页面的用户。( The process of identifying the user who is requesting the page.

授权(Authorization):系统判定用户访问资源的权限。(System determines which resources he or she has access to.)

       第一步,我们需要确定身份验证的类型。(条件1)在企业内部网中,我们已经有了包含所有用户帐号的数据库-活动目录,同时每一个登陆内部网的客户端都使用不同的用户帐号。现存的身份验证有:Windows身份验证、Forms身份验证、Microsoft Passport 身份验证。(条件2)其中Windows身份验证是基于现存的Windows 安全架构,它通过角色(Roles)控制来实现web程序的安全性。(结论)根据上述条件,我们采用基于WindowsWindows-based)的身份验证,我们需在Web.config文件中这样描述:

       <configuration>

              <system.web>

                     <authentication mode=”Windows” />

              </system.web>

       </configuration>

(注意:XML文件是区分大小写的)

 

为了实现Windows身份验证,IIS提供了三种类型:基本验证(Basic)、域服务器简要验证(Digest)、集成Windows验证(Integrated Windows Security)。

(条件1)用户能够登陆到内部网,他就通过了活动目录对他的验证,并拥有一张证书(credential)。当用户请求安全页面时,浏览器就会把证书传送给IIS。(条件2集成Windows验证就是把IIS要求的身份验证预先交由活动目录来完成。(结论)这就是说:采用集成Windows验证方式,用户一登陆内部网就预先通过了IIS对他的验证。所以,我们采用集成Windows验证。

第二步,对要访问的资源授权。对资源进行授权的方式有两种:文件授权(file authorization)和URL授权(URL authorization)。

文件授权基于Windows 2000ACL(Access Control List),它的优点在于通过ACL控制文件和文件夹是非常容易的;它的缺点在于,需要花费时间来管理不同文件/文件夹的ACLs,而且程序迁移时,ACL并不随着文件夹copy and past而迁移。

URL授权是在web.config中对不同的URL或文件夹进行授权。它的优点在于程序迁移方便;缺点是需要在web.config中书写代码。

微软推荐我们采用文件授权的方式,但基于可迁移性考虑,我还是采用了URL授权方式。假设marketing.aspx是只有管理员和营销部(成员都属于marketing用户组)才能访问的页面,fold文件夹下面包含了只有管理员和人事部(假设成员都属于human用户组)才能访问的页面。我们在web.config中这样设置:

<configuration>

       <system.web>

<authorization>

                     <deny users=”?” />        <!--“表示匿名用户à

</authorization>

              </system.web>

       </configuration>

首先,我们拒绝了匿名用户访问我们的web应用程序。接着我们在<configuration>下加入:

       <location path=”marketing.aspx”>

              <system.web>

                     <authorization>

                            <allow roles=”lxm_nt\Domain Admins,lxm_nt\Marketing” />

<!-允许管理员和营销用户组成员访问à

                            <deny users=”*” />                     <!—拒绝其他所有用户à

                     </authorization>

              </system.web>

</location>

为了实现fold文件夹中的页面仅对管理员和人事部成员可见,我们在fold文件夹中添加上一个web.config文件。内容如下:

       <configuration>

              <system.web>

                     <authorization>

                            <allow roles=”lxm_nt\Domain Admins,lxm_nt\human” />

                            <deny users=”*” />

                     </authorization>

              </system.web>

       </configuration>

这里的web.config文件继承了父目录下的web.config文件的设置,并按自己的要求改写了设置。

通过验证和授权这些简单的设置,我们在企业内部网中实现了初步的安全。

本文地址:http://com.8s8s.com/it/it45643.htm