引言

权限系统模块对于互联网产品是一个非常重要的功能,可以控制不同的角色合理的访问不同的资源从而达到安全访问的作用

此外本次课程有视频讲解: http://www.imooc.com/learn/799 ,对应演示系统:http://rbac.54php.cn

权限控制模型

  • ACL

  • RBAC 基于角色的访问控制

从上图我们可以看出,ACL是用户和权限直接关系的,RBAC则是通过角色间接关联用户和权限的。所以角色是RBAC系统的一个重要属性

Why RBAC

为什么我们选择RBAC模型,原因如下

  1. 方便用户分组

  2. 方便权限分配和回收

  3. 扩展方便,可以满足大部分业务需求

RBAC

框架

图中有5个角标数字,对应的就是RBAC模型重要的5个属性

RBAC关系图
序号 关键属性 描述
1 用户  张三、李四、王五
2 角色 销售经理、销售、前台
3 用户角色关系 张三 是  销售经理 、李四 王五 是 销售
4 权限 添加客户、编辑客户、删除客户,查看客户
5 角色权限关系

销售 拥有 查看客户的 权

限、销售经理可以 查看/添加/删除/编辑客户的

功能

如上图,一个RBAC权限模块,必然要实现三个功能

  1. 用户管理

    1. 用户列表

    2. 添加用户

    3. 编辑用户

    4. 设置用户角色

  2. 角色管理

    1. 角色列表

    2. 添加角色

    3. 编辑角色

    4. 设置角色权限

  3. 权限管理

    1. 权限列表

    2. 新增权限

    3. 编辑权限

战果演示

  • 第一张截图有2个浏览器,左边使用超级管理员打开,右边的使用 前台角色郭小威 用户打开

  • 第二张截图 展示的是 为 前台 设置权限

  • 第三张截图展示了可以浏览的页面(图一中有无法浏览提示)

资源

  1. 演示代码(请务必先查看readme文件) https://github.com/apanly/rbac

  2. 课程视频地址: http://www.imooc.com/learn/799

  3. 对应演示系统:http://rbac.54php.cn

原文地址:【RBAC】打造Web权限控制系统
标签:权限   角色   用户   控制   rbac   user   role   access   用户管理   权限管理   角色管理

智能推荐

【RBAC】打造Web权限控制系统的更多相关文章

  1. RBAC打造通用WEB权限

    RBAC不用给用户单个分配权限,只用指向对应的角色就会有对应的权限,而且分配权限和收回权限都很方便 5个关系对应5张表 五张表设计 CREATE TABLE `user` ( `id` ) unsig ...

  2. ASP.NET MVC 基于角色的权限控制系统的示例教程

    上一次在 .NET MVC 用户权限管理示例教程中讲解了ASP.NET MVC 通过AuthorizeAttribute类的OnAuthorization方法讲解了粗粒度控制权限的方法,接下来讲解基于 ...

  3. ASP.net MVC 基于角色的权限控制系统的实现

    一.引言 我们都知道ASP.net mvc权限控制都是实现AuthorizeAttribute类的OnAuthorization方法. 下面是最常见的实现方式: public class Custom ...

  4. 简单的RBAC用户角色权限控制

    Java web项目中,无论项目是大是小,或多或少都会涉及到用户访问权限的控制,权限管理总体的设计思路就是,不该看的不看,不该做的不做!据我目前的了解,我所知道的几种实现访问权限控制的方式有: JQu ...

  5. 基于 Spring Security 的前后端分离的权限控制系统

    话不多说,入正题.一个简单的权限控制系统需要考虑的问题如下: 权限如何加载 权限匹配规则 登录 1.  引入maven依赖 1 <?xml version="1.0" enc ...

  6. 扩展RBAC用户角色权限设计方案(转载)

    扩展RBAC用户角色权限设计方案  来源:https://www.cnblogs.com/zwq194/archive/2011/03/07/1974821.html https://blog.csd ...

  7. web权限验证方法说明[转载]

    前言 本文将会从最基本的一种web权限验证说起,即HTTP Basic authentication,然后是基于cookies和tokens的权限验证,最后则是signatures和一次性密码. HT ...

  8. RBAC打造通用web管理权限

    https://www.cnblogs.com/lamp01/p/6576432.html https://www.imooc.com/learn/799

  9. RBAC权限控制系统

    1.概述 RBAC(Role-Based Access Control )基于角色的访问控制. RBAC的权限控制可以抽象概括为:判断[Who是否可以对What进行How的访问操作(Operator) ...

随机推荐

  1. chm只看到目录,看不到内容解决办法

    鼠标左键->属性->解除锁定->搞定!

  2. GC--垃圾收集器

    把周末的文章放在现在才来写,是自己太忙了?还是堕落了? 好吧直接进入主题吧,简单干脆的理解会让自己记忆深刻: 首先说明:GC垃圾收集器关注两件事情: 第一件:查找所有存活对象. 第二件:抛弃死对象(不 ...

  3. Kafka(一)-- 初体验

    一.概念 Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据. 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素. 这些 ...

  4. Django SimpleCMDB WSGI

    一.WSGI 介绍 (1) 在前面的学习中,我们是通过 python manage.py runserver 0.0.0.0:8000 来启动并访问开发服务器的:(2) 但在实际中我们是通过直接访问 ...

  5. Git服务器的搭建和使用

    一.GIT服务器的搭建 1. 安装Git yum -y install git 2. 创建git用户 adduser git 3. 创建证书登陆   收集所有客户端需要登录的用户的公钥,就是他们自己的 ...

  6. 一个简单的demo学习Android远程Service(AIDL的使用)

    这是milo很早之前写在论坛上的一个帖子,现在整理出来,milo也复习一下一般来说Android 的四大组件都是运行在同一个进程中的,但远程Service运行在不同的进程里.这进程间的通信是使用了An ...

  7. Python错误和异常 学习笔记

    错误和异常概念 错误:     1.语法错误:代码不符合解释器或者编译器语法     2.逻辑错误:不完整或者不合法输入或者计算出现问题 异常:执行过程中出现万体导致程序无法执行     1.程序遇到 ...

  8. iOS - 选取相册中iCloud云上图片和视频的处理

    关于iOS选取相册中iCloud云上图片和视频  推荐看:TZImagePickerController的源码,这个是一个非常靠谱的相册选择图片视频的库 .当然也可以自己写 如下遇到的问题 工作原因, ...

  9. PHP array_unique()函数去除重复元素

    定义和用法 array_unique() 函数移除数组中的重复的值,并返回结果数组. 当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除. 返回的数组中键名不变. 语法 array_uniq ...

  10. 【vue基础学习】vue.js开发环境搭建

    1.安装node.js(http://www.runoob.com/nodejs/nodejs-install-setup.html) 2.基于node.js,利用淘宝npm镜像安装相关依赖 在cmd ...