1 问题描述 当我们谈到一个应用或者网站的时候,一般情况下是受不了用户的。而每个用户能做的事情肯定是受到限制的,我们能让用户做的事情就放心交给用户,不能的我们就不会给这个机会。这就要谈到用户权限的问题。今天学习的内容就是RBAC的权限管理原理。 2 问题分析
一个系统或者应用程序的使用者就有用户和管理员,用户也会有不同的等级或者说不同的用户也会有不同的权限。我们就需要将用户能使用的权限授予给用户。这样的目的是起到安全的作用,同时保证用户的体验,以及方便管理。那么RBAC是如何管理权限的呢?
3 解决方案RBAC全称为Role-Based Access Control,正文名字叫基于角色的访问控制,百度百科上说基于角色的权限访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。在一个组织中,角色是为了完成各种工作而创造,用户则依据它的责任和资格来被指派相应的角色,用户可以很容易地从一个角色被指派到另一个角色。角色可依新的需求和系统的合并而赋予新的权限,而权限也可根据需要而从某角色中回收。角色与角色的关系可以建立起来以囊括更广泛的客观情况。
RBAC认为授权就是who、what、how的关系,就相当于说,一个人,扮演了什么角色,这个角色能做什么。比如:我这个人,是一个学生,我可以考试。RBAC将权限最小化,然后角色对应权限,用户对应角色。简单的说就是讲角色和权限连在一起,扮演这个角色就会拥有这个权限,一个拥有多少权限就得看他扮演了多少角色。当一个用户要执行某个操作的时候,我们直接就可以通过判断角色来判断用户是否拥有权限。在RBAC中还有group和session的概念,这个概念就是讲拥有相同权限的角色分为一个group,儿sessein是将一个用户拥有的权限作为一个映射。这样就很方便与权限的管理了。
4 总结其实RBAC的模式并不难懂,学习了它的原理之后大概就能知道在实际中怎么去运用了。但是只知道原理还是不够的,RBAC还有很多知识需要去学习。
更多精彩文章: