基于XACML的受限RBA C框架在Grid Sphere中的实现

2011-04-16 09:15程志罗省贤
电脑与电信 2011年2期
关键词:门户基数访问控制

程志罗省贤

(成都理工大学信息科学与技术学院,四川成都610059)

1.引言

目前大多数系统都以专有的方式实现访问控制和授权,因此不同系统之间很难做到直接交换安全控制信息。而可扩展访问控制标记语言(XACML)旨在提供一种统一的格式来描述访问控制信息,能够很好地解决不同系统之间的交互难题。

XACML是一项由OASIS指导制定的XML规范,其中定义了一个基于XACML的RBAC框架,但是该框架仅定义了核心RBAC和层次RBAC的策略。由于没有对受限RBAC进行定义,因此很难在授权过程中体现最小特权和责任分离原则。为此,本文通过对XACML的RBAC框架的补充,使之能够更好地体现RBAC96模型族的特点,并最终在GridSphere门户中实现了受限RBAC模型。

2.RBAC模型概述

2.1 RBAC96模型族

20世纪90年代期间,大量的专家学者和专门研究单位对RBAC的概念进行了深入研究,先后提出了许多类型的RBAC模型,其中以美国George Mason大学信息安全技术实验室(LIST)提出的RBAC96模型最具有系统性,得到普遍的公认。RBAC96是一个模型族,其中包括RBAC0~RBAC3四个概念性模型[1]:

(1)基本模型RBAC0

RBAC0,即核心RBAC,该模型中包括用户(U)、角色(R)、许可权(P)和会话集合(S)4类实体集合。

(2)角色分级模型RBAC1

RBAC1,即层次RBAC,该模型中的角色是分级的,不同级别的角色有不同的职责与权利,角色的级别形成偏序关系。

(3)受限模型RBAC2

RBAC2模型是在RBAC0模型增加限制后形成的,它与RBAC1并不兼容。主要存在两种限制:互斥角色的限制和角色的基数限制。

2.2 基于XACML的RBAC框架

最新的2.0版XACML标准通过定义4种策略集来帮助实现RBAC核心和层次模型[2]:

(1)角色策略集(RPS)

Role<PolicySet>是一个结合了给定角色的策略集,同时它也包含了对相应角色的权限策略集(PPS)的引用。

(2)权限策略集(PPS)

Permission<PolicySet>包含了绑定到某角色的权限。一个PPS可能包含对其他角色的对应PPS的引用。通过这种方式,可以很方便地实现一个角色对另一个角色的继承。

(3)角色指派策略集(RAP)

RoleAssignment<PolicySet>定义了对指定的用户赋予某些指派的角色。

(4)特权策略集(HPP)

HasPrivilegesOfRole<Policy>表示一个绑定到某角色的用户具有某种特权。

3.基于XACML的受限RBAC框架的实现思路

受限模型中的互斥角色限制,是指各自权限可以互相制约的两个角色。对于这类角色,一个用户在某一次活动中只能被分配其中的一个角色,不能同时获得两角色的使用权,通过该限制可以支持职责分离原则的实现。受限模型中的角色基数限制是指一个角色可分配的最大用户数,一旦拥有该角色的用户数量超过其角色基数,则不能给申请角色的用户分配该角色。

在用XACML进行受限模型描述时,将所有的互斥角色写入到一个互斥角色策略集中,其中一对互斥角色为其策略集中的一个策略;将所有的角色以及其基数写入到一个角色基数策略集中,其中一个策略对应一个角色和其基数。当用户请求激活一个角色时,将先访问角色基数策略集,根据角色匹配到某个策略上,如果返回的是permit,则说明该用户激活角色成功,此时,应将策略中的基数减1;当用户请求激活第二个角色时,也要先访问角色基数策略集,如果返回的是permit,则还需要查找互斥角色策略集,若返回结果为deny,则说明用户的两个角色跟该策略集中的一个策略相匹配,第二个角色激活失败。

假设前两个角色都激活成功,当用户请求第三个角色时,访问角色基数策略集也返回的是permit,则需要将这个角色与前面两个角色分别组成一对访问互斥角色策略集,只要两次返回的都是permit才能激活该角色;后面的角色请求过程以此类推。

4.受限RBAC框架的XACML描述

以互斥角色策略集和角色基数策略集为例的XACML描述方法如下:

5.受限RBAC框架在GridSphere门户中的应用

GridSphere门户提供了一个基于portlet的功能强大的开源门户,它是由欧盟提供资金支持的GridLab项目组负责开发的[3]。GridSphere门户的体系结构充分体现了服务的思想,其中portlet是以插件的形式运行在该门户中来向用户提供不同的服务。

由于GridSphere已经对RBAC提供了内置的支持,并采用数据库的形式保存了用户、角色和权限,但是,以数据库表的形式来描述权限很难体现一些动态授权的要求,且表达能力不强,交互性弱。因此,本文采用XACML进行访问控制来替代数据库的形式,并将XACML策略存储在具有分布式特点的LDAP服务器中。

本文重点分析和实现XACML的受限RBAC框架的应用,下面以GridSphere门户中提供注册功能的portlet来说明该受限框架的应用实例。

(1)建立角色1和角色2,并用XACML描述该角色为互斥角色且每个角色最多只能拥有2个用户。

(2)建立用户A、用户B和用户C,当为用户A同时分配角色1和角色2时,根据XACML策略文件的描述,由于角色1和角色2为互斥角色,该门户返回deny,拒绝此次操作,如图1所示。

图1 互斥角色授权控制

(3)给用户A和用户B分配角色1后,再为用户C分配角色1,根据XACML策略文件的描述,由于角色1最多只能拥有2个用户,该门户会返回deny,拒绝此次操作,如图2所示。

6.结论

本文通过对比基于XACML的RBAC框架与RBAC96模型,发现其框架的不足之处,通过给出对互斥角色和角色基数限制的XACML描述,实现了基于XACML的受限RBAC框架,并最终应用在GridSphere门户的用户注册服务中,达到了在给用户赋予角色时实现职责分离的原则。

图2 角色基数授权控制

[1]NIST.Role based access control[EB/OL].http://csrc.nist.gov/rbac.

[2]OASIS.XACML v3.0 Core and Hierarchical Role Based Access Control(RBAC)Profile Version 1.0.pdf.2006,8.

[3]陈平.用GridSphere开发Portlet来部署网格服务[A].第十届全国青年通信学术会议论文集[C].2005,8.

[4]Jason Novotny.Portlet Development Guide[EB/OL].http://www.gridsphere.org.

猜你喜欢
门户基数访问控制
关隘:要道门户
一次性伤残就业补助金的工资基数应如何计算?
西域门户——两关遗址
千万不要乱翻番
巧妙推算星期几
基于内外网门户系统的研究
『基数』和『序数』
ONVIF的全新主张:一致性及最访问控制的Profile A
动态自适应访问控制模型
浅析云计算环境下等级保护访问控制测评技术