背景:认证、授权、鉴权和权限控制:

https://segmentfault.com/a/1190000013258488

认证、授权、鉴权和权限控制 | 滩之南

单点登录的通用架构实现 | 滩之南

https://segmentfault.com/a/1190000013010835

基于JWT的token身份认证方案 - 开拖拉机的蜡笔小新 - 博客园

用户名密码

  • 用户输入账号、密码提交给服务端认证

存在一个问题,万一被泄漏了,就只能改密码或者用户名了,而且还必须销户。那么我们很自然得想到我们需要给用户账号密码认证加密或者是设置有效期。用户名密码还好,如果应用间访问间隔一段时间就要换密码是很痛苦的。而加密呢就涉及到了解密,安全的加密算法,解密一般来说会有性能损耗。(cookie和session都是基于用户名密码)

当然这里涉及到cookie和seesion还有单点登录的方案可以看上文链接

计算机的很多问题:加一个中间层就可以解决了,如果不行,那就多加几层

Token认证

我们能不能先用账号密码访问一个中间层然后从中间层取个带有效时间的对象呢,后续有效期内,我就使用这个对象来进行访问应用。这就是token也叫令牌。

但是如果报文在中途被劫持,那么token就泄露了,这时(token有效期内)黑客就可以构造任意的请求了,这时候我们就又想既然能加时间,我们是不是可以加更多的内容进去,比如你能调哪个api?但是如果每个api都这样搞,那么你需要保存多少token呢?换一个思路用加密,每次请求都要解密,性能上的损耗可能是我们无法接受的。

那么其实在微服务架构下,一般会有微服务网关,我们可能把这层鉴权和token生成放在网关吗?

当然可以。于是jwt应运而生:基于JWT的token身份认证方案 - 开拖拉机的蜡笔小新 - 博客园

aksk(Access Key Id / Secret Access Key)

AK/SK使用机制

公有云下绝大多数使用assk机制来进行认证鉴权

云主机接收到用户的请求后,系统将使用AK对应的相同的SK和同样的认证机制生成认证字符串,并与用户请求中包含的认证字符串进行比对。如果认证字符串相同,系统认为用户拥有指定的操作权限,并执行相关操作;如果认证字符串不同,系统将忽略该操作并返回错误码。

1.3 流程

判断用户请求中是否包含Authorization认证字符串。如果包含认证字符串,则执行下一步操作。
基于HTTP请求信息,使用相同的算法,生成Signature字符串。
使用服务器生成的Signature字符串与用户提供的字符串进行比对,如果内容不一致,则认为认证失败,拒绝该请求;如果内容一致,则表示认证成功,系统将按照用户的请求内容进行操作。
原理:
  客户端:
    1. 构建http请求(包含 access key);
    2. 使用请求内容和 使用secret access key计算的签名(signature);
    3. 发送请求到服务端。

服务端:
    1. 根据发送的access key 查找数据库得到对应的secret-key;
    2. 使用同样的算法将请求内容和 secret-key一起计算签名(signature),与客户端步骤2相同;
    3. 对比用户发送的签名和服务端计算的签名,两者相同则认证通过,否则失败。

