基于角色访问控制的UML 表示02

一个用户可以成为很多角色的成员,一个角色可以有许多用户。类似地,一个角色可以有多个权限,同一个权限可以被指派给多个角色。每个会话把一个用户和可能的许多角色联系起来。一个用户在激发他或她所属角色的某些子集时,建立了一个会话。用户可用的权限是当前会话激发的所有角色权限的并集。每个会话和单个用户关联。这个关联在会话的生命期间保持常数。一个用户在同一时间可以打开多个会话,例如,在不同的工作站屏幕窗口各一个。每个会话可以有不同的活动角色。会话的概念相当于传统的访问控制中主体(subject)的标记。

一个主体是一个访问控制单位,一个用户在同一时间可以拥有多个不同活动权限的主体(或会话)。

  1. UML 概览

UML 是通用的可视化建模语言,我们可以使用它阐述、可视化和文档化软件系统的组成部分。现在UML 已经是软件工程的标准语言。UML 包括用例建模,静态建模和动态建模。在用例建模中,通过用例和执行者阐述系统的功能需求。用例由执行者引发,描述了执行者和系统之间的交互。静态建模提供系统的结构视图信息,在这个视图中,通过类、类属性和与其他类的关系(relationship)表示。关系包括关联(association)、泛化/特化(generalization/specialization)、聚合。动态建模表现系统的行为视图。它可以通过对象协作图、顺序图或状态图来描述。对象协作图和顺序图用来描述对象和其他对象在执行用例时的协作。依赖于状态的对象使用状态图来描述 [5]。

本文中,我们使用类图、用例图和对象协作图分别作为RBAC 模型的静态视图、功能视图、动态视图。在本文的剩下内容中,我们使用了 [1, 7, 10]中介绍的UML 标记符。

  1. 基于UML 的 RBAC 表示

RBAC 中的组成部分是用户、角色、权限、会话和约束。为了使用UML 表示RBAC 模型,我们使用对象类的标记分析每个组成部分。在本文后面部分中,我们的分析分为三个不同的视图:静态视图、功能视图和动态视图。

图2 类图:概念静态模型

RBAC 的概念静态模型如图2 所示,包括类、类之间的关系和关系的势。基本的实体是用户、角色、权限、约束和会话类。角色和权限类分别特化出两种类别:使用者和管理者。这个特化依赖于用户的资历。RBAC 模型的约束可以有很多种形式,依赖于应用系统。为了简化分析模型,我们静态模型中的约束只有三个:用户约束、权限约束、会话约束。另外,静态模型还有一个特殊的类session hour,当用户建立一个会话来激活他/她的角色时,该类被使用。这对表达基于会话的约束很有用。例如,一个组织可以要求用户只能在某些时间建立会话。为了强化这类约束,我们需要跟踪每个会话的会话时间。实体类的属性在图3 中定义。

图3 实体类的属性

相关推荐
workflower17 小时前
和测试角色相关的问题
软件工程·软件构建·开源软件·uml·软件需求
Data_agent20 小时前
Pantherbuy模式淘宝 / 1688 代购系统(欧美市场)搭建指南
大数据·python·产品经理
职业码农NO.12 天前
产品经理的 AI 工作流
产品运营·产品经理·产品设计
产品人卫朋2 天前
「产品、IPD、战略、流程」知识图谱速查清单.v7.0
人工智能·知识图谱·产品经理·需求分析·创业·ipd流程·华为ipd
向懒羊羊学习的大猫2 天前
【互联网产品助理的成长之路(7)】需求中止的判断方法
产品经理
rolt2 天前
软件需求设计方法学全程实例剖析幻灯片02-愿景[202512更新]
产品经理·需求分析·架构师·uml
rolt2 天前
软件需求设计方法学全程实例剖析幻灯片03-业务用例图和业务序列图[202601更新]
产品经理·需求分析·uml
Warren2Lynch3 天前
如何使用Visual Paradigm AI Chatbot创建3D打印机UML状态机图:综合指南
人工智能·uml
AM越.3 天前
Java设计模式超详解--代理设计模式(含uml图)
java·设计模式·uml
攀登的牵牛花3 天前
前端向架构突围系列 - 架构方法(二):UML前端建模的一般方法和工具
前端·前端框架·uml