shiro笔记
一.权限管理介绍
1.权限管理
只要有用户参与的系统一般都要权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源。
2.权限管理包括用户认证和授权两部分
1.用户认证:
用户去访问系统,系统要验证用户身份的合法性。最长用的身份验证的方法:1.用户名密码方式、2.指纹打卡机、3.基于证书验证…。系统验证用户身份合法,用户才可访问系统资源。
3.用户授权(访问控制)
在用户认证通过后,系统对用户访问资源进行控制,用户具有资源的访问权限方可访问。
用户认证流程图
上边的流程图中需要理解以下关键对象:
Subject:主体
访问系统的用户,主体可以是用户、程序等,进行认证的都称为主体;
Principal:身份信息
是主体(subject)进行身份认证的标识,标识必须具有唯一性,如用户名、手机号、邮箱地址等,一个主体可以有多个身份,但是必须有一个主身份(Primary Principal)。
credential:凭证信息
是只有主体自己知道的安全信息,如密码、证书等。
授权流程图
授权可简单理解为who对what(which)进行How操作:
Who:
即主体(Subject),主体需要访问系统中的资源。
What:
即资源(Resource),如系统菜单、页面、按钮、类方法、系统商品信息等。资源包括资源类型和资源实例,比如商品信息为资源类型,类型为t01的商品为资源实例,编号为001的商品信息也属于资源实例。
How:
权限/许可(Permission),规定了主体对资源的操作许可,权限离开资源没有意义,如用户查询权限、用户添加权限、某个类方法的调用权限、编号为001用户的修改权限等,通过权限可知主体对哪些资源都有哪些操作许可。
权限分为粗颗粒和细颗粒,粗颗粒权限是指对资源类型的权限,细颗粒权限是对资源实例的权限。
主体、资源、权限关系图:
二.权限模型
对主体、资源、权限通过数据模型表示。
主体(账号、密码)
资源(资源名称、访问地址)
权限(权限名称、资源id)
角色(角色名称)
角色和权限关系(角色id、权限id)
主体和角色关系(主体id、角色id)
权限模型图: