| 加入收藏| 设为首页| 联系我们

首页 站长学习 站长之家 源码下载 建站素材 书籍教程 常用工具
 您现在的位置: 动力中国 >> 网络编程 >> ASP.NET教程 >> 文章正文  
 [注意]ASP.NET应用程序资源访问安全模型
 

ASP.NET应用程序资源访问安全模型

http://www.domcn.org  文章来源:本站原创  点击数:

  关键字:ASP.NET应用程序资源访问安全模型

 

摘要:本文主要介绍了ASP.NET WEB应用程序的安全模型的种类、对比其优缺点,提出了选择的机制。


关键字:安全模型 受信任子模型 模拟/委托子模型 ASP.NET WEB应用


1.前言
    ASP.NET WEB应用程序通常属于多层体系结构,一般从逻辑结构上可以分为表示层、业务逻辑层和数据访问层;客户端要访问应用程序资源,其身份认证和授权必然要跨越多个层次。本文主要讨论SP.NET应用程序的资源访问安全模型

2. 资源访问标识
    WEB应用程序对外提供的给客户端的典型资源包括:

Web服务器资源,如Web页、Web服务和静态资源(HTML页和图像)。
数据库资源,如针对每个用户的数据或是应用程序级数据。
网络资源,如远程文件系统资源等。
系统资源,如注册表、事件日志和配置文件等。
    客户端跨越应用程序的层来访问这些资源,要有一个标识流经各个层。这个用于资源访问的标识包括:

原始调用者的标识 原始调用者的标识被获取并且随后流经系统的每个层。
 
进程标识 本地资源访问和下游调用是使用当前进程标识进行的。这种方式的可行性依赖于要跨越的边界,因为进程标识必须能被目标系统识别。这需要以下面两种方式之一进行调用:
在同一个Windows安全域中
跨Windows安全域-使用信任和域账户,或者在不存在信任关系的情况下使用重复的用户名和密码。
服务账户 这种方式使用一个(固定的)服务账户。例如
对于数据库访问,该服务账户可能由连接到数据库的一个组件表示固定的SQL用户名和密码。
当需要固定的Windows标识时,应使用Enterprise Services服务器应用程序。
自定义标识 当没有Windows账户可用时,可以使用Iprincipal和Iidentity实现构造自己的标识,可以包含安全上下文有关的详细信息。
3. 资源访问模型
3.1 受信任子系统模型
    如图1所示,在这种模型中,原始调用者的安全上下文并不在操作系统级流经服务,而是在中间服务层使用了一个固定标识来访问下游的服务和资源。受信任子系统模型得名于这样一个事实:下游服务(可能是一个数据库)信任上游服务,让其调用者进行授权。图1中的示例,数据库信任中间层对调用者进行的授权,并只允许被授权的调用者使用受信任标识访问数据库。
3.1.1 资源访问模式
    在受信任子系统模型中,资源访问模式如下:

对用户进行验证
将用户映射为角色
根据角色成员关系进行授权
使用一个固定的受信任标识访问下游资源
3.1.2 固定标识
    用于访问下游系统合资源管理器的固定标识,可以使用进程标识,也可以使用一个预先设定的Windows账户-服务账户来提供。对于SQL Server资源管理器,这意味着对SQL Server的Windows身份验证。
    使用进程标识时通常使用ASP.NET进程标识(默认识ASPNET账户)。实际应用时,经常需要将ASPNET账户更改为一个更为安全的密码,并在SQL Server计算机上镜像创建一个与ASP.NET进程帐户相匹配的Windows账户。具体方法如下:
    编辑位于%windr%\Microsoft.NET\Framework\v1.1.4322\CONFIG目录下的Machine.config文件,将<processModel>元素上的密码属性重新配置,将其默认值<!-UserName=machine password=AutoGenerate -->改为<!-UserName=machine password=NewPassword -->;或是通过ASPNET_setreg.exe工具,将用户名和密码保存到注册表,配置改为:<!-enable=true UserName=Registry:HKLM\SOFTWARE\YourAPP\processsModel\ASPNET_SETREG,userName password= Registry:HKLM\SOFTWARE\YourAPP\processsModel\ASPNET_SETREG,password -->
    另外一些应用程序使用指定的SQL账户(在连接字符串中由用户名和密码指定)来访问SQL Server。在这种情况下,数据库必须配置为SQL身份验证。在配置文件中保存的连接字符串需要加密保护。


3.2 模拟/委托模型
    如图2所示,使用模拟/委托模型时,一个服务或组件(通常位于逻辑业务服务层中)在访问下一个下游服务前,使用操作系统模拟功能来模拟客户端标识。如果该服务位于同一计算机上,则使用模拟就足够了,如果下游服务位于远程计算机则还需要使用委托,下游资源访问的安全上下文是客户端的上下文。

3.3 选择资源访问模型
    两种资源访问模型的比较如表一所示。
  受信任子系统模型 模拟/委托模型
审核功能 后端信任上层服务,若中间层受侵害,后端资源易受攻击。 后端服务可以对每个调用者进行验证、授权,安全性好。
可伸缩性 支持连接池,伸缩性好。 不支持连接池,伸缩性差。
后端ACL管理 ACL针对单个实体进行配置,管理工作少。 每个用户都要被授予相应的访问级别,后端资源和用户数增大时,管理工作繁琐。
技术问题 不用委托。 需要委托。大多数安全服务提供程序不支持委托。

    在大多数Internet应用程序以及大型intranet应用程序中都会使用受信任子系统模型,这主要是由于这种模型能很好的支持可伸缩性。模拟/委托模型则倾向于用于小型的系统。对于这些应用程序,可伸缩性不是主要的考虑因素,其主要考虑的因素是审核。


ASP.NET应用程序资源访问安全模型
  • 上一篇文章:

  • 下一篇文章:
  •  热门文章
    普通文章 电子邮件改头换面 四公司畅谈未
    普通文章 PC病毒史上最声名狼藉的八大病
    普通文章 Rails系统中的AJAX开发技术简析
    普通文章 基于ASP.NET AJAX框架实现表单
    普通文章 开发ASP.NET AJAX客户端定制行
    普通文章 用JFreeChart对JSP报表进行增强
    普通文章 SQL Server 2005上的CLR和ADO.
    普通文章 SQL Server 2005的XML支持机制
    普通文章 Firefox中标签式浏览技巧大全
    普通文章 Tomcat中的Session和Cookie大揭
     
     推荐文章
    推荐文章 把Google地图嵌入网页 就是这么
    推荐文章 迅雷搜索候选资源出错的解决
    推荐文章 轻松去除迅雷里的各种广告和资
    推荐文章 突破限制 免费领养到QQ空间五级
    推荐文章 Rational统一过程RUP贴近中小软
    推荐文章 构建自己的轻量级XML DOM分析程
    推荐文章 WPS Office 2007技巧:妙用配置
    推荐文章 Excel 2007:求余数函数实用进阶
    推荐文章 浅谈ASP.NET的Postback
    推荐文章 软件开发中项目需求管理简述
     
     相关文章
    没有相关文章
    设为首页 | 加入收藏 | 广告合作 | 联系站长 | 版权申明 |
    动力中国为网友提供免费学习资料,可用资源,如果您认为我们的相关内容侵害到了您的权利请联系管理员
    Copyright © 2006-2008 domcn.org All Rights Reserved.