文章目录
微服务安全认证概览
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 头信息不超出以下几种字段: |
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
–
如有问题,请留言或者发送邮件,感谢您的阅读