Shiro系列(1) - 权限管理的介绍与原理

简介: 1. 什么是权限管理        一般来说,只要有用户参与,那么该系统都会需要权限管理,权限管理实现了对用户访问系统  指定功能的限制,按照管理员定义的安全规则或权限策略,限制用户只能访问自己被授权的那些资源路径。

1. 什么是权限管理

        一般来说,只要有用户参与,那么该系统都会需要权限管理,权限管理实现了对用户访问系统  指定功能的限制,按照管理员定义的安全规则或权限策略,限制用户只能访问自己被授权的那些资源路径。

        权限管理包括用户认证和授权两部分(俗称登录和鉴权)。也就是说先要进行用户的登录,登录以后会对用户访问的功能模块(即:访问资源的url路径)进行权限验证。

 

2. 用户认证(用户登录)

        身份认证,简单来说就是登录。检验一个用户是否为合法用户的业务处理过程。最常见的方式为系统对用户输入的用户名和密码判断是否匹配数据库中的记录。

        除此之外还有指纹认证,一卡通认证,脸部扫描,这些都需要硬件设备,比如指纹采集仪,pose机,刷脸(脸部识别系统/iphoneX)等。

 

3. 登录认证流程

流程中的出现主要对象:

Subject:主体,大部分情况下就是用户,但也可以是api接口(rest服务,手机端访问等),去访问系统的功能,系统需要对Subject进行身份认证。

Principal:身份信息,一般来说是唯一的,一个主体可以有多个身份,但是都有一个主身份信息(primary principal)。主要体现在账户系统和子账户。

Credential:凭证token,可以是密码 、证书、指纹、人脸等。

总结一句话:主体用户在进行身份认证时需要提供身份信息和凭证信息。简单来说就是登录。

 

 

 

4. 用户授权(验证用户是否拥有访问的权限)

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

 

流程中的出现主要对象:

Subject:主体,此时的主体已经经过登录之后认证过了的。

Resource:主体用户所访问的资源或者功能。比如用户要删除一个员工记录,这个员工记录在数据库中的主键pid为1001,那么这个资源就是1001这条在数据库中所对应的记录。在java中就是一个对象。或者查询所有员工的页面,这些员工所在数据库中的数据集也是这个资源resource。

Permission:凭证token,可以是密码 、证书、指纹、人脸等。

总结一句话:[主体用户] 对 [资源] 进行 [增删改查] 的操作

 

 

<未完待续...>

具体内容同步更新文章以及视频到公众号,知乎,豆瓣,cnblogs以及新浪微博,以官网itzixi.com为主

 

相关文章
|
缓存 并行计算 C++
实践教程|旋转目标检测模型-TensorRT 部署(C++)
实践教程|旋转目标检测模型-TensorRT 部署(C++)
394 0
|
存储 分布式计算 监控
Hologres产品介绍与技术揭秘
近年来,随着数据实时化的诉求加剧,催生了一系列的实时数仓架构,Lambda架构也应运而生,但是随着场景的复杂度和业务多维需求,Lambda架构的痛点也越来越明显。HSAP的理念则是服务分析一体化,在本文中,来自阿里巴巴的资深技术专家将会深度剖析HSAP技术实现Hologres的设计原理,解读其产品典型场景。
13271 0
Hologres产品介绍与技术揭秘
|
7月前
|
负载均衡 Java Nacos
Spring Cloud五大组件
Spring Cloud五大组件
|
9月前
|
JSON API 数据安全/隐私保护
淘宝拍立淘API接口详解
淘宝拍立淘API接口基于图像识别技术,通过上传图片快速找到相似商品,提升购物体验和搜索效率。其核心功能包括图片上传、图像处理、相似图片搜索和结果返回。开发者需注册淘宝开放平台账号并获取API密钥,调用接口时需遵守频率限制、图片质量要求及隐私政策。该接口适用于电商平台、社交媒体和线下门店等场景,为用户提供便捷的购物服务。
|
缓存 NoSQL Redis
揭秘Redis的高效失效策略,提升可用性
Redis是广泛使用的开源内存数据库,其高性能和多样性使其在现代应用中不可或缺。然而,内存限制和数据管理是关键挑战。本文探讨了Redis的失效策略,包括内存淘汰(如LRU和LFU)和缓存失效策略(定时清除、惰性清除和定时扫描清除),以应对内存耗尽、数据过期等问题,确保系统性能和稳定性。通过合理配置这些策略,可以优化内存使用,防止数据不一致,提升系统效率。
534 0
揭秘Redis的高效失效策略,提升可用性
|
12月前
|
JavaScript 前端开发 开发者
如何在 VSCode 中使用 ESLint 和 Prettier 检查并自动格式化 Vue.js 代码,提升团队协作效率和代码质量。
【10月更文挑战第9天】随着前端开发技术的发展,代码规范和格式化工具变得至关重要。本文介绍如何在 VSCode 中使用 ESLint 和 Prettier 检查并自动格式化 Vue.js 代码,提升团队协作效率和代码质量。通过安装插件、配置 ESLint 和 Prettier,以及设置 VSCode,实现代码实时检查和格式化,确保代码风格一致。
1910 2
|
存储 缓存 安全
.NET 在金融行业的应用:高并发交易系统的构建与优化之路
【8月更文挑战第28天】在金融行业,交易系统需具备高并发处理、低延迟及高稳定性和安全性。利用.NET构建此类系统时,可采用异步编程提升并发能力,优化数据库访问以降低延迟,使用缓存减少数据库访问频率,借助分布式事务确保数据一致性,并加强安全性措施。通过综合优化,满足金融行业的严苛要求。
282 1
|
存储 开发框架 安全
ASP.NET WebApi 如何使用 OAuth2.0 认证
ASP.NET WebApi 如何使用 OAuth2.0 认证
264 1
|
数据采集 搜索推荐 安全
谷歌新网站多久能有排名?
答案是:谷歌新网站最快7天就能有排名。 新网站的“沙盒”现象 谷歌在对新网站进行排名时,通常会存在一个所谓的“沙盒”阶段,这是一段时间内,新网站似乎在搜索结果中被“固定”或“受限”。 沙盒现象的定义 “沙盒”现象是指新网站在初次发布后的一段时间内,尽管进行了有效的Google优化,但在搜索结果中的排名仍然不如预期。
394 0
谷歌新网站多久能有排名?
|
Java
IDEA中GC日志怎么看
IDEA中GC日志怎么看
618 0