ALC权限模型
- ACL:Access Control List,访问控制列表,是前几年盛行的一种权限设计,它的核心在于用户直接和权限挂钩。
RBAC权限模型
- RBAC:Role Based Access Control ,翻译过来基本上就是基于角色的访问控制系统。
- RBAC的核心是用户只和角色关联,而角色代表对了权限,这样设计的优势在于使得对用户而言,只需角色即可以,而某角色可以拥有各种各样的权限并可继承。ACL和RBAC相比缺点在于由于用户和权限直接挂钩,导致在授予时的复杂性,虽然可以利用组来简化这个复杂性,但仍然会导致系统不好理解,而且在取出判断用户是否有该权限时比较的困难,一定程度上影响了效率。
ABAC权限模型
- 用户在携带自身的属性值包括主题属性,资源属性,环境属性,然后向资源发送请求,授权引擎
会根据subject所携带的属性进行判断,然后会给出拒绝或者同意的结果给用户,然后就可以访问资源。 - 用户属性(如用户年龄 用户地址)
- 环境属性(比如当前时间)
- 操作属性(增、删、改、查)
- 对象属性(比如一篇文章,又称资源属性)
- 规则:“允许所有班主任在上课时间可以自由出入校门”这条规则,其中,“班主任”是用户的角色属性 “上课时间”是环境属性,’‘进出’‘是操作属性,而"校门"就是对象属性