浪浪

V1

2022/09/01阅读:10主题:默认主题

Spring Security OAuth2.0认证授权(一)

认证和授权基本概念

  • 认证的场景:


    进入移动互联网时代,大家每天都在耍手机,常用的软件有微信,支付宝,头条等,下边那微信来举个例子, 当你打开微信app是如果是第一次打开会让你输入账号密码登录账号,你才能正常使用,为什么要登录? 如果不登录就无法确认当前使用软件的人是谁,并且发送消息也不知道谁发的等等... 那这和认证授权有什么关系?
  • 认证说明:


    登录其实就是认证的一个过程,当你将账号密码填写完成后,需要点击登录按钮将账号密码发送到服务端进行准确性校验这就是认证.
  • 会话:


    用户认证通过完成后,为了避免用户的每次操作都需要认证,可以将用户的信息封装到绘画中,会话就是系统为了保持当前用户登录状态所提供的机制,常见的有基于session方式,基于session方式,基于token方式等
  • 以下基于session的认证方式流程


    1. 用户发起登录请求
    2. 服务器校验请求数据
    3. 服务器创建一个session会话域,将数据封装到域中,并返回客户端一个session_id
    4. 后续客户端请求服务器资源会携带session_id
    5. 当用户退出系统或session过期销毁后,客户端的session_id也就无效了

    优点: java web 内置了session功能,需要就直接引用
    缺点: 多服务或集群服务不利,请求每次访问服务器不是同一天就会引发重复认证问题,但是也有对应解决方法,这里就不详细展开了可以自行查阅其他文章

  • 以下基于token的认证方式流程


    1. 用户发起登录请求
    2. 服务器校验请求数据
    3. 服务器将指定信息如账户名,过期时间等封装到token令牌中并返回给客户端
    4. 后续客户端请求服务器资源会携带token,服务器只需检查token过期时间等重要指标
    5. token过期后,再次请求需要重新认证

    优点: 因为其特性就是将信息封装token中存在客户端,客户端请求发来都会携带token,解决了session 会话数据不一致问题
    缺点: 使用第三方工具,数据存放客户端,具有安全问题,计算机圈有一句话是,任何安全机制都不是绝对安全,只能说是相对安全

  • 授权的场景:


    用户认证通过后使用服务端提供的某些功能的权限,这里还是以微信场景为案例,比如微信用户要发朋友圈,那这个发送朋友圈功能该账号是否有权限呢,这个就是服务端授权.
    授权是用户通过认证后根据用户已有的权限来控制访问资源的过程,授权为了更细粒度的控制用户服务的使用,保障服务和数据的安全性.

    结尾: 祝君学业有成,事业舒心

分类:

后端

标签:

Java

作者介绍

浪浪
V1