10.1 What Can I Do?
(1)权限控制就是某个主体(subject)对某个客体(object)需要实施某种操作(operation),而系统对这种操作的权限。
(2)在一个安全系统中,确定主体的身份是“认证”解决的问题;而客体是主体发起的请求的对象。在主体对客体进行操作的过程中,系统控制主体不能“无限制”地对客体进行操作,这个过程就是“访问控制”。
10.2 垂直权限管理
(1)访问控制实际上是建立用户与权限之间的对应关系,现在广泛应用的一种方法,就是“基于角色的访问控制(Role-Based Access Control)”,简称RBAC。
(2)高权限角色访问低权限角色的资源往往是被允许的,而低权限角色访问高权限角色的资源往往则被禁止。如果一个本属于低权限角色的用户通过一些方法能够获得高权限角色的能力,则发生了“越权访问”。
(3)在配置权限时,应当使用“最小权限原则”,并使用“默认拒绝”的策略,只对有需要的主体单独配置“允许”的策略。
10.3 水平权限管理
(1)水平权限管理是系统缺乏一个数据级的访问控制所造成的,因此水平权限管理又可以称之为“基于数据的访问权限”。
(2)解决方案:一个简单的数据级访问控制,可以考虑使用“用户组”的概念;还可以考虑实现一个规则引擎,将访问控制的规则写在配置文件中,通过规则引擎对数据的访问进行控制。
10.4 Oauth简介
(1)OAuth是一个在不提供用户名和密码的情况下,授权第三方应用访问Web资源的安全协议。