【Shiro】第一章 权限概述

简介: 【Shiro】第一章 权限概述

1、什么是权限

权限管理,一般指根据系统设置的安全策略或者安全规则,用户可以访问而且只能访问自己被授权的资源,不多不少。权限管理几乎出现在任何系统里面,只要有用户和密码的系统。

权限管理在系统中一般分为:

  • 访问权限

一般表示你能做什么样的操作,或者能够访问那些资源。例如:给张三赋予“店铺主管”角色,“店铺主管”具有“查询员工”、“添加员工”、“修改员工”和“删除员工”权限。此时张三能够进入系统,则可以进行这些操作

  • 数据权限

一般表示某些数据你是否属于你,或者属于你可以操作范围。例如:张三是"店铺主管"角色,他可以看他手下客服人员所有的服务的买家订单信息,他的手下只能看自己负责的订单信息

2、认证概念

【1】什么是认证

身份认证,就是判断一个用户是否为合法用户的处理过程。最常用的简单身份认证方式是系统通过核对用户输入的用户名和密码,看其是否与系统中存储的该用户的用户名和密码一致,来判断用户身份是否正确。例如:密码登录,手机短信验证、三方授权等

【2】认证流程

【3】关键对象

上边的流程图中需要理解以下关键对象:

Subject:主体:访问系统的用户,主体可以是用户、程序等,进行认证的都称为主体;

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

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

3、授权概念

【1】什么是授权

授权,即访问控制,控制谁能访问哪些资源。主体进行身份认证后,系统会为其分配对应的权限,当访问资

源时,会校验其是否有访问此资源的权限。

这里首先理解4个对象。

用户对象user:当前操作的用户、程序。

资源对象resource:当前被访问的对象

角色对象role :一组 "权限操作许可权" 的集合。

权限对象permission:权限操作许可权

【2】授权流程

【3】关键对象

授权可简单理解为who对what进行How操作

Who:主体(Subject),可以是一个用户、也可以是一个程序

What:资源(Resource),如系统菜单、页面、按钮、方法、系统商品信息等。

访问类型:商品菜单,订单菜单、分销商菜单

数据类型:我的商品,我的订单,我的评价

How:权限/许可(Permission)

我的商品(资源)===>访问我的商品(权限许可)

分销商菜单(资源)===》访问分销商列表(权限许可)


相关文章
|
JavaScript 前端开发 物联网
「Mac畅玩鸿蒙与硬件1」鸿蒙开发环境配置篇1 - 认识鸿蒙系统与开发工具
本篇将介绍鸿蒙操作系统(HarmonyOS)的基本概念以及在 Mac 环境下进行鸿蒙开发所需的工具。通过了解鸿蒙系统和开发工具的特点,为后续的学习和实践奠定基础。
1003 1
「Mac畅玩鸿蒙与硬件1」鸿蒙开发环境配置篇1 - 认识鸿蒙系统与开发工具
|
算法 安全 搜索推荐
深入理解密码学技术
深入理解密码学技术
426 1
|
Linux 虚拟化
十四、Linux下安装操作系统,虚拟机联网,如何ping通baidu.com网址,以及如何设置静态IP精讲,这一篇足够了。(手把手小白教程)
十四、Linux下安装操作系统,虚拟机联网,如何ping通baidu.com网址,以及如何设置静态IP精讲,这一篇足够了。(手把手小白教程)
1051 0
十四、Linux下安装操作系统,虚拟机联网,如何ping通baidu.com网址,以及如何设置静态IP精讲,这一篇足够了。(手把手小白教程)
|
供应链 Kubernetes 安全
谈谈我对云原生与软件供应链安全的思考
阿里云容器服务 ACK、容器镜像服务 ACR 在容器安全领域有着深厚的投入。在信通院首次 “云原生安全成熟度”评估中,阿里云取得了国内唯一全域最高等级认证。我们也在和 OCI, Sigstore 等社区合作,持续为企业客户提供更加可信赖、更加易用的软件供应链安全能力。
1366 100
谈谈我对云原生与软件供应链安全的思考
伙伴客户案例|阿里云RPA携手金服软件助力广州酒家零售线降本增效
RPA全称机器人流程自动化(Robotic Process Automation),是一种新兴的“数字劳动力”,可以替代或辅助人完成规则明确的重复性劳动,大幅提升业务流程效率,实现企业业务流程的自动化和智能化,从而降本增效。目前,RPA解决方案的应用场景几乎涵盖了所有行业,包括银行、保险、制造、零售、医疗、物流、电子商务甚至政府和公共机构。
伙伴客户案例|阿里云RPA携手金服软件助力广州酒家零售线降本增效
|
机器学习/深度学习 Python
【机器学习技巧】之特征工程:数字编码以及One-hot独热编码的几种方式(sklearn与pandas处理方式)
【机器学习技巧】之特征工程:数字编码以及One-hot独热编码的几种方式(sklearn与pandas处理方式)
【机器学习技巧】之特征工程:数字编码以及One-hot独热编码的几种方式(sklearn与pandas处理方式)
|
前端开发 JavaScript Java
基于springboot的房屋租赁系统
该系统创作于2022年5月,经过详细的数据库设计。基于springboot技术,数据层为MyBatis,mysql数据库,页面采用html,具有完整的业务逻辑,适合话题:房屋租赁、房屋、酒店、民宿等,项目具有租赁的完整流程。
基于springboot的房屋租赁系统
|
机器学习/深度学习 算法 Java
Apache Flink ML 2.1.0 发布公告
Apache Flink 社区很荣幸地宣布 Apache Flink ML 2.1.0 版本正式发布
Apache Flink ML 2.1.0 发布公告
|
存储 Unix 关系型数据库
关于日期及时间字段的查询
在项目开发中,一些业务表字段经常使用日期和时间类型,而且后续还会牵涉到这类字段的查询。关于日期及时间的查询等各类需求也很多,本篇文章简单讲讲日期及时间字段的规范化查询方法。
615 0
关于日期及时间字段的查询