文章目录


微服务安全认证概览

JWT - 网络安全

JWT 介绍


  • JWT 全称 —— JSON Web Token
  • JWT 主要用于身份认证和信息加密

JWT 特性


  • JWT 可以携带数据进行传输,方便后端使用
  • JWT 可以对传输数据进行签名,增加安全性

JWT组成

组成

作用

内容示例

Header(头)

记录令牌类型、签名的算法等

{“alg”:“HS256”, “typ”:“JWT”}

Payload(有效载荷)

携带一些用户信息

{“userId”:“1”, “username”: “damu”}

Signature(签名)

防止Token被篡改、确保安全性

计算出来的签名,一个字符串

Token 公式

Token = Base64(Header).Base64(Payload).Base64(Signature)

Signature = Header指定的签名算法(Base64(Header).Base64(Payload), 秘钥)

CORS - 跨域资源共享

概念


跨域资源共享(CORS),亦译为跨域资源共享,是一份浏览器技术的规范,提供了 Web 服务从不同网域传来沙盒脚本的方法,以避开浏览器的同源策略,是 JSONP 模式的现代版。与 JSONP 不同,CORS 除了 GET 请求方法以外也支持其他的 HTTP 请求。用 CORS 可以让网页设计师用一般的 XMLHttpRequest,这种方式的错误处理比 JSONP 要来的好。另一方面,JSONP 可以在不支持 CORS 的老旧浏览器上运作。现代的浏览器都支持 CORS。


简单来说即:


  • 跨域资源共享: Cross-origin resource sharing
  • 域: 当一个请求的协议、域名和端口三者之一不同即为跨域
  • JSONP只支持GET请求,CORS支持所有类型的HTTP请求。JSONP的优势在于支持老式浏览器,以及可以向不支持CORS的网站请求数据。

CORS 请求类型

浏览器将 CORS 请求分成两类:简单请求(simple request)和非简单请求(not-so-simple request)。

简单请求一般包括下面两种情况:

情况

描述

请求方法

请求方法为:HEAD 或 GET 或 POST;

HTTP 头信息

HTTP 头信息不超出以下几种字段:​​Accept​​​, ​​Accept-Language​​​, ​​Content-Language​​​,​​Last-Event-ID​​​, ​​Content-Type​​​:只限于三个值 ​​application/x-www-form-urlencoded​​​、​​multipart/form-data​​​、​​text/plain​

SpringSecurity - 服务安全

SpringSecurity 概览


  • SpringCloud 默认可以使用 ​​SpringSecurity​​ 进行身份认证
  • Eureka Server 可以使用 ​​SpringSecurity​​ 建立安全连接
  • SpringCloud 新版默认会开启 CSRF 防御, 会导致一些错误

SpringSecurity简介


Spring Security是为基于Spring的应用程序提供声明式安全保护的安全性框架,它能够在web请求级别和方法调用级别处理身份认证和授权。由于是基于Spring框架,它充分地利用了依赖注入和面向切面技术。Spring Security的最初版本就不在这里介绍了,从最新版本3.2说起:(但是大家也别忘记哟,Spring Security的最初版本名叫Acegi Security),Spring Security从两个角度来解决安全性问题,它使用Servlet规范中的Filter保护web请求并限制URL级别的访问,通过Spring AOP保护方法调用


认证和授权

应用程序的两个主要区域是认证和授权(访问控制)。这两个主要区域是Spring Security的两个目标。

  • 认证(Authentication)


认证,是建立一个他声明的主体的过程(一个主体一般是指用户,设备或一些可以在你的应用程序中执行的其他系统)。


  • 授权(Authorization)


授权,是指确定一个主体是否允许在你的应用程序执行一个动作的过程。为了抵达需要授权的点,主体的身份已经有认证过程建立。



– ​​end​​ –

​如有问题,请留言或者发送邮件,感谢您的阅读​