web系统中ACL, RBAC等鉴权系统的异同

ACL, 强调面向资源, 描述对具体资源对象的操作鉴权, 有诸如Zend_ACL(好用), symfony-acl(不好用)等实现

应用场景如:对一条帖子资源的增删改鉴权, 整个鉴权流程中, 权限部分是由具体帖子对象和增删改等操作共同构成的。授权的结果是将 “资源---操作” 组合授权给用户。

RBAC,强调面向角色的权限节点鉴权, 描述对功能节点的鉴权,有诸如ThinkPHP-RBAC, sylius/rbac-bundle(symfony)等实现

应用场景如: 依据不同用户角色显示不同后台菜单或功能,  依据不同用户角色判断用户是否能请求调用某个控制器方法 等等

综合来看, ACL的权限中心是资源对象(数据库中), RBAC的权限中心是功能节点(没有对应数据记录)。

因此可以看出, 其实两个鉴权系统解决的是不同方面的问题。若需要对数据库记录的操作安全进行鉴权可使用ACL, 若是需要安全显示站点各功能或者限制特定用户对控制器方法的请求, 可使用RBAC来鉴权。

以上,纯粹是个人理解, 若有异议, 欢迎讨论。

时间: 2024-08-08 01:25:20

web系统中ACL, RBAC等鉴权系统的异同的相关文章

鉴权系统和改良

到新公司报道一周了,实际工作时间四天.做的是即时通信产品的不良信息管控系统.即时通信家族里,最有名的应该时微信了吧.但微信里可能没有这个不良信息管控系统.大概因为微信没有这个义务吧. 什么时不良信息管控?举个栗子,如果微信有这个功能,你在朋友圈中发一张黄色图片,这张图片在朋友圈中呈现出来之前,它会先被发给服务器(集群),服务器会对这张图片进行鉴权,判断它是黑(非法)还是白(合法),如果合法,则放行,并最终在朋友圈呈现.如果非法,则被拦截,同时它的相关信息被记录,并上报给集中管控点. 如何实现?最

以Drools5.5为例说明“规则引擎在业务系统中应用”---规则引擎与业务系统交互

一.重要概念 Fact:是指在Drools规则应用当中,将一个普通的JavaBean插入到规则的WorkingMemory当中后的对象. 规则可以对Fact对象进行任意的读写操作,当一个JavaBean插入到WorkingMemory当中变成Fact之后,Fact 对象不是对原来的JavaBean对象进行Clon,而是原来JavaBean对象的引用.规则在进行计算的时候需要用到应用系统当中的数据,这些数 据设置在Fact对象当中,然后将其插入到规则的WorkingMemory当中,这样在规则当中

系统中参数的初始化 参数在系统中配置

1.我们来看这个需求,例如:我们上传图片.上传附件 需要放在服务器上的一个目录上,该目录在不同的操作系统下是不同的.因为我们在写java代码的时候就不能写死. 这个时候我们就要用到系统参数.在界面上自己去配置.这样在系统迁移的时候就不用改java代码了. 2.系统参数可以自己在页面配置.如下图所示: 我们可以设置这样一个参数entity.,设置一个界面,该界面可以针对自己需要改变的参数进行增删改操作. 3.这里涉及到该参数entity什么时候初始化的问题,上一篇文章我们写到过 我们可以写一个类P

回源鉴权算法说明

功能介绍 CDN 上分发的内容默认为公开资源,为了避免恶意用户盗刷内容进行牟利,猫云 CDN 支持 URL 鉴权配置 算法说明 TypeA TypeB TypeC TypeD 配置指引 1.登录猫云CDN 控制台,单击左侧目录[域名管理],选择需要设置的域名,在右侧操作栏单击[配置]>[防盗链配置],单击回源鉴权开启[鉴权配置],目前提供四类模式可选: 2.选定类型后,可进行鉴权参数配置(以 TypeA 为例): 鉴权密钥:可根据自身业务情况指定字符串作为鉴权密钥 . 签名参数:设置携带签名串的

阿里云服务器 Linux系统中常见的日志介绍

云服务器 ECS Linux 系统中,日志文件是非常重要的文件,它们记录了很多系统中重要的事.Linux 系统中常见日志文件概述如下: /var/log/cron可以在 cron 文件中检查 crontab 任务调度是否实际执行,执行过程是否发生错误,以及 /etc/crontab 文件是否有语法错误或编写错误. /var/log/dmesg可以在 dmesg 文件中检查系统在开机时候内核检测过程所产生的各项信息,包括系统的设备信息,以及在启动和操作过程中系统记录的任何错误和问题的信息.通过 d

云服务器 ECS Linux 系统中常见的日志文件介绍

云服务器 ECS Linux 系统中,日志文件是非常重要的文件,它们记录了很多系统中重要的事.Linux 系统中常见日志文件概述如下: /var/log/cron可以在 cron 文件中检查 crontab 任务调度是否实际执行,执行过程是否发生错误,以及 /etc/crontab 文件是否有语法错误或编写错误. /var/log/dmesg 可以在 dmesg 文件中检查系统在开机时候内核检测过程所产生的各项信息,包括系统的设备信息,以及在启动和操作过程中系统记录的任何错误和问题的信息.通过

OpenGL------在Windows系统中显示文字

增加了两个文件,showline.c, showtext.c.分别为第二个和第三个示例程序的main函数相关部分.在ctbuf.h和textarea.h最开头部分增加了一句#include <stdlib.h>附件中一共有三个示例程序:第一个,飘动的“曹”字旗.代码为:flag.c, GLee.c, GLee.h第二个,带缓冲的显示文字.代码为:showline.c, ctbuf.c, ctbuf.h, GLee.c, GLee.h第三个,显示歌词.代码为:showtext.c, ctbuf.

不同于Windows的Linux系统中命令运用(一)

今天介绍的是linux系统中命令运用.与Windows系统不同,Linux系统更多是在命令行下面进行管理与配置. 一.简介: Linux操作系统由Linux内核和各种外围程序组成.内核用于实现CPU.内存分配.进程调度.设备驱动等核心操作,面向硬件为主:外围程序包括分析用户指令的解释器.网络服务程序.图形桌面程序等各种应用软件程序,面向用户为主. Linux系统的发行版本有以下三个:1.Red Hat系列2.Debian系列3.Ubuntu系列发行版的名称.版本由发行厂商决定. GPL和LGPL

混合了RBAC和ACL的权限系统(二) -- 基于RBAC的系统权限

http://fightplane.iteye.com/blog/1278464 1. 概念说明 A 系统级权限:从角色的角度出发,不特定于任何实际的资源的权限.比如“用户是否可以修改标题”这个权限,不针对于任何特定的标题.权限赋予给某个特定的角色.采用RBAC模型实现 B 对象级权限:从对象实例的角度出发.比如针对于某个特定的标题,编辑在这个标题上的权限.采用ACL模型实现. 那么判断用户是否可以修改某条的标题的判断顺序如下:    1) 用户所属的角色是否拥有“修改标题”的权限    2)