权限管理系统 01 系统介绍

为什么需要权限管理系统?

  • 安全性:误操作,人为破坏,数据泄露等。通过权限管理,实现指定账户有不同的权限,可以操作指定的数据库,特定的数据操作等,比如普通人员(只读账户)只有查询权限,没有修改和删除等权限。
  • 数据隔离:不同的权限能能看到以及操作不同的数据。财务只能财务或者其他指定人员可以看到财务数据库。
  • 明确职责:运营、客服等不同角色,leader和dev等不同等级。运营可以看到店铺订单情况,客服能看到产品反馈情况,运营就不能都看到。运营可以看到业绩情况,客服看不到 。

权限管理核心

  • 用户 - 权限 :人员少,功能固定,系统简单。比如 mysql数据库。
  • RBAC :·Role-Based Access Control 用户-角色-权限,都适用。基于权限的访问控制。权限与角色相关联,用户通过成为相应角色成员,而得到这个角色的权限。极大简化了权限管理。在项目中,角色是为了某种工作而创造出来的,而用户根据自己的职责,被指派为相应的角色,并且用户可以很容易的被指派为另一个角色,可以根据新的需求,赋予角色新的权限,权限也可从某个角色中回收。RBAC关注于 Users Roles Operations三者关系,Users和roles,roles和operations都是多对多的关系。

RBAC认为权限的过程可以抽象概括为:判断【Who是否可以对What进行How的访问操作(Operator)】这个逻辑表达式的值是否为True的求解过程。

即将权限问题转换为Who、What、How的问题。who、what、how构成了访问权限三元组。

RBAC支持公认的安全原则:最小特权原则、责任分离原则和数据抽象原则。

  • 最小特权原则得到支持,是因为在RBAC模型中可以通过限制分配给角色权限的多少和大小来实现,分配给与某用户对应的角色的权限只要不超过该用户完成其任务的需要就可以了。
  • 责任分离原则的实现,是因为在RBAC模型中可以通过在完成敏感任务过程中分配两个责任上互相约束的两个角色来实现,例如在清查账目时,只需要设置财务管理员和会计两个角色参加就可以了。
  • 数据抽象是借助于抽象许可权这样的概念实现的,如在账目管理活动中,可以使用信用、借方等抽象许可权,而不是使用操作系统提供的读、写、执行等具体的许可权。但RBAC并不强迫实现这些原则,安全管理员可以允许配置RBAC模型使它不支持这些原则。因此,RBAC支持数据抽象的程度与RBAC模型的实现细节有关。

理想中的权限系统应该是什么样子的

  • 能实现角色级权限 : RBAC

  • 能实现功能级,数据级权限。
    功能级权限管理:功能权限管理技术,一般使用RBAC模型。提供以下几个功能

    1. 角色管理:用户定义角色,给角色定赋权限
    2. 用户-管理界面:用户给系统用户赋予角色
    3. 用户-权限界面:用户定义权限

    数据级权限管理:没有统一的技术,大体采用如下技术

    1. 硬编码。if… else … 的形式和业务逻辑耦合在一起
    2. 使用规则引擎
    3. 专业的软件
  • 简单易操作,能应对各种需求

相关操作页面

  • 权限管理页面、用户管理页面、角色管理页面
  • 角色和权限关系维护界面、用户和角色维护界面

主流权限管理项目(框架)

  • Spring Security
  • Apache Shiro

下面两个章节,将对 Security 和 Shiro 两个框架进行学习。

你可能感兴趣的:(项目实战)