用户密码和cookie,session、token还有AKSK相关推荐

  1. 2、cookie session token详解

    cookie session token详解 转自:http://www.cnblogs.com/moyand/ 发展史 1.很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, ...

  2. cookie session token区别_彻底理解cookie,session,token

    点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者: 墨颜丶 cnblogs.com/moyand/p/9047978.html 发展史 ...

  3. cookie session token区别_cookie、session与token的真正区别

    发展史 1.很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, 不需要记录谁在某一段时间里都浏览了什么文档,每次请求都是一个新的HTTP协议, 就是请求加响应, 尤其是我不用记 ...

  4. Cookie Session Token 与 JWT 解析

    首先先了解一些关键词 认证.授权与凭证 什么是认证(Authentication)? 通俗地讲就是 验证当前用户的身份是否合法的过程,即你是谁?证明"你是你自己"(比如:你每天上下 ...

  5. 测试面试题:cookie/session/token 分别表示什么意思,有什么区别?

    测试面试必问:   token,cookie,session 有什么区别? 1.解释 1>Cookie cookie 是一个非常具体的东西,指的就是浏览器里面能永久存储的一种数据,仅仅是浏览器实 ...

  6. cookie session token 之间的区别

    cookie 和session的区别 1.cookie数据存放在客户的浏览器上,session数据放在服务器上. 2.cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗 ...

  7. 网易用户认证架构设计 | session token | 公开课笔记-01

    网易严选中的用户认证架构设计 (一)Session本质及限制分析 1.背景 目前是Web2.0交互式网络时代 HTTP:传输HTML(一种超文本标记语言,侧重静态,不随请求变化而变化),所以HTTP天 ...

  8. 熬夜彻底搞懂Cookie Session Token JWT

    一切的根源就是因为 HTTP 是一个无状态的协议. HTTP 是一个无状态的协议 什么是无状态呢?就是说这一次请求和上一次请求是没有任何关系的,互不认识的,没有关联的. 看过电影<夏洛特烦恼&g ...

  9. 大剑无锋之浅析Cookie/Session/Token

    Cookie Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式.Cookie存储的数据量有限,且都是保存在客户端浏览器中.不同的浏览器有不同的存储大 ...

最新文章

  1. 1.(基于欧式距离聚类实现的点云分割)
  2. mysql5.7 高可用_基于MySQL 5.7多源复制及Keepalived搭建三节点高可用架构
  3. Pandas处理数据太慢,来试试Polars吧!
  4. 比紫书优化,14行代码AC——例题 5-7 丑数(Ugly Numbers,UVa 136)——解题报告
  5. mysql获取查询策略语句_MySQL数据库查询性能优化策略
  6. 这还没毕业呢,肩膀就不舒服,唉。。。要是工作了,那该有多累啊
  7. tomcat远程调试_docker容器远程debug(Tomcat)
  8. 快手抢占短视频第一股,增长惊人,腾讯又是大赢家!
  9. 地址解析协议(Address Resolution Protocol,ARP)
  10. Joseph UVA 1452 Jump
  11. sqlserver查询本周、上周、今天、昨天、本月、上月数据
  12. Java编程软件教学:Eclipse入门
  13. 音频管理工具- Realtek 高清音频管理器
  14. css固定定位的代码,CSS——相对定位、绝对定位、固定定位(示例代码)
  15. 初音未来音乐计算机教程,PSP《初音未来:歌姬计划》原创PV制作简易图文教程...
  16. 玉米社:SEM竞价搜索推广移动优先还是PC优先,怎么设置?
  17. js自定义打印网页内容
  18. 神经网络之误差反向传播法
  19. WIN10 VS2013 GTX960M NVIDIA显卡驱动和CUDA7.5安装 配置Caffe
  20. 经典力学(动力学)——动量守恒定律与能量守恒定律

热门文章

  1. 在VS2008中DataGridView控件里DataGridViewComboBoxColumn列的Bug
  2. JSF优点(转载自中国IT实验室)
  3. [转载]ASP.NET开发经验积累
  4. 斗鱼mac html5,New API · Issue #28 · spacemeowx2/DouyuHTML5Player · GitHub
  5. ssh项目放到服务器上出现404,项目运行一段时间,后台程序无法启动,404错误
  6. 横向循环焦点图片展示_多光子显微镜成像技术之十二:多光子显微镜中的焦点深度扩展方法...
  7. 前端vue适配不同的分辨率_浅析 React / Vue 跨端渲染原理与实现
  8. php旋转数组找出最小的,LeetCode 153 寻找旋转排序数组中的最小值
  9. c监控进程发现未启动就启动进程_非常有用的16个Linux 服务器监控命令
  10. cmenu 隐藏子项中的一个子项_QML中的模型-视图-代理