分布式Session、SSO(单点登陆)

分布式Session、SSO(单点登陆)


(一)分布式Session方案

1.Session Sticky

  • Nginx的负载均衡策略设置为根据IP进行路由,指定用户的Session存储在指定的应用服务器上
  • 缺点:存在单点故障,对于指定用户来说,一旦存储Session的应用服务器宕机,整个服务都不可用。

2.Session Replication

  • 多个应用服务器之间共享Session
  • 缺点:数据冗余大,耗内存;不同应用服务器之间同步耗费宽带,如果应用服务器非常多简直是灾难。
  • 优点:实现简单,如果用户量不大可以选择。

3.Session Center

  • 所有应用服务器之间共享Session,存储在同一个Redis中。
  • 缺点:Redis必须保证高可用,一旦宕机整个服务都不可用。


(二)SSO(单点登陆)实现方案

1.共享Session

SSO最简单、最直接的方式就是所有子系统共享session,存储在DB或者Redis


2.基于cookieOpenID存储方案

客户端第一次访问子系统A时,会首先访问认证服务系统,然后会返回一个OpenID。收到OpenID后客户端将其存储在cookie中,此后再(第一次)访问其他子系统B时会带上cookie访问,子系统B将cookie中的OpenID传递给认证服务系统进行验证,验证通过后返回授权后的内容给客户端

-------------本文结束感谢您的阅读-------------

本文标题:分布式Session、SSO(单点登陆)

文章作者:DragonBaby308

发布时间:2019年10月21日 - 19:01

最后更新:2019年11月19日 - 23:17

原始链接:http://www.dragonbaby308.com/SSO/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

急事可以使用右下角的DaoVoice,我绑定了微信会立即回复,否则还是推荐Valine留言喔( ఠൠఠ )ノ
0%