大数跨境
0
0

项目管理平台建设之路--权限设计(上)

项目管理平台建设之路--权限设计(上) 众安工程效能
2023-08-10
0
导读:随着我国数字化转型浪潮的推进,越来越多的企业将项目管理协作的工作转移到线上。从零到一搭建一个项目管理平台会涉及很多技术要点,本文将重点讲解其中权限的部分。


随着我国数字化转型浪潮的推进,越来越多的企业将项目管理协作的工作转移到线上,而面对企业各种定制化需求的业务逻辑,市场上很难有一款现成的项目管理平台能够做到开箱即用,很多企业都把精力放在了自建平台或外采定制化平台上。从零到一搭建一个项目管理平台会涉及很多技术要点,本文将重点讲解其中权限的部分。


一、登录权限

系统的登录权限验证是确保系统安全性的关键组成部分,一般企业内部都有单点登录系统或者使用IM工具登录等。所以对于项目管理平台来说,无需额外的登录模块及页面,只要对接SSO或IM工具来校验用户。用户登录验证的流程如下:



平台需自建用户表,用来存储用户。在设计表时应建立一些特殊字段来确定用户和其他系统的关联如:


二、资源权限

 在系统开发中,当涉及到权限设计时,第一个想到的权限模型通常是“角色-权限”模型,也称为“RBAC”(Role-Based Access Control)模型。这是一种常用且有效的权限管理方法,特别适用于大型系统或组织,以及需要对用户进行不同级别的权限控制的场景。

 在“角色-权限”模型中,权限控制主要基于以下几个概念:

1、角色(Role):

角色代表了一组相似权限需求的用户。每个用户可以被分配一个或多个角色,这些角色确定了用户在系统中可以执行的操作。

2、权限(Permission):

权限是系统中的某个功能、资源或操作。每个角色都与一组权限相关联,这些权限定义了该角色可以执行的操作。

3、用户(User):

用户是系统的实际使用者。用户被分配一个或多个角色,从而决定了他们在系统中的操作权限。

4、授权(Authorization):

授权是将角色与权限关联起来,以便在用户登录系统时确定其所具有的权限。


“角色-权限”模型的优点包括:

1、灵活性:

可以将权限分组成角色,使得管理和分配权限更加简化和灵活。

2、可扩展性:

随着系统的扩展,可以轻松地添加新角色和权限,而无需改变核心的权限逻辑。

3、易于维护:

角色和权限的管理和维护更加容易,可以集中管理用户权限,而不需要针对每个用户进行单独的设置。

4、安全性:

可以将用户按照其职责分配到不同的角色,从而降低了误操作或滥用权限的风险。

当然,在一些特殊情况下,也可能会考虑其他的权限模型,例如基于属性的访问控制(ABAC)模型、强制访问控制(MAC)模型等,这些模型可能更适合某些特定的应用场景和安全需求。但在绝大多数情况下,起步点通常是“角色-权限”模型。

因此,在RBAC模型中,用户、角色和资源之间存在多对多的关系,可以用以下关系图表示:



根据以上关系图,我们可以建立如下的表结构来实现RBAC模型:

1. 用户表(Users):


2. 角色表(Roles):


3. 资源表(Resources):


4. 用户角色关联表(UserRoles):


   5. 角色资源关联表(RoleResources):


通过以上表结构,可以建立用户、角色、资源之间的关联关系,实现RBAC模型的访问控制机制。当用户需要访问资源时,系统可以根据用户的角色来查找相应的资源,以确定用户是否有权访问该资源。需要注意的是,这只是一个简化的示例,实际系统中可能需要更多的字段和关联来满足具体的需求。

 

三、关键代码

后端springboot代码示例:

1、实现ApplicationContextAware


2、定义基础类AbstractLoginStrategy


3、SSO认证类SsoStrategy 继承AbstractLoginStrategy 


4、新建拦截器LoginInterceptorAdaper用于拦截用户登录


5、新建拦截器AuthInterceptor用于拦截路由资源的请求


前端Vue代码示例:

1、例如某一个按钮要增加权限控制


2、main.js中增加


3、permission.js如下:



【声明】内容源于网络
0
0
众安工程效能
众安工程效能为客户提供DevOps研发运维一体化平台,包括项目管理、CI/CD、质量测试、监控告警、效能度量等产品,打造业务数字化升级的坚强基石
内容 34
粉丝 0
众安工程效能 众安工程效能为客户提供DevOps研发运维一体化平台,包括项目管理、CI/CD、质量测试、监控告警、效能度量等产品,打造业务数字化升级的坚强基石
总阅读6
粉丝0
内容34