Michael E. Shin、Gail-Joon Ahn 著,UMLChina 译
摘要
在基于角色访问控制(role-based access control,RBAC)中,权限和角色相关,用户被当作相应角色的成员而获得角色的权限。RBAC 背后的首要动机是为了简化管理。已经有文章介绍了一些基于角色系统的开发框架,但目前很少有文章使用系统开发者或软件工程师易于理解的方式来阐述RBAC。统一建模语言(UML)是一种通用的可视化建模语言,我们可以使用它阐述、可视化和文档化软件系统的组成部分。本文使用UML 表示RBAC模型,缩短了安全模型和系统开发之间的鸿沟。我们使用三种视图表述RBAC 模型:静态视图、功能视图、动态视图。另外,我们简短地讨论了将来的方向。
1 介绍
在RBAC 中,权限和角色相关,用户(user)被当作相应角色(role)的成员而获得角色的权限(permission)。
这大大简化了权限的管理。角色针对组织中的各种功能创建,用户依据他们的责任和资历被指派角色。用户被指派的角色可以容易地从一个跳到另一个。用户对信息的访问在指派角色的基础上被管制。自从RBAC 被广泛接受,许多安全领域的研究者和安全系统开发者已经花了很多时间来开发基于角色的系统。一些文章介绍了一些基于角色系统的开发框架 [2, 11 , 12 ]。这些以前的工作有一些很难被开发人员理解,因为它们太抽象、太形式,另外一些则是关注面向应用或专门领域框架的具体解决方案。这些框架都不足够为系统开发者给出一份合理的蓝图。
我们的主要目标是缩短安全模型和系统开发之间的鸿沟。本文使用通用的可视化建模语言UML 来表示RBAC模型。我们选择UML 的原因是它已经成为建模的标准语言。我们的表示包括RBAC 模型的静态视图、功能视图、动态视图。
本文按以下方式组织:在第2 部分,我们描述一种广为人知的基于角色访问控制模型,通常称为RBAC96。
第3 部分简短介绍UML。第4 部分用UML 表示RBAC96 模型。第5 部分给出结论。
2. RBAC 模型
作为有希望取代传统自主式访问控制(DAC)和强制式访问控制(MAC) [3,4, 6, 9]的替代者, RBAC 目前已经得到了很大的关注。RBAC 的策略基于角色,可以使用映射组织结构的方式来阐述安全策略。Sandhu 等发布了称为 RBAC96 的RBAC 通用模型家族[9]。图1 展示了家族中最通用的模型。关于在开发这个模型家族时所作设计决定的一些动机和讨论可参见[9]。
图1 RBAC 模型
图1 显示了 (regular)管制对数据和资源的访问的角色和权限。直观上,一个用户是一个人或一个自治的agent,一个角色是一项在组织中的工作功能或工作头衔。而权限是对系统中一个或多个object 的特定访问模式的许可或执行某些动作的特权。角色以偏序关系≥组织,如果x≥y 那么角色x 就继承了角色y 的权限。x 的成员也意味着是y 的成员。每次会话( session)把一个用户和可能的许多角色联系起来。用户建立一次会话,激活一些他或她是成员(直接获得或通过角色继承的方式间接获得)的角色子集。RBAC 模型有以下组成部分,这些组成部分从以上的讨论中形式化。