B端产品权限设计

您所在的位置:网站首页 菜单权限管理功能是什么 B端产品权限设计

B端产品权限设计

2024-07-13 05:08| 来源: 网络整理| 查看: 265

一、RBAC介绍 1、RBAC简介

RBAC(Role-Based Access Control)是一种基于角色的访问控制,它是一种广泛使用的访问控制机制,用于控制用户对系统资源的访问。RBAC权限设计的核心思想是将用户分配到不同的角色中,每个角色都有一组权限,用户可以通过角色来访问系统资源。

在 RBAC 模型中, Who(角色)、 What(什么资源)、 How(哪些操作)构成了权限控制三要素,也就是谁对什么资源进行了哪些(怎样的)操作。

Who,权限拥有者(角色);

What,权限包含的资源(什么资源);

How,具体的权限操作(哪些操作)。

2、权限介绍 2.1 什么是权限

权限是指在信息系统中,用户或角色可以访问和执行的特定功能、数据或资源的范围。权限是一种访问控制机制,用于控制用户对系统中数据和资源的访问和操作,以确保系统的安全性和保密性。权限通常由管理员或系统管理员分配给用户或角色,并可以根据用户或角色的职责和需求进行调整。常见的权限包括新增、修改、删除、导入和复制等。

2.2 权限的作用

权限的作用是保护系统资源,防止未经授权的用户访问和修改系统资源,从而提高系统的安全性和可靠性。以下是权限的几个作用:

保护系统资源:权限可以帮助组织保护系统资源,防止未经授权的用户访问和修改系统资源。例如,只有管理员才能访问和修改系统配置文件,普通用户不能访问和修改这些文件。

控制用户访问:权限可以控制用户对系统资源的访问。例如,只有特定的用户或用户组才能访问某个文件或目录,其他用户不能访问这些文件或目录。

限制用户操作:权限可以限制用户对系统资源的操作。例如,只有特定的用户或用户组才能执行某个命令或操作,其他用户不能执行这些命令或操作。

提高系统安全性:权限可以提高系统的安全性,防止恶意用户对系统资源进行攻击或破坏。例如,在OA系统中,只有授权的用户才能修改人员信息,防止未经授权的用户对数据进行修改或删除。

3、RBAC 的优势

1. 简化权限管理:RBAC模型将权限分配到角色上,而不是直接分配给用户,减少了权限管理的复杂度和工作量,提高了权限管理的效率。

2. 灵活性:RBAC模型允许管理员根据需要创建和修改角色,从而使得权限管理更加灵活和可定制化。管理员可以根据不同的用户需求和工作职责,为不同的角色分配不同的权限,从而满足不同用户的需求。

3. 安全性:RBAC模型通过限制用户访问资源的权限,可以提高系统的安全性,避免了未经授权的用户访问敏感资源。RBAC模型的权限控制能力强,可以有效地保护系统的安全性。

4. 可扩展性:RBAC模型可以根据需要扩展,支持更多的用户和角色,更加适用于大型组织或系统。RBAC模型的扩展性好,可以根据不同的需求进行定制化,适应不同的应用场景。

4、原型图

原型作品为常用B端系统中的系统管理功能。该模块提供了对系统配置、用户管理、权限管理、日志记录等核心功能的管理。权限功能基于RBAC模型设计。通过对RBAC模型的深入分析和归纳整理,设计出本作品的组织管理、岗位管理、用户管理、角色管理、权限管理等。尤其对权限部分进行了更加细致的设计。

作品连接:https://www.axured.cn/a/563.html

二、 RBAC 模型的分类

RBAC是⼀种分析模型,主要分为:RBAC0(基本模型Core RBAC)、RBAC1(⾓⾊分层模型Hierarchal RBAC)、RBAC2(⾓⾊限制模型Constraint RBAC)和RBAC3(统⼀模型Combines RBAC),整体又叫做RBAC96。 其中 RBAC0 是基础,也是核心部分,RBAC1、 RBAC2、 RBAC3 都是在 RBAC0 为基础上扩展的。

1.RBAC0

RBAC0(基本模型Core RBAC)是RBAC模型的最基本形式,是最核心的模型,支持 RBAC 概念的任何系统的最低需求。

在RBAC 模型中,通过将权限分配给角色,当该角色被指定给用户时,用户就拥有了该角色所分配的权限。每个角色至少具备一个权限,每个用户至少扮演一个角色。

角色在用户和权限之间起到了连接的作用。通过将用户分配到不同的角色中,可以为不同的用户组设置不同的权限。用户和角色是多对多的关系,表示一个用户在不同的场景下可以拥有不同的角色;角色和权限也是多对多的关系,表示角色可以拥有多个权限,同一个权限可以分配多个角色。

一般情况下,使用 RBAC0 模型可以满足系统常规的权限管理系统设计。

2.RBAC1

RBAC1是RBAC⾓⾊的分层模型,基于RBAC0模型,RBAC1 引入了角色间的继承关系, ⾓⾊有了上下级(等级)关系。

同一个角色可以有不同等级,不同等级又对应着不同的权限;子角色可以对父角色的权限进行继承,子角色的权限一定小于父角色。。

此模型合适于角色之间的层次明确,包含关系明确的系统需求,可以将角色分组分层,减少权限分配过程中的冗余操作,同时也方便了权限的管理和维护。

 例如某个业务部门,有经理、主管、专员。主管的权限不能大于经理,专员的权限不能大于主管,为避免出现主管权限大于经理,专员权限大于主管的情况,增加继承条件约束,这样专员权限就会是主管的子集,主管是经理的子集。

 例如某个业务部门,有经理、主管、专员。主管的权限不能大于经理,专员的权限不能大于主管,为避免出现主管权限大于经理,专员权限大于主管的情况,增加继承条件约束,这样专员权限就会是主管的子集,主管是经理的子集。

3.RBAC2

RBAC2是RBAC的约束模型,RBAC2也是建⽴的RBAC0的基础之上的,在RBAC0基础上假如了约束的概念,添加了责任分离关系,对角色增加了一些限制。主要包括:静态职责分离SSD(Static Separation of Duty)和动态职责分离DSD(Dynamic Separation of Duty)。

限制- 静态职责分离SSD限制- 动态职责分离DSD

角色互斥约束:同一用户在两根相互互斥的角色中只能选择一个,角色互斥是指权限互相制约的两个角色。

角色基数约束:一个用户分配的角色数量是受限的,一个角色能分配到的权限也是受限的。

先决条件角色约束:用户想获得较高的权限,要首先拥有低级的权限。

限制-动态职责分离DSD

运行时互斥:一个用户拥有两个角色,但在运行中只能其中使用一个角色。

4.RBAC3

RBAC3是统一模型,他是RBAC1与RBAC2的合集,所以RBAC3是既有⾓⾊分层⼜有约束的⼀种模型,综合了 RBAC0、 RBAC1 和 RBAC2 的所有特点。

5.用户组

当系统用户较多,角色多时,如果直接给用户配角色,管理员的工作量就会很大。这时候我们可以引入一个概念“用户组”,就是将相同属性的用户归类到一起。

用户组是指一组用户,这些用户具有相同的角色和权限,可以被视为一个整体进行管理。用户组通常是由系统管理员创建和维护的,一个用户可以属于多个用户组,每个用户组可以包含多个用户。管理员可以根据不同的需求创建不同的用户组,并为每个用户组分配不同的角色和权限,用户组里的每个用户即可拥有该角色,以后其他用户加入用户组后,即可自动获取用户组的所有角色。通过用户组的管理,管理员可以更加方便地进行用户管理和权限控制,同时也可以提高系统的安全性和可靠性。

