一种基于角色的跨域访问授权方法

2010-10-09 07:49郭伟光
赤峰学院学报·自然科学版 2010年4期
关键词:跨域访问控制页面

郭伟光

(合肥学院 管理系,安徽 合肥 230601)

一种基于角色的跨域访问授权方法

郭伟光

(合肥学院 管理系,安徽 合肥 230601)

针对用户访问企业部署在不同服务器或不同网域的各种Web应用系统的权限控制问题,提出了一种基于角色的访问控制(RBAC)机制的跨域访问授权方法.该方法通过RBAC授权中心取得用户的权限信息,存储于Session内,由访问对象判断使用者权限.当用户跨域访问时,由跨网域机制重新获取XML格式的用户权限信息,并重建在Session内.应用实践表明,该方法在解决同类型Web应用系统的授权管理问题时简单、有效.

Web应用;基于角色的访问控制;跨域访问;授权方法;Session

1 引言

随着企业不断的引入各种不同的Web应用系统及其他一些业务支撑平台,并将这些Web应用系统分散部署在不同网域的不同的服务器上以方便将开发维护工作分派给不同的开发团队处理,降低原本单一服务器的承载量.这时如何防止未授权用户访问和使用受保护的资源或服务,实现跨域授权管理,便成了要解决的关键问题之一.

要实现跨域授权,就需要在不同网域的不同服务器间传递授权信息,现常见的方法有Cookie[1]、Agent[2]等.利用Cookie传递授权信息时,容易被他人非法获取和利用.Agent是基于两种不同系统进行异质传输而设计的代理程序,在运用上是将相关信息传送给Agent,经由Agent与其它Agent沟通将信息输出.利用Agent的方式,WEB应用程序存取信息时须指向到一特定位置上进行存取.这种方法需修改原程序对于信息存取的方式.本文拟使用Session作为储存和获取使用者权限的方法,不需要重新指向到某一特定位置上进行信息存取.

2 基于RBAC的Web应用系统授权机制

网络环境中的授权操作需要解决的问题包括鉴别访问者的身份,确定访问者的权限.授权管理系统建立和维护访问控制策略,为业务系统提供访问控制决策服务,防止对各类信息资源的非授权访问.在功能上应该包括权限的管理,权限的分配以及访问控制几大方面.基于角色的访问控制(RBAC, Role-Based Access Control)是目前最热门的访问控制策略.它将用户和具体权限分离开来,管理员可将权限的划分和发放分别进行处理,通过给用户授予角色来实现对用户的授权操作.文献[3]描述了一个基于RBAC的WEB应用系统授权管理机制模型,为授权管理系统的开发提供了一个思路,模型包括授权定义和授权执行模块,运行在身份验证和Web应用系统之间.

3 基于角色的跨域访问授权方法模型

3.1 授权系统的基础架构

本文在以下定义的基础上,提出一个基于角色的Web应用跨域访问授权方法的系统基础架构,如图1所示.

定义1RBAC授权中心是基于RBAC机制开发的授权管理系统,能完成对象、用户、角色、权限的定义和用户分配、权限分配等操作,并能生成指定格式的授权信息.其中:对象(Object)指系统中的各种功能模块、数据、界面元素、Web页面等,是用户能访问的客体;用户(U s e r)指一个可以独立访问计算机系统中的数据或者用数据表示的其他资源的主体;角色(Role)指一个组织或任务中的工作或者位置,反映用户的权限;权限(Permission)指在受系统保护的客体上执行某一操作的许可,可用三元组符号表示P(o,t,p),o表示访问对象、t表示访问类型、p表示谓词.p为真时,对o可进行t类型的访问;用户分配指为用户分配一定的角色,即建立用户与角色之间的多对多关系;权限分配指为角色分配一组权限,即建立角色与权限的多对多关系.这样通过角色将用户与访问权限联系起来,用户具有其所属诸角色的访问权限的总和.

定义2Session_Plist是由RBAC授权中心提供的储存于用户与Web应用系统会话(Session)中的访问授权信息,一个Session_Plist由一个结构体来表示,有以下几个域:Session_Plist标识,用户标识,该用户在核定时间与地点内拥有的角色,该用户在核定时间与地点内拥有的授权对象.

定义3Session_Ticke t是由RBAC授权中心提供并递送给已登录用户的一个票据,是一组唯一的随机码,实际应用中可以附加其它信息.

定义4Session_XML是Web应用系统通过提交Session_Ticket向RBAC授权中心获取的XML格式的Session_Plist.

3.2 将授权对象简化为WEB页面

B/S模式的Web应用系统与用户的交互总是通过浏览器端页面请求和服务器端应用响应来实现,用户的所有操作都是通过对Web页面的访问来完成.此外,Web页面的创建时可以将多个业务逻辑可以放置在一个页面中;一个业务逻辑可以由一组的多个页面来实现.因此,如果把一个用户角色授予的权限所能进行的操作对应到WEB应用中某一个或者某一组页面所能够完成的功能上面去,则可以通过控制这个或者这组页面来实现对用户权限的管理.

由于上述特点,可以作出如下限制:对于一个页面要实现的功能,应该有尽量细粒度的划分,确保在某一页面上实现的一个或者多个功能只对应某一权限所允许的访问.在此限制下,将模型中的对象限定为Web应用的页面,将Web页面Title名称作为权判读对象,用户权限中有Title名称时即表示有权存取此Web页面.将这些页面的Title全部导入RBAC授权中心,并运用RBAC的运作原理配置角色,最后再将角色指向给用户.

3.3 RBAC授权中心的处理流程

一个合法的用户,在登入之后,必须通过RBAC授权中心取得自己的Session_Plist,并储存于使用者与Web应用的Session中.其处理流程是:

(1)用户登录验证成功后获取用户ID;

(2)由用户ID获取用户在核定时间与地址内分配的角色;

(3)由(2)获取的角色获取用户在核定时间与地址内的授权对象(Web页面Title);

(4)输出Session_Plist和Session_Ticket.

3.4 跨域获取用户授权信息的处理流程

用户与Web应用的Session信息,无法直接转交或授予其它的Web应用进行存取.跨域获取用户授权信息的处理流程,如图2.

4 结语

本方法在应用时,各种WEB应用系统并不要求统一的开发平台,对原有系统的修改量也较少.在安全性方面,权限信息Session_Plist仅存储在Session内,即使被用特殊方法读出,也无法在用户端直接植入Session内.Session_Ticket可设置较长码元,限定有效时间,在用户限出登录或超过有效时间即被置为0并失效.在应用开发时,可以将Session_XML内容优化为仅包含被访对象的授权信息以减轻服务器间的传输负担.

〔1〕刘润达,诸云强,宋佳,等.一种简单跨域单点登录系统的实现 [J].计算机应用,2007,27(2):288-291.

〔2〕王琦.基于反向代理的网站群单点登录[J].计算机工程,2008,34(14):138-139.

〔3〕王朝阳,戴静敏.Web应用系统的授权管理机制[J].兵工自动化,2006,25(11):40-41.

TP 393.08

A

1673-260X(2010)04-0016-02

猜你喜欢
跨域访问控制页面
跨域异构体系对抗联合仿真试验平台
基于多标签协同学习的跨域行人重识别
刷新生活的页面
为群众办实事,崂山区打出“跨域通办”组合拳
G-SRv6 Policy在跨域端到端组网中的应用
ONVIF的全新主张:一致性及最访问控制的Profile A
动态自适应访问控制模型
浅析云计算环境下等级保护访问控制测评技术
大数据平台访问控制方法的设计与实现
网站结构在SEO中的研究与应用