2(以后看的)

分离权限管理与访问控制 权限管理与访问控制常常被放在一起讨论,不是吗?我们的软件设计往往一来就是一个系统组成模块图,在那个图里面一个傻傻的方框里面写上“权限控制模块”。但是,我认为我们还是应该认识到在这个“模块”里面两者的不同。“访问控制”:是一个动态的概念,是发生在运行时的,也即RBAC里面说的Session中。当一个按照定义需进行控制的访问或调用发生时,“访问控制”即发挥作用了。“访问控制”发生的频率非常高; 阅读详情

beegee's blog

1001100101000111001001001110111110110001000......

  优快云Blog  |  联络  |  聚合   |  登录
  17 篇文章  |   0 篇收藏   |   25 个评论   |   3 个Trackbacks
版权声明:优快云是本Blog托管服务提供商。如本文牵涉版权问题,优快云不承担相关责任,请版权拥有者直接与文章作者联系解决。


       本文在第一篇“四维权限管理模型”的基础上,将起思路和解决方法运用到产品模块设计上。根据普通业务系统中与权限相关的两用例:权限管理和访问控制(即:访问验证),进行了概要设计(已作删减)。

1.引言

1.1编写目的

略

1.2项目背景

略

1.3术语与约定

安全对象

访问受控制的对象,如:“报表”、“项目”等。系统中主要的“业务对象”都是典型的安全对象。

访问场景

一个访问场景将提供诸如“操作者”、“被操作对象”、“操作方法”、“业务状态”、“有效期限”等元素,供访问验证判断所用。根据分析(详见参考文档中的说明),每个访问场景至少包括三个必须的元素:

“操作者”,用户、角色、用户组、单位等;

“被操作对象”,具体的业务对象,如“报表”;

“操作方法”,对应被操作对象的基本操作和业务操作,依赖于“被操作对象”。

访问场景中的其他元素,如“业务状态”、“对象所属”、“有效期限”等在本次设计中不是必须满足项,但兼顾设计。

系统功能

一个业务系统的功能项也受访问控制。在一个访问场景中,将整个业务系统视为“被操作对象”,各系统功能就成为了访问场景中的“操作方法”,便于模型的统一。

访问控制

或访问验证,系统中发生访问场景时,进行允许或禁止,不同于权限管理。详见2.任务概述。

权限管理

或访问控制管理,对访问规则进行维护管理,不同于访问控制。详见2.任务概述。

 

1.4参考资料

内部

《四维权限管理模型》

外部

略

 

2.任务概述

与权限相关联的有“访问验证”和“访问控制管理”两项主要任务:

访问验证

根据事先定义的访问许可规则对系统中的各种访问操作(含对系统功能的访问、对业务对象的访问)的合法性进行验证。是访问许可规则作用的动态实现。

访问控制管理

主要是管理维护系统允许中各种访问操作时各种因素(访问者、访问系统功能、访问业务对象、访问业务规则等)之间的关系。是对访问许可规则静态管理维护的实现。

涉及用例

“访问验证”和“访问控制管理”在系统中是两个用例。其中“访问控制管理”以权限管理模块来实现(与系统具体业务关联紧密,本次迭代不涉及),“访问验证”以访问控制模块来实现。除开数据的依赖,在业务上两者相互独立。

 

 

3.用例分析

 

用例名称:访问控制

 

描述:根据业务需求和安全需求,当在其他用例中发生对安全对象进行访问时,访问控制对这一行为进行允许或禁止控制。

前置条件:其他用例对安全对象的访问被激活。

后置条件:无

基本事件流:

1)其他用例请求对某一安全对象进行访问,事件流开始;

2)根据当前访问场景的各元素(操作者、被操作对象、操作方法、有效期限等)进行访问验证,得到验证结果;

3)根据验证结果对当前访问进行允许或禁止,事件流结束。

可选事件流:略。

部署约束:

在有访问控制要求的其他用例所在的物理层或逻辑层中均可以访问本用例。

活动图:略。

非功能需求:对单个安全对象访时,访问验证时间消耗与访问操作本身的时间消耗在同一数量级以内。

未解决问题:无

说明:

 

4.对象设计

4.1用例中的对象

边界对象< > :无

控制对象< > :即访问控制者对象AccessController,由该对象对访问进行控制。

实体对象< > :即某一安全对象。

操作流程对象< > :用于引发访问场景的流程的抽象,如某个业务操作。

说明:访问控制者对象AccessController是唯一在本用例中可以完成设计的对象,其他对象均属于其他用例,但访问控制的实现需要这些对象在设计模式上进行配合。

4.2用例中的行为

