简介
简单来说,权限管理就是为了解决 Who is able to do what on something given some context 的问题。
Who(Subject)一个唯一的主体,例如可以是某个用户andy,也可以是某个服务。Able(Result)检查结果,也就是允许 (Allow) 或者禁止 (Deny) 。What(Action)执行的动作,例如delete、create或者scoped:action:something。Something(Resource)唯一的资源标识,可以是统一资源名,例如urn:isbn:3827370191、article.1234。Context上下文信息,例如 IP 地址、时间等等。
RBAC
也就是基于角色的访问控制,其全称为 Role-Based Access Control 。简单来说,就是每个用户关联一个或多个角色,每个角色关联一个或多个权限,权限决定了能对那些资源做什么事情,从而可以实现了灵活的权限管理。
另外,为了方便管理通常也会对角色或者权限做类似目录树的层级管理。
其它
分权分域
这是权限管理系统所能实现的效果之一,简单来说就是两点:
- 分权,定制用户权限,不同的用户登录系统后的界面不同,所能进行的操作也不同。
- 分域,控制用户权限,防止越权访问和跨域访问。