之前在公司做微信支付的时候,了解了一下oauth2协议,后来又看到sso(单点登录),看过这两者的解释,觉着这两者在某种程度上有点像,但是又有区别,很容易就迷糊了。
oauth2解决的是服务提供方(微信等)给第三方应用授权的问题,而sso解决的是大型系统中各个子系统如何共享登陆状态的问题。
两者都是基于分布式系统,涉及到多个角色,但是不同的是,oauth2是一种具体的协议,sso可以说是一种技术,可以用cookie实现,甚至也可以用oauth2实现(虽然不是很好),比如oauth中的服务提供方可以充当sso认证中心,oauth中的第三方应用也可以是sso中的子系统。
oauth2和sso 协议,具体的见以下连接:
单点登录原理:http://www.cnblogs.com/markleilei/p/6201665.html
oauth2详解:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html