权限管理是软件中不可或缺的重要的环节。在网上看了一些关于基于角色访问控制(Role-Based Access Control, RBAC)的文章,摘录如下:
什么是基于角色访问控制(Role-Based Access Control, RBAC)?NIST 有如下定义。
访问是一种利用计算机资源去做某件事情的的能力,访问控制是一种手段,通过它这种能力在某些情况下被允许或者受限制(通常是通过物理上和基于系统的控制)。基于计算机的访问控制不仅可规定是“谁”有权使用特定系统资源,而且也能规定被允许的访问类型。这些控制方式可在计算机系统或者外部设备中实现。
就基于角色访问控制而言,访问决策是基于角色的,个体用户是某个组织的一部分。用户具有指派的角色(比如医生、护士、出纳、经理)。定义角色的过程应该基于对组织运转的彻底分析,应该包括来自一个组织中更广范围用户的输入。
访问权按角色名分组,资源的使用受限于授权给假定关联角色的个体。例如,在一个医院系统中,医生角色可能包括进行诊断、开据处方、指示实验室化验等;而研究员的角色则被限制在收集用于研究的匿名临床信息工作上。
控制访问角色的运用可能是一种开发和加强企业特殊安全策略,进行安全管理过程流程化的有效手段。
我现在给出一个基于角色控制的结构图做参考:
解释:
1、用户的活动可能依附于某些组织(用户角色),但用户也是个体,不能排除个体的行为(用户权限)。
2、用户要访问某个资源必须要通过权限校验,因为:
(a)用户要访问资源,首先必须要知道该资源的标识。犹如你要拜访某个客户,首先要知道该客户的地址一样。
(b)资源和权限必须进行映射,以便于对用户进行权限审核。犹如拜访客户,你虽然获得了客户的地址,但还必须征得对方的同意一样,否则拜访时会被拒之门外。
看过之后,我想怎样设计一个权限管理系统心中至少会有数了。