认证授权流程及原理分析

简介: 认证授权流程及原理分析

1、认证 (Authentication) 和授权 (Authorization)的区别是什么?

认证(Authentication):你是谁?

授权 (Authorization):你有什么权限?

稍微正式点(啰嗦点)的说法就是:

  • Authentication(认证) 是验证您的身份的凭据(例如用户名/用户ID和密码),通过这个凭据,系统得以知道你就是你,也就是说系统存在你这个用户。所以,Authentication 被称为身 份/用户验证。
  • Authorization(授权) 发生在 Authentication(认证) 之后。授权嘛,光看意思大家应该就明白,它主要掌管我们访问系统的权限。比如有些特定资源只能具有特定权限的人才能访问比如 admin,有些对系统资源操作比如删除、添加、更新只能特定人才具有。

这两个一般在我们的系统中被结合在一起使用,目的就是为了保护我们系统的安全性。

2、什么是Cookie ? Cookie的作用是什么?如何在服务端使用 Cookie ?

Cookie 和 Session都是用来跟踪浏览器用户身份的会话方式,但是两者的应用场景不太一样。

Cookie 存放在客户端,一般用来保存用户信息。

应用场景:

  • 自动登录:在 Cookie 中保存已经登录过的用户信息,下次访问网站的时候⻚面可以自动帮你登录的一 些基本信息给填了。
  • 使用Cookie 保存 session 或者 token ,向后端发送请求的时候带上 Cookie,这样后端就能取 到session或者token了。这样就能记录用户当前的状态了,因为 HTTP 协议是无状态的。
  • Cookie 还可以用来记录和分析用户行为。举个简单的例子你在网上购物的时候,因为HTTP协议 是没有状态的,如果服务器想要获取你在某个⻚面的停留状态或者看了哪些商品,一种常用的实 现方式就是将这些信息存放在Cookie。

3、Cookie 和 Session 有什么区别?如何使用Session进行身份验证?

Session 的主要作用就是通过服务端记录用户的状态。

典型的场景是购物⻋,当你要添加商品到购物 ⻋的时候,系统不知道是哪个用户操作的,因为 HTTP 协议是无状态的。服务端给特定的用户创建特定 的 Session 之后就可以标识这个用户并且跟踪这个用户了。

Cookie 数据保存在客户端(浏览器端),Session 数据保存在服务器端。相对来说 Session 安全性更 高。如果使用 Cookie 的一些敏感信息不要写入 Cookie 中,最好能将 Cookie 信息加密然后使用到的 时候再去服务器端解密。

那么,如何使用Session进行身份验证?

很多时候我们都是通过 SessionID 来实现特定的用户,SessionID 一般会选择存放在 Redis 中。举个 例子:用户成功登陆系统,然后返回给客户端具有 SessionID 的 Cookie,当用户向后端发起请求的时 候会把 SessionID 带上,这样后端就知道你的身份状态了。关于这种认证方式更详细的过程如下:

  1. 用户向服务器发送用户名和密码用于登陆系统。
  2. 服务器验证通过后,服务器为用户创建一个 Session,并将 Session信息存储 起来。
  3. 服务器向用户返回一个 SessionID,写入用户的 Cookie。
  4. 当用户保持登录状态时,Cookie 将与每个后续请求一起被发送出去。
  5. 服务器可以将存储在 Cookie 上的 Session ID 与存储在内存中或者数据库中的 Session 信息进行比对,以验证用户的身份,返回给用户客户端响应信息的时候会附带用户当前的状态。
相关文章
|
监控 前端开发 JavaScript
AST 代码扫描实战:如何保障代码质量
2020 年 618 大促已经过去,作为淘系每年重要的大促活动,淘系前端在其中扮演着什么样的角色,如何保证大促的平稳进行?又在其中应用了哪些新技术?淘系前端团队特此推出「618 系列|淘系前端技术分享」,为大家介绍 618 中的前端身影。 本篇来自于频道与D2C智能团队的菉竹,为大家介绍本次 618 大促中是如何用代码扫描做资损防控的。
4083 0
AST 代码扫描实战:如何保障代码质量
|
网络协议 网络虚拟化 网络架构
【华为数通HCIP | 网络工程师】821-BGP高频题、易错题(1)
【华为数通HCIP | 网络工程师】821-BGP高频题、易错题(1)
2877 0
通义万相2.5-图生视频-Preview,模型使用指南
该表格展示了多个设计场景,包括模型选择、复制粘贴提示词与图片、一键生成视频等步骤。每个步骤配有详细描述及示意图,呈现了不同主题和风格的设计构思与实现方式。
|
缓存 安全 API
【亿级数据专题】「高并发架构」盘点本年度探索对外服务的百万请求量的API网关设计实现
公司对外开放的OpenAPI-Server服务,作为核心内部系统与外部系统之间的重要通讯枢纽,每天处理数百万次的API调用、亿级别的消息推送以及TB/PB级别的数据同步。经过多年流量的持续增长,该服务体系依然稳固可靠,展现出强大的负载能力。
701 9
【亿级数据专题】「高并发架构」盘点本年度探索对外服务的百万请求量的API网关设计实现
|
人工智能 安全 API
一年输送旅客数千万次,浦东国际机场的效率秘密藏在这个智能体里
秋冬旅游高峰,浦东机场迎百万客流挑战。蚂蚁百宝箱推出“浦东国际机场”智能体,集成航班查询、停车导航、交通路线、餐饮酒店等一站式服务,实现“出发—到港”全链路智慧出行,提升旅客体验与机场运营效率。
419 0
一年输送旅客数千万次,浦东国际机场的效率秘密藏在这个智能体里
|
Kubernetes jenkins Shell
|
Web App开发 数据可视化 Python
Python Selenium获取boss直聘招聘信息
Python Selenium获取boss直聘招聘信息
671 5
Python Selenium获取boss直聘招聘信息
|
存储 Ubuntu Linux
查看 Linux 内核以及系统版本的几种方法
查看 Linux 内核以及系统版本的几种方法,以 Ubuntu 为例,介绍几个用来查看系统与内核版本的命令,拿起小本本记录下来!
3676 127
|
缓存 监控 数据安全/隐私保护
|
安全 Java Linux
如何实现无公网IP及服务器实现公网环境企业微信网页应用开发调试
如何实现无公网IP及服务器实现公网环境企业微信网页应用开发调试
746 2