单点登录:
- SSO single sign on 在一处登录以后,可以直接访问相互信任的系统
有状态登录和无状态登录
- 有状态登录,典型的就是有session,用session构建客户端和服务端的一个连接。缺点:所有的session都放在服务端,会造成服务器压力过大。
- 无状态登录,并不会保持客户端和服务端的一直连接,每次访问是去验证客户端的cookie,即从注册中心获取的Token(Token中包含用户相关的信息),减轻服务端的压力
1.RSA非对称加密算法。
在注册中心**私钥**加密,各个微服务**公钥**解密
2.加密后的Token字符串包含那些信息?
使用JWT,来规定其包含的信息
- JWT包含3部分信息
Header
|Payload
|Signature
- 有没有使用单点登录?
使用了,使用JWT规范 - 使用的什么加密算法?
RS256非对称加密算法。就使用了公钥私钥的问题
我们把jwt返回到客户端,客户端保存到哪里呢?Cookie(大小:4K)
- 优点:
- 会随着浏览器自动发送,客户端不用任何额外代码
- 使用httponly,避免XSS攻击风险 禁用js脚本操作cookie(禁用脚本操作cookie)
- 缺点:
- 会随着浏览器自动发送,某些时候有些多余
- 可能遭到CSRF(跨站资源访问)攻击
- 采用cookie方案,cookie方案的两个缺陷我们也可以解决:
- 问题1:会随着浏览器自动发送,某些时候有些多余
- 解决:后端服务与其它服务资源(如静态资源)采用不同域名,浏览器的同源策略会限制cookie
- 问题2:可能遭到CSRF(跨站资源访问)攻击
- 解决:避免get请求操作服务器资源,遵循Rest风格,必要时在token中存入随机码