RBAC(角色访问控制)的基本思想

简介:
 

  RBAC(角色访问控制)的基本思想可简单地用图1来表示,即把整个访问控制过程分成两步:访问权限与角色相关联,角色再与用户关联,从而实现了用户与访问权限的逻辑分离。

  由于RBAC实现了用户与访问权限的逻辑分离,因此它极大的方便了权限管理。例如,如果一个用户的职位发生变化,只要将用户当前的角色去掉,加入代表新职务或新任务的角色即可,角色/权限之间的变化比角色/用户关系之间的变化相对要慢得多,并且委派用户到角色不需要很多技术,可以由行政管理人员来执行,而配置权限到角色的工作比较复杂,需要一定的技术,可以由专门的技术人员来承担,但是不给他们委派用户的权限,这与现实中情况正好一致。

  用户权限在.NET中的设计与实现

  利用.NET中的用户控件实现权限控制的基本思想是:根据角色访问控制(RBAC)的基本原理,给用户分配一个角色,每个角色对应一些权限,然后利用ASP.NET中的用户控件(UserControl)来判断该用户对应的角色是否对访问页面有访问的权力。

  下面将从数据库设计、添加角色和用户控件的使用等三方面来阐述具体实现过程。

  1、数据库中表的设计

  首先,在数据库中设计功能模块表、功能表和角色表等三个表。

  (1) 功能模块表 

  为了管理好用户的权限,首先要组织好系统的模块,为此设计了一个功能模块表。见表1。


RBAC(角色访问控制)的基本思想 - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝
  (2) 功能表

RBAC(角色访问控制)的基本思想 - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝
  每个功能模块所具有的子功能称为功能,如商品管理模块goods(属于功能模块的范畴)包含商品信息查询、商品信息更新、商品信息删除、商品定价信息查询以及商品定价信息更新五种功能,功能表的设计见表2。

  上面提到的例子可以作为这样几条记录分别插入功能模块表和功能表。

RBAC(角色访问控制)的基本思想 - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝
insert into TModule values(0,'商品管理模块','goods',5);
insert into Tfunction values(0,'商品信息查询','selectgoods',0);
insert into Tfunction values(1,'商品信息更新','updategoods',0);
insert into Tfunction values(2,'商品信息删除','deletegoods',0);
insert into Tfunction values(3,'商品定价信息查询','selectgoodsprice',0);
insert into Tfunction values(4,'商品定价信息更新','updategoodsprice',0);

  (3) 角色表

RBAC(角色访问控制)的基本思想 - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝
  角色表的设计关键在于角色值的定义,它是一个由0和1组成的类似二进制数的字符串。而功能表中的funcNo (功能编号)字段表示该功能在角色表的roleValue (角色值)字段中的位置,如果该位置对应的数值是0,表示该角色无此权限,如果值为1,则表示该角色拥有此权限。如角色普通会员的角色值为100100…00(共100位),如上所示,商品信息查询的功能编号为0,角色值100100…00的第0位为1,所以该普通会员角色拥有商品信息查询的功能;相反,该角色值的第1位为0,而功能编号为1 的功能为商品信息更新,所以该普通会员角色没有商品信息更新的权限。它们的关系可由图2来表示。

RBAC(角色访问控制)的基本思想 - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝










     本文转自My_King1 51CTO博客,原文链接:http://blog.51cto.com/apprentice/1360594,如需转载请自行联系原作者


相关实践学习
云安全基础课 - 访问控制概述
课程大纲 课程目标和内容介绍视频时长 访问控制概述视频时长 身份标识和认证技术视频时长 授权机制视频时长 访问控制的常见攻击视频时长
相关文章
|
4月前
|
Kubernetes 数据安全/隐私保护 容器
k8s学习-CKA真题-基于角色的访问控制-RBAC
k8s学习-CKA真题-基于角色的访问控制-RBAC
181 0
|
安全 Java 数据安全/隐私保护
Spring Security-内置访问控制方法介绍和角色权限判断
Spring Security-内置访问控制方法介绍和角色权限判断
Spring Security-内置访问控制方法介绍和角色权限判断
|
数据安全/隐私保护
RBAC基于角色的访问控制权限的基本模型
RBAC基于角色的访问控制权限的基本模型
118 0
RBAC基于角色的访问控制权限的基本模型
|
弹性计算 数据安全/隐私保护
.Net Core实战之基于角色的访问控制的设计-
2年前开源了Sikiro.RBAC系统(https://github.com/SkyChenSky/Sikiro.RBAC)但是缺少了部署流程,这次通过申请免费的ECS,重新把流程梳理了下,并整理成改篇文章。 .Net Core实战之基于角色的访问控制的设计(https://www.cnblogs.com/skychen1218/p/13053878.html)
|
弹性计算 数据安全/隐私保护
.Net Core实战之基于角色的访问控制的设计-部署篇
2年前开源了Sikiro.RBAC系统(https://github.com/SkyChenSky/Sikiro.RBAC)但是缺少了部署流程,这次通过申请免费的ECS,重新把流程梳理了下,并整理成改篇文章。 .Net Core实战之基于角色的访问控制的设计(https://www.cnblogs.com/skychen1218/p/13053878.html)
|
弹性计算 NoSQL Linux
.Net Core实战之基于角色的访问控制的设计-部署篇
2年前开源了Sikiro.RBAC系统(https://github.com/SkyChenSky/Sikiro.RBAC)但是缺少了部署流程,这次通过申请免费的ECS,重新把流程梳理了下,并整理成改篇文章。 .Net Core实战之基于角色的访问控制的设计(https://www.cnblogs.com/skychen1218/p/13053878.html)
80469 23
.Net Core实战之基于角色的访问控制的设计-部署篇
|
数据安全/隐私保护
.Net Core实战之基于角色的访问控制的设计(三)
.Net Core实战之基于角色的访问控制的设计(三)
136 0
.Net Core实战之基于角色的访问控制的设计(三)
|
数据安全/隐私保护
.Net Core实战之基于角色的访问控制的设计(二)
.Net Core实战之基于角色的访问控制的设计(二)
127 0
.Net Core实战之基于角色的访问控制的设计(二)
|
1月前
|
网络协议 网络安全 网络性能优化
网络技术基础(14)——ACL访问控制列表
【3月更文挑战第3天】刚加完班又去南京出差了,实在是太忙了。。。。
|
8月前
|
网络安全 数据安全/隐私保护
访问控制列表与SSH结合使用,为网络设备保驾护航,提高安全性
访问控制列表与SSH结合使用,为网络设备保驾护航,提高安全性
94 0
访问控制列表与SSH结合使用,为网络设备保驾护航,提高安全性