什么是权限管理

基本涉及到用户参与的系统都要进行权限管理,权限管理属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源。

权限管理包括用户身份认证和授权两个部分,简称认证授权。对于需要访问控制的资源用户首先经过身份认证,认证通过后用户具有该资源的访问权限方可访问。

1.2. 用户身份认证

1.2.1.      概念:身份认证就是判断一个用户是否为合法用户的处理过程。最常用的简单身份认证方式是系统通过对用户输入的用户名和口令,看起是否与系统中储存的该用户的用户名和口令一致,来判断用户身份是否正确。对于采用指纹等系统,则初始指纹;对于硬件key等刷卡系统,则需要刷卡。

1.2.2.      用户名密码身份认证流程。

1.2.3.      关键对象:

Subject:主体,访问系统的用户,程序等,进行认证的都称为主体。

Principal:身份信息,是主体进行身份认证的表示,表示必须具有唯一性,如用户名、手机号、邮箱地址等,一个主体可以有多个身份,但必须有一个主身份。(primary principal)

credential:凭证信息,是只有主体才知道的安全信息,如密码、证书等。

1.3. 授权

1.3.1.      概念:授权即访问控制,控制谁能访问哪些资源。主体进行身份认证后需要分配权限方可访问系统资源,对于某些资源没有权限是无法访问的。

1.3.2.      授权流程。

1.3.3.      关键对象

授权可理解为who对what(which)进行how操作:

who,即主体(Subject),主体需要访问系统中的资源。

what,即资源(Resource),如系统菜单,页面,按钮,类方法信息等。资源包括资源类型和资源实例(用户类:资源类型和用户对象:资源实例)。

how,权限/许可(Permission),规定了主体对资源的操作许可,权限离开资源没有意义,通过权限可知主体对哪些资源都有哪些操作许可。

权限分为粗颗粒和细颗粒,粗颗粒权限是指对资源类型的权限,细颗粒权限是对资源实例的权限。

主体,资源,权限关系图:

1.3.4.      权限模型

主体,资源,权限通过数据模型表示。

主体(账号,密码)

资源(资源名称、访问地址)

权限(权限名称、资源id)

角色(角色名称)

角色和权限关系(角色id和权限id)

主体和角色关系(主体id和角色id)

企业开发把资源和权限合并为一张表,

资源(资源名称,访问地址)

权限(权限名称,资源id)

合并:

权限(权限名称,资源名称,资源访问地址)

1.3.5.      权限分配:

对主体分配权限,主体只允许在权限范围内对资源进行操作,权限分配的数据需要持久化,根据上边的数据模型城建表并将用户的权限信息储存在数据库中。

1.3.6.      权限控制

用户拥有权限即可操作权限范围内的资源,系统不知道主体是否具有访问权限需要对用户的访问进行控制。

1.3.6.1.  基于角色的访问控制

RBAC基于角色的访问控制()是以角色为中心进行访问控制。比如:主体的角色为总经理可以查询企业运营报表。

缺点:一角色进行访问控制粒度较粗,若主体变为总经理和经理则需要修改代码,可扩展性差。

1.3.6.2.  基于资源的访问控制

RBAC基于资源的访问控制()是以资源为中心进行访问控制,比如:主体必须具有查询工资的权限才可以查询工资。

有点:系统设计时定义好查询工资的全西安表示,即查询工资所需要的角色变化为总经理和部门经理也只需要将“查询工资的权限”添加到部门经理角色的权限列表中,判断逻辑不用修改,系统可扩展性强。

权限管理解决方案:

1.1. 粗颗粒度和细颗粒度

1.1.1.      什么是粗颗粒度和细颗粒度

对资源类型的管理称为粗颗粒度权限管理,即只控制到菜单,按钮,方法,粗颗粒度例子:用户具有用户管理的权限,具有到处订单明细的权限。

对资源实例的管理称为细颗粒度权限管理,即控制到数据级别的权限,比如:用户只允许修改本部门的员工信息,用户只允许到处自己创建的订单明细。

1.1.2.      如何实现粗颗粒度和细颗粒度

对于粗颗粒度的权限管理可以很容易做系统架构级别的功能,即系统功能操作使用统一的粗颗粒度的权限管理。

对于细颗粒度的权限管理不建议做成系统架构级别的功能,因为对数据级别的控制是系统的业务需求,随着业务需求的变更业务功能的可能性大,建议对数据级别的权限控制在业务层跟杏花开发,比如:用户只允许修改自己创建的商品信息可以在service接口添加校验实现,service接口需要传入当前操作人的表示,与商品信息创建人标识对比,不一致则不允许修改商品信息。

1.2. 基于url拦截

基于url拦截是企业中常用的权限管理方法,实现思路:将系统操作的每个url配置在权限表中,将权限对应到角色,将角色分配给用户,用户访问系统功能通过Filter进行过滤,过滤器获取到用户访问的url,只要访问url是用户分配角色中的url则放行继续访问。

以下是模型图:

