[7-01-01].第01章:安全与权限 - 核心概念

SpringSecurity学习大纲


一、认证(authentication)

  • 用户认证:就是判断一个用户的身份是否合法的过程
  • 认证是为了保护系统的隐私数据与资源,用户的身份合法方可访问该系统的资源
  • 常见的用户身份认证方式:
    • 用户名密码登录
    • 二维码登录
    • 手机短信登录
    • 指纹认证
    • 人脸识别
      ...
  • 认证流程:

二、会话(session)

2.1.什么是会话:

  • 用户认证通过后,为了避免用户的每次操作都进行认证可将用户的信息保存在会话中,在会话中可以保持当前用户的登录状态
  • 常见的会话方式有 基于session方式、基于token方式

2.2.基于session的认证方式:

a.认证流程:

  • 用户认证成功后,服务端生成用户相关的数据保存在session(当前会话)中,发给客户端的sesssion_id 存放到 cookie 中
  • 用户客户端在请求时带上 session_id 就可以验证服务器端是否存在 session 数据,以此完成用户的合法校验
  • 用户退出系统或session过期销毁时,客户端的session_id也就无效了

b.说明:

  • 基于session的认证方式由Servlet规范定制,服务端要存储session信息需要占用内存资源,客户端需要支持cookie

2.3.基于token的认证方式:

a.认证流程:

  • 用户认证成功后,服务端生成一个token发给客户端
  • 客户端可以放到 cookie 或 localStorage等存储中,每次请求时带上 token,服务端收到token通过验证后即可确认用户身份
  • 可以使用Redis 存储用户信息(分布式中共享session)

b.说明:

  • 基于token的方式则一般不需要服务端存储token,并且不限制客户端的存储方式
  • 如今移动互联网时代更多类型的客户端需要接入系统,系统多是采用前后端分离的架构进行实现,所以基于token的方式更适合

三、授权(authorization) :

3.1.为什么要授权

  • 1.授权就是为了控制资源被访问
  • 2.因为不同的用户可以访问的资源是不一样的

3.2.什么是授权

  • 1.授权就是给用户颁发权限
  • 2.授权是用户认证通过后,根据用户的权限来控制用户访问资源的过程
  • 3.拥有资源的访问权限则正常访问,没有权限则拒绝访问

3.3.基于角色的访问控制:

  • 基于角色的访问控制简称为RBAC(Role-Based Access Control) 模型
  • 用户、角色、权限本质:就是把权限打包给角色(角色拥有一组权限),分配给用户(用户拥有多个角色)。
  • 最少包括五张表 (用户表、角色表、用户角色表、权限表、角色权限表)
相关推荐
佛祖让我来巡山20 天前
小明网站双登录系统实现——微信授权登录+用户名密码登录完整指南
oauth2·springsecurity·微信授权登录
佛祖让我来巡山21 天前
Spring Security 鉴权流程与过滤器链深度剖析
springsecurity·authenticationmanager
佛祖让我来巡山21 天前
大型项目基于Spring Security的登录鉴权与数据权限控制完整方案
springsecurity·保姆级鉴权·大型项目登录认证
佛祖让我来巡山21 天前
Spring Security前后端分离接入流程保姆级教程
权限校验·springsecurity·登录认证
佛祖让我来巡山22 天前
Spring Security 认证流程闭环与调用链路详解
springsecurity·authenticationmanager
佛祖让我来巡山22 天前
小明的Spring Security入门到深入实战
springsecurity
佛祖让我来巡山23 天前
⚠️登录认证功能的成长过程:整体概述
安全·登录·springsecurity·登录认证·认证授权
码熔burning3 个月前
Spring Security 深度学习(六): RESTful API 安全与 JWT
安全·spring·restful·springsecurity
A尘埃3 个月前
SpringSecurity版本的不同配置
认证·springsecurity·安全配置·不同版本
世纪摆渡人5 个月前
SpringSecurity-SpringSecurity入门介绍
springsecurity