权限管理

2019-04-05  本文已影响0人  若兮缘

什么是权限管理

一般来说,只要有用户参与,那么该系统都会需要权限管理,权限管理实现了对用户访问系统指定功能的限制,
按照管理员定义的安全规则或权限策略,限制用户只能访问自己被授权的那些资源路径。
权限管理包括用户认证和授权两部分(俗称登录和鉴权)。也就是说先要进行用户的登录,登录以后会对用户访问
的功能模块、按钮、接口请求等进行权限验证。

用户认证(用户登录)

身份认证,简单来说就是登录。检验一个用户是否为合法用户的业务处理过程。最常见的方式为系统对用户输入的
用户名和密码判断是否匹配数据库中的记录。
除此之外还有指纹认证,一卡通认证,脸部扫描,这些都需要硬件设备,比如指纹采集仪,pos机,脸部识别系统等。

用户授权

授权,即访问控制,控制用户能否访问哪些资源。在用户进行身份认证后需要分配权限方可访问系统的资源,
对于某些资源没有权限是无法访问的

权限模型设计

主体(user、password)
权限(权限名称、资源id)/资源(资源名称、访问url)
角色(角色名称)
角色和权限关系(角色id、权限id)
主体和角色关系(主体id、角色id)

权限设计

粗粒度权限,是指对现有资源类型的权限管理。资源类型可以有:url、button、link、menu
粗粒度的权限分配:总经理可以分配到用户访问的页面,比如用户添加页面、查看用户信息页面、删除用户页面。
部门级别的账号只可以查看用户信息页面。
细粒度权限,是指对具体资源访问的权限管理。也就是说不同的用户访问到同一张资源表中的资源数据是不同的,
这是属于数据级别的权限控制。举个栗子:总经理可以访问用户表中的所有数据,而不同部门经理只能访问自己部门的
那些用户信息。
粗粒度权限:单独的权限模块分配用户资源权限,可以按照角色里的权限统一分配或者按照单个资源来分配。
细粒度权限:需要控制在业务层,也就是在代码层控制,限制用户查询的时候增加id来进行判断,比如之前所说的
查询用户按照该用户的所属部门id来进行查询,即可控制不同部门人员的访问限制。这个id需要从action/controller
层传到service层到dao层进行传输查询。

上一篇下一篇

猜你喜欢

热点阅读