java权限管理+授权与认证_权限管理(认证和授权)相关推荐

  1. java公寓管理系统设计与实现_宿舍管理系统设计与实现

    宿舍管理系统设计与实现[java毕业论文下载] 宿舍管理系统 第一章  绪论 1.1  课题简介 为了便于老师对学生信宿生活的管理,学生资料的整理,和快节奏,高效率的工作环境.所以本次我设计的课题是学 ...

  2. java酒店管理系设计开题报告_酒店管理专业本科毕业论文开题报告范文

    酒店管理专业本科毕业论文开题报告范文 下面是应届毕业生网小编整理的酒店管理专业本科毕业论文开题报告范文,希望对大家有所帮助. 一. 课题背景(或国内外研究现状) 从20世纪以来,资本主义经济快速发展, ...

  3. 近期你已经授权登录过_原来你的qq授权登录过这么多的网站 一键查出撤销了吧...

    现在好多网站都支持社交账号登录,而我每次习惯直接点击QQ的一键登录,然后QQ就会提示授权给该网站,时间一长,根本不记得自己的QQ账号究竟注册过哪些网站了.而且有些网站还会时不时的给你推送一些消息,很是 ...

  4. cas如何实现多系统间的相互认证_统一身份认证和单点登录的区别

    首先大家会遇到这样一个问题,统一身份认证和单点登录的概念是什么? 百度百科对统一身份认证的定义 所谓身份认证,就是判断一个用户是否为合法用户的处理过程.最常用的简单身份认证方式是系统通过核对用户输入的 ...

  5. java 线程的创建和执行_线程管理(一)线程的创建和运行

    声明:本文是< Java 7 Concurrency Cookbook>的第一章, 作者: Javier Fernández González 译者:郑玉婷 校对:欧振聪 线程的创建和运行 ...

  6. java支付宝网页授权登录界面_网页版的支付宝授权登录(vue+java)

    api接口文档:https://docs.open.alipay.com/289/105656 后台管理系统原本是用账号密码登录的,不过需求要改成支付宝授权, 前端仅仅需要改登录页,以及添加一个授权返 ...

  7. java餐饮管理系统需求文档_餐饮管理系统需求文档.doc

    实用文案 标准文档 餐饮管理系统系统需求分析 编写 餐饮管理系统项目小组 审核 批准 受控状态 日期 2012-8 目 录: TOC \o "1-5" \h \z \u HYPER ...

  8. 卡巴斯基授权许可文件_制片方未提供电视台授权证明,构成根本违约吗?

    在制作娱乐法101课程的过程中,需要检索很多案例,有时候也也看到一些似乎不太合理的判决书. 在一起电视播映权纠纷中,合同中一般会常规约定制作方需要向电视台提交确保其在合同授权区域.授权范围.授权期限内 ...

  9. 银行网点服务认证_银行网点服务认证标准

    伴随着我国银行卡产业和银行信息化的快速发展,以ATM(自动柜员机).CDT(存款机)等设备为载体的自助银行逐渐成为国内商业银行延伸网点.塑造品牌.服务客户的重要手段.下文是,欢迎阅读!一xxx银行天津 ...

最新文章

  1. 状态压缩 DP AHU420
  2. plsql(轻量版)-存储函数存储过程
  3. Effective Java之对可恢复的情况使用受检异常,对编程错误使用运行时异常(五十八)
  4. Android 简单几行代码实现摇一摇功能
  5. php代码 intval( ),php intval的测试代码发现问题_PHP教程
  6. [蓝点zigBee] CC2530 实用教程总览
  7. OSChina 周四乱弹 —— 电脑上都有监视器
  8. Oracle 10.2.0.4 升级到 10.2.0.5
  9. 3dmax软件怎么贴图
  10. android串口wifi模块,一文深度了解串口WiFi模块的应用场景
  11. win10安装solidworks2016注册机闪退的问题
  12. Tableau public保存为图片或pdf
  13. Desktops 虚拟桌面软件(推荐)
  14. WPF Behavior 行为
  15. 严格执行系统,严格止损,不要心存侥幸,勇敢承认错误,不给自己的错误找理由。
  16. Scheduler 配置与注意事项
  17. CSDN博客里的大学生活简历——共勉
  18. python提取图片中的曲线_OpenCV如何提取图片中曲线
  19. 自知识蒸馏(知识蒸馏二)
  20. 《数据库原理》复试面试篇

热门文章

  1. ArrayList的indexOf用法
  2. 东芝存储器控股公司任命Lorenzo A. Flores为副董事长
  3. mysql集群搭建与总结
  4. python输出二进制数_Python二进制表示和位操作
  5. 炉石传说android版多大内存,炉石传说手机版对手机配置要求高吗? 炉石传说手机版最低配置详细介绍[图]...
  6. [转]写一个块设备驱动(第六章)
  7. 目标检测 YOLOv5 自定义网络结构
  8. 拼题A 2021 跨年挑战赛_7-4 相生相克 (15分)
  9. discard qualifier
  10. 知乎大神用Python爬取高颜值美女(爬虫+人脸检测+颜值检测)!