简介
简单来说,权限管理就是为了解决 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 。简单来说,就是每个用户关联一个或多个角色,每个角色关联一个或多个权限,权限决定了能对那些资源做什么事情,从而可以实现了灵活的权限管理。
另外,为了方便管理通常也会对角色或者权限做类似目录树的层级管理。
其它
分权分域
这是权限管理系统所能实现的效果之一,简单来说就是两点:
- 分权,定制用户权限,不同的用户登录系统后的界面不同,所能进行的操作也不同。
- 分域,控制用户权限,防止越权访问和跨域访问。