权限管理,这是每个软件系统都会涉及到的,而且权限管理的需求本质往往都是一样,无在乎怎么的角色拥有怎样的权限,只要你充当了这个角色,你就拥有了这些功能。
举个简单例子:一个老师在学校教室她就拥有教书育人的权利义务,一个丈夫在家就有呵护妻子支撑家庭的权利义务,而一个父亲在孩子面前就有保护孩子,教育孩子的权利义务……而作为一个男生,我们很可能在不同的场所,成为这些角色,从而拥有了这些权利义务。而抽象出来就是用户,角色和权利三个方面。
所以经过前人对权限方面的总结抽象,总结出来RBAC(Role-Based Access Control )基于角色的访问控制。在以前做项目的时候,就听组长说权限管理模型的运用,但是自己但是只是接触了一下,直到后来在项目中真正的使用,才对此有深刻的理解。
RBAC认为授权实际就是who,what,how三者之间的关系,即who对what进行how的操作。Who,权限的拥用者或主体(如Principal、User、Group、Role、Actor等等);