访问验证:由访问控制者对象所有,由操作流程对象(即某一业务操作)激发。访问验证需存在于一个具体的访问场景中,是对原子化的操作访问的允许或禁止判断。

权限逻辑运算:当操作流程对象引发对多对象的访问时,并因此在该访问场景中,根据访问验证出现权限干涉、权限二意性时,权限逻辑运算根据安全逻辑或业务逻辑对权限进行合并或筛选。权限逻辑运算由操作流程对象激发。

对象访问:由其他用例直接发起,或委托操作流程对象发起。对象访问需通过访问验证和权限逻辑运算。

4.3对象时序图

 

4.4类定义

对安全对象的访问控制在用例中适应对象访问控制者对象来完成,该对象以ObjectAccessController类实现:(采用接口化设计的分析过程详见参考文档)

 

5.类实现设计

5.1类实现

 

 

安全对象访问控制者类ObjectAccessController

说明

 

主要成员

ValidateRules:java.util.ArrayList

验证规则数组,用以容纳不同的验证规则类ValidateRule,本项目仅包含ACM验证规则对象――ACMAccessValidate。

 

主要方法

public static bool IsValidate(ISecurityObject,

IOperator,     

IOperateMethod)

用于验证访问操作合法性的验证函数,该函数调用类的验证规则数组中所有的验证规则类逐一验证,最后汇总作出判断

 

验证规则抽象类ValidateRule

说明

用于使所有的验证规则对象具有相同的调用格式

主要成员

 

 

主要方法

public bool Validate( ISecurityObject

IOperator,     

IOperateMethod)

用于验证访问操作合法性的验证函数

 

 

ACM验证规则类ACMValidateRule

说明

用于实现按照ACM进行访问验证

主要成员

 

 

主要方法

public override bool Validate( ISecurityObject

IOperator,     

IOperateMethod)

用于验证访问操作合法性的验证函数

 

 

备注:用于支持访问控制用例,访问场景中的元素在均被定义为标准接口的实现。

安全对象:ISecurityObject

操作者:IOperator

操作方法:IOperateMethod

其他用例在实现类设计时,需从这里继承。

 

5.2数据实现

本次迭代中,仅ACM验证规则类ACMValidateRule需要实现。ACM作用原理详见参考文档中的分析。

“访问控制矩阵(规则)表”

字段说明

字段名

数据类型

是否允许为空

数据完整性

流水号

id

Int

Not null

PK

有效码

IntValid

Int

Not null

Default“ 0 ”

安全对象类型

chrSOType

Char(20)

Not null

 

安全对象ID

IntSOId

Int

Not null

FK

操作者类型

ChrOprType

Char(20)

Not null

 

操作者ID

IntOprId

Int

Not null

FK

操作方法名称

ChrMethod

Char(20)

Not null

 

有效期开始时间

DtmActive

Datetime

Null

 

有效期结束时间

DtmExpired

Datetime

Null

 

业务流程状态码

IntProcessState

Int

Null

 

安全对象状态码

IntSOState

Int

Null

 

 

说明:

根据该表记录,读取相应“有效码”,无记录(即无有效码),为访问禁止,否则为访问许可。

“有效码”用于扩展

“有效期开始时间”、“有效期结束时间”用于以后的有效期权限验证,可取消

“业务流程状态码”、“安全对象状态码”用于以后的业务条件权限验证,可取消

 

6.负载平衡设计

业务系统中如有L个安全对象,每个安全对象有M个受访问控制操作方法,并有N个不同的访问者,按照非乐观估计:“访问控制矩阵(规则)表”会有L×M×N条记录。

建议在安全对象较多时,为每个安全对象建立1对1的访问控制表,提高效率,平衡负载。

...

- end -

 

   Beegee: 和我在一个产品开发中共事了半年的部门经理(其实是产品经理)告诉我可以离开项目组了。半年前,他委托我设计他的产品中的权限管理模块。于是,我用我贫瘠的大脑给他想了些方案。难得他还那么看得上,支持我实现了我的设计,当然也加了不少我不喜欢的东西。现在,却因为一些原因我要离开这个产品组了,这位经理也不准备对这个模块再作更多的投入了,于是我想我可以把我的这些的想法拿到我的Blog中了,算是自我消遣吧。^_^,也希望能够帮助其他程序员完善他们自己的设计,全当反面教材啦!
   共两篇:
   1.“
ACM四维权限管理模型”
   2.“权限管理与访问控制概要设计”(本文)

 

 

发表于 2004年08月24日 9:05 PM

评论

#  回复:自我消遣之二:权限管理与访问控制概要设计 2004-08-26 11:10 PM 鸵鸟
从文章的结构就能看出作者是很有专业水准的,但一离开公司就把公司的东西给贴出来,感觉是不是有点…………

难道下一步你想自己开公司做老板了吗?

#  回复:自我消遣之二:权限管理与访问控制概要设计 2004-08-27 8:59 AM beegee
我还没有离开公司,是公司主动放弃这些东西的。而且这不是我最终为产品作的设计。只希望能够帮助其他开发者。欢迎讨论!

发表评论

自我消遣之二:权限管理与访问控制概要设计        本文在第一篇“四维权限管理模型”的基础上,将起思路和解决方法运用到产品模块设计上。根据普通业务系统中与权限相关的两用例:权限管理和访问控制(即:访问验证),进行了概要设计(已作删减)。1.引言1.1编写目的略1.2项目背景略1.3术语与约定安全对象访问受控制的对象,如:“报表”、“项目”等。系统中主要的“业务对象”都是典型的安全对象。访问场景一 阅读详情

相关推荐

O2O、C2C、B2B、B2C、C2B的区别

http://blog.sina.com.cn/s/blog_54ad81ee0102vakq.html C2C就是我卖东西你来买 B2C就是我成立个公司卖东西,你来买 京东、当当、亚马逊、天猫、聚美优品、唯品会 O2O就是我成立个公司卖东西你来买但是要你自己来拿 B2B就是你也成立了公司买我公司的东西 阿里巴巴 一.五种常见的电子商务模式对比 电子商务模式是指企业运用互联网开展...

忘川 7万+

鸿蒙应用权限管理和访问控制

鸿蒙应用权限管理和访问控制

求变,从思想开始 9302

B2B2C、C2F、S2B2b2C、O2O、S2B2C和各种的模式缩写解释说明

文章目录常见电子商务模式B2BB2CB2B2CC2CC2FS2B2CS2B2b2CO2O其他电子商务知识电子商务知识口诀电子商务模式 前言:S2B2b2C、B2B2C、B2B、C2F、O2O、B2C、S2B2C,大家如果看着这些常见又陌生的名词,是不是有点摸不着头脑?下面带大家认识一下各自的概念意义: 常见电子商务模式 B2B B2B(也有写成 BTB,是Business-to-Business的缩写)是指企业与企业之间通过专用网络或Internet,进行数据信息的交换、传递,开展交易活动的商业模式。它

流楚丶格念的博客 9701

对权限的理解

权限管理: 一: 1、  用户(User)可以拥有多个角色(Role),角色可以被分配给多个用户 2、  权限的意思就是对某个资源的某个操作,现在规定: a)      所谓资源,即系统的模块 b)      所谓操作,包括:增加、删除、修改、查询等操作 3、  权限管理系统的总体功能分为:授权与认证 4、  授权,指将权限授予角色或用户 a)      如果用户A拥有角色B、

lzq_blog的博客 1667

二维小波变换——wrcoef2、upcoef2、detcoef2、appcoef2