在实际应用中,用户组可以用于实现不同的管理需求,例如按照部门、岗位、职责等进行划分,或者按照不同的业务流程进行划分。用户组的使用可以提高系统的管理效率和灵活性,同时也可以为用户提供更好的使用体验。根据用户组是否有上下级关系,可以分为有上下级的用户组(部门)和普通用户组(分组)。

例如:在OA系统中,通常包含部门管理(组织管理),部门是包含上下级关系的;也会设计一个分组管理的模块,用于临时组织的团队,是不含上下级关系的。

 

三、如何设计RBAC 1、RBAC的功能模块 账户管理

账户管理模块主要用于管理系统中的用户账号。该模块包括用户账号、修改密码、分配角色等功能。用户可以通过该模块进行账户管理,包括查看用户个人信息、修改个人信息、查看账户角色等功能。

角色管理

角色管理模块用于管理系统中不同用户角色的权限。该模块可以定义不同的角色,如管理员、普通用户等,并为每个角色分配不同的权限。通过该模块,管理员可以对不同的角色进行管理,包括添加、修改、删除角色等操作。同时,管理员还可以为不同的角色分配不同的权限,保证系统的安全性和稳定性。

权限管理

权限管理模块用于管理系统中各个功能模块的访问权限。该模块可以定义不同的权限,数据权限、操作权限、范围权限等,比如,操作权限可以设置查看、编辑、删除、导出等。通过该模块,管理员可以对不同的功能模块进行管理,包括添加、修改、删除权限等操作。同时,管理员还可以为不同的角色分配不同的权限,保证系统的安全性和稳定性。

 2、RBAC执行流程

3、基于RBAC的几种权限体系设计 3.1 用户-角色-权限 3.1.1 用户与角色的关系的两种设计

◆ 用户与角色多对一关系

一个用户只能分配一种角色,一种角色可以分配给多个用户。

如果系统功能比较简单,使用用户较少,岗位权限相对清晰且确保不会出现兼岗的情况,此时可以考虑用多对一的权限体系。

◆ 用户与角色多对多关系

一个用户可同时分配多种角色,一种角色可以分配给用户。

尽量使用多对多的权限体系,保证系统的可扩展性。

3.2 用户-组织-角色-权限

在“用户-角色-权限”的基础上,增加了用户与组织的关联关系,组织决定了用户的数据范围的权限。

根据业务,系统都有数据私密性的要求:哪些用户可以看到哪些数据,哪些用户不可以看到哪些数据。这个时候,我们需要从组织结构出发思考,数据范围权限其实是角色权限的重要属性,但是由于数据范围太灵活,如果加入“数据权限”,如果账号下的数据量较大,用户编辑数据权限的操作会很繁琐。因此现在主流的后台设计都会使用“组织结构”来对应数据权限。

 常用数据范围设置:全部数据权限、自定数据权限、本部门数据权限、本部门及以下数据权限、仅本人数据权限

3.3 用户-组织-岗位-角色-权限

在第二种权限体系上进行优化的,增加了用户与岗位的关联关系

四、 权限管理 1. 操作权限

操作权限是指在一个系统中,授予不同的用户或用户组执行特定操作的权限。这些操作可以是对系统中的数据进行读取、修改、删除等操作,也可以是对系统中的功能进行访问、配置等操作。操作权限保证了系统的安全性和保密性,同时也可以提高系统的可用性和可靠性。

2. 范围权限(数据范围)

范围权限是指在一个系统中,对于不同用户或用户组,设置不同的数据访问权限,即限制用户能够访问的数据范围。范围权限可以控制用户只能访问其需要的数据,避免了用户访问不需要的数据,保护敏感数据不被未经授权的用户访问或修改,同时也可以确保数据的完整性和安全性。

3. 数据权限

数据权限是指在一个系统,对于不同的用户或用户组,授予不同的数据访问权限的过程。这里的数据权限包含菜单、页面以及字段等。这些权限可以限制用户可以访问哪些数据、以及他们可以对这些数据进行哪些操作。数据权限的目的是确保数据的安全性和保密性,同时也可以提高数据的可用性和可靠性。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3