1.什么是权限管理系统?
权限管理是一个几乎所有后台系统的都会涉及的一个重要组成部分,可以说是后台项目的基本功,主要目的是对整个后台管理系统进行权限的控制,而针对的对象是员工,避免因权限控制缺失或操作不当引发的风险问题,如操作错误,数据泄露等问题。
权限管理主要是管控下面三个方面:
哪些页面要设置权限
哪些操作要设置权限
哪些数据要设置权限
下面的例子就是控制页面的访问权限:
权限管理核心就是两方面:认证和授权。下面我们参考一下认证的演进过程,去深入了解一下:
2.认证的演进过程?
单体阶段:
粘滞会话会把登陆状态绑定到某个服务器上
解决方案:
1.session复制:会话数据在服务器之间进行同步复制;
2.无状态会话:session数据存在客户端浏览器上;安全问题,需要加密;存储4K
3.session共享:集中存储在某个地方(redis);
微服务阶段:
采用透明令牌(引用令牌):token使用无意义的字符串,本质还是集中状态会话:
轻量级(安全性要求没那么高)JWT
HMAC流程
RSA流程
3.什么是RBAC模型?
RBAC(Role-Based Access Control )基于角色的访问控制。
RBAC认为权限的过程可以抽象概括为:判断【Who是否可以对What进行How的访问操作(Operator)】这个逻辑表达式的值是否为True的求解过程。即将权限问题转换为Who、What、How的问题。who、what、how构成了访问权限三元组。
4.基于RBAC模型的权限验证框架
Apache Shiro
Spring Security