文章目录1.wrcoef22.upcoef23.detcoef24.appcoef25.upwlev26.dwtpet27.idwtper2 1.wrcoef2 功能:从二维小波系数重构单分支 用法: X = wrcoef2(‘type’,C,S,wname,N) 根据小波分解结构[C,S],计算N级重构系数矩阵。wname是包含小波名称的字符向量或字符串标量(有关详细信息,请参阅wfilters)。如果‘type’=‘a’,则重构近似系数;如果’type’=‘h’(‘v’或’d’,则分别重建水平(垂直或

weixin_43889476的博客 7199

springboot2与swagger2整合

传统的做法,我们应该会为每个系统准备一份接口文档,方便各个团队之间的交流。但是在微服务快速发展的今天,各个系统之间的交流基本都依赖于接口调用,这样就导致接口变得越来越多,开发人员在开发的同时还要维护文档,任务量加重,哀声一片,也可能会出现开发人员未及时维护文档,使得文档与接口信息不一致。 传统做法,在如今是一个不太友好的方式,为了解决上述问题,Swagger出现了。Swagger是一款可以通过注...

二月初二 6963

MATLAB实现2ASK,2PSK,2FSK

matlab小白,还希望多多交流~ 问题描述 设二进制序列为 1011010010,画出 2ASK 2PSK 2FSK 波形 原理描述 1、2ASK ASK即“幅移键控”又称为“振幅键控”,2ASK是二进制振幅键控。发送为二进制符号“0”时,2ASK信号取值为0;发送为二进制符号“1”时,2ASK信号取值为载波对应的值。可用下面表达式表示 2、2PSK 2PSK称为二进制相移键控,是相移键控的...

weixin_43861730的博客 2万+

B2B、B2C、C2C、O2O分别是什么意思

从大学实习开始,到现在也面试了挺多的公司的,面试官在介绍公司的时候,往往会说,我们是一家B2B模式的公司,然后就是巴拉巴拉很多介绍,那么到底什么是B2B模式的公司呢?B2B,B2C,C2C,O2O这些不同模式到底有什么区别?下面简单介绍一下。 B2B B2B(也有写成 BTB,是Business-to-Business的缩写)是指企业与企业之间通过专用网络或Internet,进行数据信息的交换...

阿龙的博客 2500

图像的变换——dwt、idwt、wcodemat、dwt2、idwt2、wavedec2、waverec2

文章目录三、图像小波变换1.一维小波变换dwt函数idwt函数2.二维小波变换wcodemat函数dwt2函数wavedec2函数idwt2函数waverec2函数 三、图像小波变换 1.一维小波变换 dwt函数 idwt函数 2.二维小波变换 wcodemat函数 dwt2函数 wavedec2函数 idwt2函数 waverec2函数 ...

weixin_43889476的博客 1万+

数据库必知必会系列:数据库权限管理与访问控制

作者:禅与计算机程序设计艺术 1.简介 数据库权限管理与访问控制(Database Access Control),即管理者能够针对特定的用户、组或其他实体,分配有限或完全权限来控制对数据库资源的访问权限,确保数据的安全、完整和可用。权限管理通过限制数据访问、授权用户执行特定操作、审核数据库活动等方式来

AI天才研究院 2312

ROS2 - tf2

在本教程中,您将了解静态变换如何用于定义坐标系之间的静态关系,例如神秘海龟与世界坐标系的关系。此外,您还了解了静态变换如何通过将数据与通用坐标系相关联来帮助理解传感器数据(如激光扫描仪的数据)。最后,你们编写了自己的节点来向 tf2 发布静态变换,并学习了如何使用 static_transform_publisher 可执行文件和启动文件来发布所需的静态变换。在之前的教程中,我们创建了一个 tf2 广播器,将乌龟的姿势发布到 tf2。在本教程中,我们将创建一个 tf2 监听器,开始使用 tf2。

机器人控制与仿真应用 2607

电商模式术语:ABC、B2B、B2C、C2C、B2M、M2C、B2A、C2A、O2O

电商模式分类详解 一、ABC 英文单词:Agent(代理商)、Business(商家)、Consumer(消费者) ABC 模式是新型电子商务模式的一种,被誉为继阿里巴巴 B2B 模式、京东商城 B2C 模式以及淘宝 C2C 模式之后电子商务界的第四大模式。它由代理商、商家和消费者共同搭建的集生产、经营、消费为一体的电子商务平台。 二、B2B 英文单词:Business(商家) to(对...

smileKutper的博客 2万+

ECU-TEST新手入门:从软件申请到第一个测试包创建的完整保姆级流程

本文详细介绍了ECU-TEST软件从申请试用、安装配置到创建第一个测试包的完整流程。针对新手用户,提供分步指导,包括界面认知、测试组件添加、变量定义及执行结果分析,帮助快速掌握汽车电子测试工具的基本操作。特别说明试用授权的两种获取方式和安装注意事项。

weixin_30606461的博客 480

opencv绘图基础(2):cv2.line,cv2.rectangle,cv2.circle,cv2.ellipse,cv2.polylines,cv2.putText

目录 1.绘制线段:cv2.line(img,pt1,pt2,color,thickness=None,lineType=None,shift=None) 2.绘制矩形:cv2.rectangle(img,pt1,pt2,color,thickness=None,lineType=None,shift=None) 3.圆绘制:cv2.circle(img,center,radius,color,thickness=None,lineType=None) 4.椭圆绘制:cv2.ellipse(i.

zzccxx5的博客 4316

深度学习之常用算子介绍

打开 onnx 模型图,可以看到它是一个有向无环图。除了 Input、Output ,其他都是算子(是操作,而不是节点)在ONNX(Open Neural Network Exchange)模型中,除了输入和输出,其他都是算子(Operations)。算子是表示神经网络模型中的不同操作或层的元素。一个ONNX模型由一系列算子组成,通过连接这些算子来定义模型的计算流程。

ueke1的博客 8459

探索robotics-toolbox-python:从基础安装到高级机器人运动学应用

本文详细介绍了robotics-toolbox-python工具箱,从基础安装、环境配置到机器人运动学与动力学的核心应用。通过D-H参数、URDF导入和内置模型三种方式快速构建机器人模型,并演示了正逆运动学计算、关节空间与任务空间轨迹规划以及三维可视化仿真。该工具箱极大地简化了机器人算法开发流程,是进行机器人学研究和应用实践的强大工具。

i1j2k的博客 496

了解B2B、C2C、B2C、C2B、O2O、F2C、B2B2C,以及走进电商

1.走进电商 1.1电商行业分析 近年来,中国的电子商务快速发展,交易额连创新高,电子商务在各领域的应用不断拓展和深化、相关服务业蓬勃发展、支撑体系不断健全完善、创新的动力和能力 不断增强。电子商务正在与实体经济深度融合,进入规模性发展阶段,对经济社会生活的影响不断增大,正成为我国经济发展的新引擎。 中国电子商务研究中心数据显示,截止到 2012 年底,中国电子商务市场交易规模达 7.85万...

qq_992833908 1万+

【CMU-自主导航与规划】Autonomous Exploration Development Environment 实战:从环境搭建到多场景测试

本文详细介绍了CMU开源自主导航开发环境(Autonomous Exploration Development Environment)的实战部署与测试。内容涵盖从Ubuntu与ROS环境搭建、仿真场景配置,到核心导航模块(地形分析、局部避障、航点跟踪)的深度解析,并演示了如何集成TARE探索与FAR规划等上层算法,最终指导连接真实SLAM与实车部署,完成多场景性能评估。

weixin_29215391的博客 704

主要电商模式 B2B C2C B2C C2B O2O F2C B2B2C

主要电商模式 B2B C2C B2C C2B O2O F2C B2B2C

小羊的博客 5121

如何合理评估信号过孔的残桩效应--Via Stub

设计中,之所以会去考察信号过孔的残桩效应(Via Stub),是因为它的存在导致了不需要的频率谐振,当这些谐振出现在所关注的信号通道的插入损耗中时,就会引发较为严重的信号完整性(SI)问题,那么Via Stub到底是如何引发SI问题的呢?

一只豌豆象的博客 4463

图解B+树的插入过程

B+ 树在现代数据库中很常见,如果我们了解它,在工作中可能对性能优化会有更好的帮助! 最近我一直在思考 B+ 树的高度是由什么决定的。知道我了解了 B+ 树的插入过程,才有一种恍然大悟的感觉! 网上的一些资料杂乱无章,不同的数据库可能还有对 B+ 树有不同的实现。但是万变不离其宗,B+ 树的定义,大致如下所示: 总结一下,B+ 树有下面 5 个重要的特点。 B+ 树包含 2 种类型的结点: 内部结点(也称索引结点)和叶子结点。 根结点本身即可以是内部结点,也可以是叶子结点。 根结点的关键字个数最

愿君出走半生,归来时仍是少年 2133

B2B、 C2C、B2C、C2B、O2O、B2B2C电商模式介绍与分析

B2B、C2C、B2C、C2B、O2O、B2B2C电商模式介绍与分析

四季轮换叶,一路招摇胜 4538

MIKE 21 教程 2.2 Domain, Time, Module Selection设置教学

上一节讲解了水动力模型的基本概念与文件创建MIKE 21 教程 2.1水动力模型介绍​本节讲解水动力模型前三个模块的设置此模块需导入之前绘制好的网格文件,导入后可预览网格文件点击上方的Domain Specification可查看网格的数据统计与高程属性,快速检查网格文件有无明显错误 点击上方的Boundary names,可查看之前定义的出入水边界。在网格文件中,我们对边界只能以数字属性进行区分,这里可以对数字属性进行命名,在name中直接修改即可。本实例中我们的2代表入水边界,3代表出水边界。因为博主日

Hello Word 3865

最新版Android Studio V2.2.2版本[Android Studio v2.2.2 (October 2016)]分享

最新版Android Studio V2.2.2版本分享 最新版Android Studio V2.2.2版本百度云下载:http://pan.baidu.com/s/1kVsGZkV

每一天都有新的希望 7999

SAP S/4HANA Public Cloud 配置全景实践

本文提供SAP S/4HANA Public Cloud配置的实用指南,重点介绍三大核心工具:CBC(范围界定与配置)、SAP Activate(方法论与路线图)和Cloud ALM(项目执行与运维)。文章详解了不同系统架构(2SL/3SL)的配置路径,并以制造企业案例说明端到端实施流程。同时提供了工具协同操作方法、初始访问安全建议和常见问题的专家意见,帮助项目团队高效完成实施工作。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 559

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Lab2 2A&2B

以及重置选举超时时间。

wh9937的博客 1319

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

上一篇: ACM四维权限管理模型 from beegee
下一篇: what java programmer must know about j2ee and sql db
tojava
博客等级 码龄24年 2粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值