基于角色访问控制的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 实体类的属性

相关推荐
CappuccinoRose16 小时前
UML学习文档(二)
uml·类图·序列图·状态图·类的关系
MobotStone1 天前
AI落地不靠吹,靠这6条反直觉经验帮你赚钱
产品经理·产品·设计师
okjohn3 天前
浅谈需求分析与管理
java·架构·系统架构·软件工程·产品经理·需求分析·规格说明书
静心观复4 天前
drawio画java的uml的类图时,class和interface的区别是什么
java·uml·draw.io
冰 河9 天前
《高性能SQL引擎》总结-高性能SQL引擎整体专栏总结
性能优化·程序员·高并发·架构师·高性能
hqyjzsb11 天前
2025 年项目管理转型白皮书:AI 驱动下的能力重构与跨域突破
开发语言·人工智能·重构·产品经理·编程语言·caie
zero13_小葵司11 天前
建立数据分析与决策体系
数据挖掘·数据分析·产品运营·产品经理·数据库架构
破晓之翼13 天前
控制论的定义、工程意义及系统功能整合
设计模式·软件工程·产品经理·学习方法
weixin_4569042720 天前
数据库设计与UML图
数据库·uml