1、7/17/2013提纲n简介n核心概念n应用实践n问题简介n权限控制包括2大部分:n功能级权限功能级权限控制使用通用的RBAC模型,即给用户赋予角色,给角色赋予权限。n数据级权限对RBAC模型做简单扩展实现数据级权限,即给每个权限赋予一条或者多条权限策略。权限策略主要有:用户分类和资源两大要素组成。u权限引擎会首先验证功能权限,然后验证数据级权限。核心概念n用户分类什么样的用户n资源,主要是数据查询能看到哪些数据业务数据分类能操作哪些数据用户分类n静态划分静态划分我们首先将某角色赋予给用户后,用户才隶属于该角色;n动态划分动态划分我们使用规则对用户进行描述,如果用户满足该规则描述,则属于该“用
2、户分类”,无需事先将用户划到该用户群组。这种隶属关系是基于规则运算。推荐准则推荐准则:角色放在功能级控制层面;用户分类属于数据级控制层面。用户分类n考察如下例子:用户分类名称用户分类名称:总公司用户;规则是规则是:用户的机构ID总公司机构ID用户分类名称用户分类名称:分公司用户;规则是规则是:用户的机构level分公司机构level用户分类名称用户分类名称:北京分公司用户;规则是规则是:用户的机构ID北京分公司机构ID用户分类名称用户分类名称:临时调查组用户;规则是规则是:用户的id号在数据表临时调查组(SPEC_USER)有记录。核心概念n用户分类什么样的用户n资源,主要是数据查询能看到哪些
3、数据业务数据分类能操作哪些数据资源-数据查询n数据查询和我们平常写的SQL查询概念一致,可以像Java PreparedStatement一样动态注入参数。资源-业务数据分类n业务数据分类和用户分类概念一致。用户分类是对用户的动态分类,基于规则描述,动态匹配计算;业务数据分类是对业务数据的动态分类,基于规则描述,动态匹配计算。举个例子n考察如下例子:业务数据分类名称:大于5000的取款;规则是:金额字段值大于5000n继续考察如下复杂一些的例子:业务数据分类名称:登录用户所在公司的订单;规则是:订单的机构id登录用户的机构id业务数据分类名称:加上本笔取款全体取款额大于20000;规则是:本笔
4、取款额+数据查询(当天本人取款额之和)20000权限模型n权限控制包括2大部分:n功能级权限功能级权限控制使用通用的RBAC模型,即给用户赋予角色,给角色赋予权限。n数据级权限u查询权限模型u决策权限模型数据级权限管理模型n查询权限模型举个例子n人力专员按照机构层级查询员工。人力专员由RBAC角色控制,数据级权限策略如下:策略序号策略序号用户分类用户分类数据查询数据查询1总公司用户查询所有员工2分公司用户查询所在分公司及下属营业部员工3营业部用户查询所在营业部员工数据级权限管理模型n决策权限模型举个例子n每笔借款不超过5000元;每天借款总额又不能超过20000元。策略序号策略序号决策决策用户分类用户分类业务数据分类业务数据分类拒绝理由拒绝理由1拒绝所有人大于5000的借款单笔借款不能超过5000元2允许所有人加上本笔全天借款不超过20000的借款全体借款总额不能超过20000元Q&A此课件下载可自行编辑修改,供参考!感谢您的支持,我们努力做得更好!