原创作者: stamen
阅读:3211次
评论:2条
更新时间:2011-05-26
就我目前对Acegi的了解,Acegi安全框架主要解决的安全问题是访问入口级别的安全问题,安全问题我将其分为三类:
1) 入口级安全
具体体现上界面上每个操作菜单,操作元素是否可操作,在服务端则对URL程序资源和业务服务类方法的限制。
2) 数据域安全
数据域控制包括两个部分,分别是:
2.1 行级数据控制 即可以可以访问哪些数据行,一般的限制项是数据所属单位;
2.2 字段级控制 即用户可以访问数据行的哪些字段;
3)系统级安全
如访问IP段的限制,登录时间段的限制,登录次数的限制等。
Acegi由于和业务无关,所以只能解决1)点的安全问题,2),3)的安全问题是和业务,组织机构相关的,所以必须程序编码解决。
严格上说,Acegi对1)点的解决也是不彻底的,因为它只解决了服务端的程序资源访问控制,操作界面上的元素是要我们编码实现的。不过,这也好理解,因为界面的入口元素是最灵活多样的,Acegi不应该涉足。
所以我觉得Acegi在一个很适合的领域时,很好的解决了一些适合框架解决的问题,它不贪恋那些不容易框架实现而需求变化大多的问题。
1) 入口级安全
具体体现上界面上每个操作菜单,操作元素是否可操作,在服务端则对URL程序资源和业务服务类方法的限制。
2) 数据域安全
数据域控制包括两个部分,分别是:
2.1 行级数据控制 即可以可以访问哪些数据行,一般的限制项是数据所属单位;
2.2 字段级控制 即用户可以访问数据行的哪些字段;
3)系统级安全
如访问IP段的限制,登录时间段的限制,登录次数的限制等。
Acegi由于和业务无关,所以只能解决1)点的安全问题,2),3)的安全问题是和业务,组织机构相关的,所以必须程序编码解决。
严格上说,Acegi对1)点的解决也是不彻底的,因为它只解决了服务端的程序资源访问控制,操作界面上的元素是要我们编码实现的。不过,这也好理解,因为界面的入口元素是最灵活多样的,Acegi不应该涉足。
所以我觉得Acegi在一个很适合的领域时,很好的解决了一些适合框架解决的问题,它不贪恋那些不容易框架实现而需求变化大多的问题。
2 楼 songxh2 2011-08-05 15:31
1 楼 bill008 2009-10-15 16:20
07年底我开始研究acegi并成功的用它重构了我公司的权限平台,对于1)点的问题,acegi解决的应该算很彻底了,至少楼主提到的“操作界面上的元素”是可以通过配置来解决的,最佳实践上是需要制定元素的命名规则(把元素所代表的url加上)。
2)里面是可以做到行级数据的控制的,但它的框架基于对象的过滤,效率比较低,所以我们的方案还是采用业务自己控制。至于列级的控制,因为没有做过,也不好说能不能做到。3)里面的问题亦然。
Acegi因为使用了spring,所以扩展性相对较好,应该算一个很不错的框架。