- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于角色权限管理系统设计及实现
摘要:在权限管理系统中,用户灵活性与系统安全性始终 是一对矛盾。如何有效降低系统授权管理的复杂性一直是权 限管理系统设计的难点。基于角色的访问控制(RBAC)模型, 通过引入角色的概念,采用分层技术,实现用户与权限的逻 辑分离。层次RBAC模型的角色分层是权责分割的基础。将 权责分割机制应用于权限管理系统的用例设计和访问控制 中,给出了该系统中角色管理的具体实现。
关键词:访问控制;RBAC;权责分割;SSD; DSD;权限
管理
中图分类号:TP311.52文献标识码:A文章编号:
1009-3044 (2012) 33-7918-04
不同于自主或强制访问控制模型,基于角色的访问控制
(简称RBAC,下同)以角色作为中介,系统首先给角色授 权,然后将角色分配给用户,角色架起了访问控制中访问主 体与客体之间的一座桥梁。之所以不直接将权限授予用户, 是因为角色比用户更具稳定性。当因为系统需求对用户进行 变更时,只需修改角色与该用户的关联,而不必对角色与访 问控制客体之间的关联进行修改,使系统设计的灵活性有所 增强。
1层次RBAC模型
在基于角色的访问控制模型(RBAC)中,通常采用分层 技术对角色的职权和责任能力进行描述。通过添加对角色分 层的支持,能够提高RBAC的管理效率、明晰角色间的逻辑 关系。层次RBAC模型在RBAC角色集定义的基础上,提出了 角色层次的概念,并添加了相应的访问控制规范。层次RBAC 模型如图1所示。
层次RBAC中包含两类角色分层,常规角色层次和有限 角色层次。常规角色层次在角色分层中支持任意偏序关系, 可以实现不同角色间的许可集和用户集从属关系的多重继 承;有限角色层次强加限制了角色分层系行为,使系统中分 层技术被限制在简单的逻辑结构中,有利于增强系统授权的 安全性。
2角色控制的权责分割
权责分割是系统设计中常用的一条安全法则,主要用于 加强有利害关系策略的冲突性。该冲突性允许一个用户可以 同时获得两个(或以上)的冲突角色,通过角色分层和个性 化角色集为高层次的组织安全策略提供约束机制。为了便于 权限管理系统的设计,参照RBAC标准的有关内容,我们将 权责分割分为两大类:静态权责分割和动态权责分割。
2. 1静态权责分割
静态权责分割(SSD)属于静态约束,在角色集定义时 就实施访问控制约束。SSD定义了 一个包含两个(或以上) 角色的集合,为角色集指定限制条件,限制用户指派关系。 SSD还通过基数对策略违例做出了规定:如果系统的局部组 织中有一个由5个角色组成的角色集,则在授权过程中仅能 有不超过4个的用户角色数目。
2.2动态权责分割
动态权责分割(DSD)属于动态约束,在激活角色时才 实施访问控制约束。DSD限制了对用户有效的许可,为每个 用户的最小权限提供了不同的扩展支持。我们定义DSD(XN) 是动态权责分割中(rs, n)对的集合,其中rs代表角色集, n代表基数。我们认为在任意一个(rs, n) DSD的情况下, 不存在用户会话能从rs中同时获得大于等于n的角色个数。 该结论证明如下:
设t是rs的一个子集,据上述定义可得到:
SSD能够在用户指派角色时,解决潜在的利害冲突;DSD 则是在角色激活时,解决产生的策略冲突。
3基于角色的访问控制应用
在权限管理系统中,SSD用于用例设计,主要是对访问 控制核心角色的定义;DSD用于访问控制,主要是对权限管 理核心类的描述。
3.1系统用例设计
在采用RBAC模型的权限管理系统中,角色功能图的用
例框图如图2所示。
该用例框图中的角色控制执行者主要有3个:安全管理 员、用户和角色领域工程师。角色领域工程师是权限管理系 统的核心角色,主要用于描述权限集,实施角色分层和附加 约束操作。安全管理员管理负责管理基于角色的权限系统, 为用户授权。用户被定义为一个真实的人或者一个外部的系 统,他可以通过角色策略,要求系统执行针对某个对象的某 种操作。
3.2访问控制模块
访问控制模块是整个权限管理系统的核心部分,它的主 要功能是用来验证用户或其角色是否具有访问权限。对外部 系统而言,访问控制模块采用黑盒设计,通过返回值确定允 许或拒绝用户的操作申请。此模块的流程图如图3所示,从 建立权限与资源的对应关系入手,逐步实现角色实体与权限 实体之间调用权限操作,从而建立权限实体与层次结构的关 联。
访问控制模块设计中的主要成员类有User、Session、 Role、Permission、Constrain、Object,其中 Role 是核心 类用作主要类的连接。
User是一个接口,它包括RBAC控制模块中不同功能 的实现类,每一个User对应一个Session0在用户Logon成 功后Session由系统提供,当会
文档评论(0)