权限管理
权限管理
权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源,不多不少。权限管理几乎出现在任何系统里面,只要有用户和密码的系统。权限管理实现对用户访问系统的控制。按照安全规则或安全策略控制用户可以访问而且只能访问自己被授权的资源。
权限管理分类
从控制粒度来看,可以将权限管理分为两大类:
1、功能级权限管理---粗粒度(比较容易将权限管理代码抽取出来在系统架构级别统一管理)
1、张三赋予“人力资源经理”角色,“人力资源经理”具有“查询员工”、“添加员工”、“修改员工”和“删除员工”权限。此时张三能够进入系统,则可以进行这些操作;
2、李四没有“人力资源经理”角色,此时李四就不能够进入系统进行这些操作了。
2、数据级权限管理---细粒度(数据级别是没有共性可言的,针对细粒度的权限管理就是系统业务逻辑的一部分,如果在业务层去处理相对简单,如果将细粒度的权限管理统一在系统架构级别去抽取,比较困难,即使进行了抽取,功能也可能存在扩展性不全的弊端。建议细粒度权限管理放在业务层去控制。)
1、张三是北京分公司的“人力资源经理”,他只能够管理北京分公司员工和北京分公司下属的子公司的员工;
2、因为王五是海淀子公司的“人力资源经理”,所以他能够也只能够管理海淀子公司的员工;
从控制方向来看,也可以将权限管理分为两大类:
1、从系统获取数据,比如查询订单、查询客户资料;
2、向系统提交数据,比如删除订单、修改客户资料。
认证授权
1、用户认证
用户去访问系统,系统需要验证用户身份的合法性。最常用的用户身份认证方法:1.用户密码方式、2.指纹打卡机、3.基于证书的验证方法。系统验证用户身份合法,用户方可访问系统的资源。
subject:主体,理解为用户,可能是程序,都要去访问系统的资源,系统需要对subject进行身份认证。
principal:身份信息,通常是唯一的,一个主体可以有多个身份信息,但是只能有一个主身份信息(primary principal)。
credential:凭证信息,可以是密码、证书、指纹等。
主体在进行身份认证时需要提供身份信息和凭证信息。
认证流程:
2、用户授权
在用户认证通过后,系统对用户访问资源进行控制,当用户具有资源的访问权限方可访问。
授权流程:
权限系统模型
就是:谁?是什么身份?可以允许看到什么内容,执行哪些操作?
谁?当前访问管理系统的是什么人?---用户
是什么身份?角色管理,如:经理、主管、销售专员、客服、财务等等。---角色
可以看到什么内容,执行哪些操作?数据管理:允许看到哪些菜单、字段等?功能权限:增删改---权限
通常企业开发中将资源和权限合并为一张权限表
上一篇: spring 单元测试之 Dao 层
下一篇: 编写下载图片的问题。