授权概览

什么是授权 (Authorization)?

广义上的授权:

是上级将完成某项工作所必须的权力授给部属人员;是领导者通过为员工和下属提供更多的自主权,以达到组织目标的过程。

信息系统中的授权:

是管理员将某些资源的访问、管理、操作等权限赋予用户,达到管理和使用的目的。譬如主机的访问使用权限,某项功能菜单的使用权限亦或是某个数据的读写权限。

本文将对信息系统中的授权进行着重讲解

授权的意义

授权管理是所有业务系统不可缺少的一部分!

企业角度:

1)贴合管理制度:随着公司的建设发展过程中,组织或岗位的职责越来越清晰,边界越来越明确,所以授权成为公司管理的必要手段。不同的岗位,职责需要进行不同的授权

2)保障数据安全:数据是企业的核心资产,价值不可估量。授权能让公司的数据安全得到保障,不同的权限能看到及操作不同的数据,防止用户在误操作、人为破坏、数据泄露等

3)提升工作效率:好的授权,权限管理,会让员工的工作效率得到提升。让系统更加易容,让和业务操作变得更加简单,数据获取分析变得更加方便快捷。

系统建设角度

1)安全性:保护信息系统的操作使用安全,数据安全,防止泄露,违规操作。

2)商业性:提升产品的市场竞争价值,好的授权功能,能容易获得用户青睐。

3)易用性:让系统使用更加便捷,提升用户体验,对管理员更为友好。

授权的分类

三级授权

我们将整体授权类型划分为三级

(1)一级权限:访问权限

(2)二级权限:菜单、按钮权限

(3)三级权限:数据权限

依据不同等级的授权,来控制授权的最小的颗粒度。

image.png

常用的授权模型

常用的授权模型主要有 3 种:

ACL

访问控制列表

RBAC

基于角色的权限控制

ABAC

基于属性的权限控制

ACL(Access Control List),在ACL中,包含用户(User)、资源(Resource)、资源操作(Operation)三个关键要素。

通过将资源以及资源操作授权给用户而使用户获取对资源进行操作的权限。

RBAC(Role-Based Access Control ),是把用户按角色进行归类,通过用户的角色来确定用户能否针对某项资源进行某项操作。RBAC相对于ACL最大的优势就是它简化了用户与权限的管理,通过对用户进行分类,使得角色与权限关联起来,而用户与权限变成了间接关联。

ABAC(Attribute Base Access Control) 基于属性的权限控制

不同于常见的将用户通过某种方式关联到权限的方式,ABAC则是通过动态计算一个或一组属性来是否满足某种条件来进行授权判断(可以编写简单的逻辑)。属性通常来说分为四类:用户属性(如用户年龄),环境属性(如当前时间),操作属性(如读取)和对象属性,所以理论上能够实现非常灵活的权限控制,几乎能满足所有类型的需求。