权限管理系统如何分别实现对用户和角色的授权
目前,大多数权限系统,都是基于RBAC的理念来设计的,关于RBAC,摘抄一下百度百科的解释:
在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而 得到这些角色的权限。这就极大地简化了权限的管理。在一个组织中,角色是为了完成各种工作而创造,用户则依据它的责任和资格来被指派相应的角色,用户可以 很容易地从一个角色被指派到另一个角色。角色可依新的需求和系统的合并而赋予新的权限,而权限也可根据需要而从某角色中回收。角色与角色的关系可以建立起 来以囊括更广泛的客观情况。
http://baike.baidu.com/link?url=vS4hKX1RrOgUUO325gBs_VdhDFCc4d07-6fqvu19bDWnE8Ljy_2ema98BA8LlQBBd-mnFzzix-CaTv1_0avfD_
简而言之:具体操作时,在系统中创建一个角色,给角色添加人,给角色授予操作权限,那么这些人就具有了这些操作权限,在应用中判断的时候最终应该是判断某个人是否有某个权限(关于权限的最终判断,可参考这篇文章http://www.cnblogs.com/hnsongbiao/p/5087359.html),
一、给用户授权
实际应用中,完全基于RBAC可能并不满足需求,就比如 Windows 虽然有 管理员组 / 普通用户组 / 来宾组之分,但它的私人文件夹还是会按用户的权限进行分配,而不会为了某一用户增加一个角色,那么在通用的权限管理系统中如何实现呢,先看下界面
给指定的用户授予权限,右边的子系统,表示是给该用户授予这个系统的操作权限,点击上面的用户按钮,弹出授权页面,选中后保存,用户就具有选中的操作权限了,见下图:
二、给角色授权
角色权限配置是权限系统必备的,主要功能就是创建角色,向角色中添加人(或者给人设置角色),给角色配置操作权限,
给人设置角色,在第一个页面中也可以实现,如下图
角色权限管理中也可以为角色添加人,
上面是为角色添加人或为人设置角色的方法。
现在,再看看如何给角色设置操作权限,角色的操作权限也就是角色里的人的操作权限。
设置及保存用户的操作权限,操作权限可能是一个地址,也有可能是一个按钮,下图:
在界面上选中操作权限保存,这样角色就具有了对应的操作权限了。
在具体应用中,判断用户操作权限时,应该先获取给用户单独设置的权限,以及用户的角色具有的权限,两者取并集,大部分权限系统只做到按角色的权限判断。
通过这个方式,我们实现了按人设置权限,及按角色设置权限,满足系统中的一些特殊需求。
大多数情况下,用户(User)、角色(Role)、操作权限(Permission),三者之间的关系,可以把角色看做一个个容器,这个容器里有很多用户,有很多操作权限,用户和操作权限之间是多对多的关系,用户通过角色与操作权限关联起来,某些情况,也要求用户不通过角色,直接与操作权限关联,通用权限管理系统就可以解决这类需求。
用户始终是授权的主体,片面上说,有了角色,实际上就为很多人同时授权提供了方便,但是不应该因为有了角色,给用户授权就必须要创建一个角色,那样就不太灵活了。
如果您认为这篇文章还不错或者有所收获,您可以通过右边的“打赏”功能 打赏我一杯咖啡【物质支持】,也可以点击文章下方“推荐”按钮【精神支持】,您的“推荐”将是我最大的写作动力!
欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,凡是转载于本人的文章,不能设置打赏功能,如有特殊需求请与本人联系!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决