当前位置: 首页 > news >正文

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

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

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

3. UML 概览

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

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

4. 基于UML 的 RBAC 表示

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

图2 类图:概念静态模型

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

图3 实体类的属性

http://www.dtcms.com/a/19289.html

相关文章:

  • 【Python】函数
  • Java八股文详细文档.2(基于黑马、ChatGPT、DeepSeek)
  • springboot与springcloud对应版本
  • 【Java学习】类和对象
  • qt QRadioButton 总结
  • C++11新特性之别名模版
  • Python--网络编程
  • 【C++前缀和】1906. 查询差绝对值的最小值|2146
  • DeepSeek-R1-Distill-Qwen-1.5B模型的深度解析
  • Vue.js 组件 - 自定义事件
  • 当通用智能遇到深度推理:如何正确驾驭DeepSeek-V3与R1?
  • 解决Windows11复制文件到桌面会跑左上角第2个位置导致桌面图标位置错乱问题
  • 算法11-分治算法
  • C++字符串处理指南:从基础操作到性能优化——基于std::string的全面解析
  • 数据结构与算法之排序算法-归并排序
  • 节目选择器安卓软件编写(针对老年人)
  • 面试完整回答:SQL 分页查询中 limit 500000,10和 limit 10 速度一样快吗?
  • 生成式人工智能:技术革命与应用图景
  • 理解WebGPU 中的 GPUAdapter :连接浏览器与 GPU 的桥梁
  • 数学建模基础训练-1:概念解析
  • AUTOSAR MCAL层ETH模块(1)——通信原理
  • 【VSCode】一键清理旧版本插件脚本(Mac或者Windows都可)
  • 算法19(力扣244)反转字符串
  • opencascade 获取edge起始点 会出现终点与实际不同的情况
  • Java 大视界 -- 绿色大数据:Java 技术在节能减排中的应用与实践(90)
  • @[TOC](优先级队列(堆)) 【本节目标】 1. 掌握堆的概念及实现 2. 掌握 PriorityQueue 的使用 # 1. 优先级队列
  • 蓝桥杯试题:计数问题
  • word文档提取信息
  • Spring MVC Streaming and SSE Request Processing SSE可以实现chatgpt一次请求分批次响应的效果
  • 数字化转型导师坚鹏:AI大模型DEEPSEEK使用方法及案例