登录方案

登录方案
 
常⽤⽅案总览
1. 容器session
2. 共享session
3. ⽆状态token
4. ⽆状态签名
5. CAS
6. OAuth2.0
 
容器Session
优点:Servlet容器⾃带,⽆需引⼊其它配置即可使⽤。
缺点:只有⾃⼰可以使⽤,⽆法共享,针对分布式应⽤不适⽤。
 
共享Session
优点:通过第三⽅组件(如Redis、MemCache)可以进⾏Session的共享,然后满⾜分布式应⽤的需求。
缺点:所有分布式应⽤最好在同⼀个局域⽹中,不然存取Session数据的时候效率将成为问题。
 
⽆状态Token
优点:Token的签发放和使⽤⽅使⽤同样的密钥及算法就可以完成token中数据的共享,可以解决分布式
应⽤跨⽹络的缺陷,⽐如Jwt。
缺点:签发的Token不好控制过期,Token中存储的数据相对有限。
 
⽆状态签名
优点:不仅可以验证身份,并且可以达到防数据串改。
缺点:权限体系及流程更复杂。
 
另外签名⽅式也分两种场景:
1. 客户端安全:⽐如对接微信或⽀付宝,数据⼀般都通过RSA或MD5等⽅式签名,密钥是固定的,对
应的密钥是客户端⾃⾏在⽀付宝或微信等服务端配置或下载。
2. 客户端不安全:虽然签名⽅式和第1种情况⼏乎⼀样,但因为客户端不安全,所以密钥不能是固定
的。所以必须多⼀层密钥交换的流程,以达到每个客户端密钥都不相同,这样安全性才能得到保
证。
 
CAS关于CAS的理解,可以阅读CAS实现SSO单点登录原理
https://www.evernote.com/shard/s274/client/snv?noteGuid=585ede9b-4d0d-4f39-bf60-17d380b94fbf&noteKey=ea43f8fcec1ef1d3&sn=https%3A%2F%2Fwww.evernote.com%2Fshard%2Fs274%2Fsh%2F585ede9b-4d0d-4f39-bf60-17d380b94fbf%2Fea43f8fcec1ef1d3&title=CAS%25E5%25AE%259E%25E7%258E%25B0SSO%25E5%258D%2595%25E7%2582%25B9%25E7%2599%25BB%25E5%25BD%2595%25E5%258E%259F%25E7%2590%2586%2B-%2Bgaungyao.wu%2B-%2B%25E5%258D%259A%25E5%25AE%25A2%25E5%259B%25AD
OAuth2.0
关于OAuth2的理解,可以阅读阮⼀峰的理解OAuth 2.0
https://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html
CAS的单点登录,资源都在客户端这边,不在CAS的服务器那边,CAS服务器只告诉你当前登录的
这个⼈是谁。
OAuth2.0认证,资源都在OAuth2.0服务提供者那边,客户端是想索取⽤户的资源。
针对服务端开发来说,CAS登录和OAuth2.0在流程上的最⼤区别就是,通过ST或者code去认证的
时候,需不需要预先商量好的密码。
posted on 2019-09-11 17:26  shenhaha  阅读(340)  评论(0编辑  收藏  举报

有用的话麻烦点个推荐哈