什么是单点登陆系统及实现

 

GitHub地址:https://github.com/leebingbin/Framework.Blade

 

1   什么是单点登陆系统

1.1    什么是SSO

SSO英文全称Single Sign On,单点登陆。SSO是在多个应用系统中,用户只须要登陆一次就能够访问全部相互信任的应用系统。它包括能够将此次主要的登陆映射到其余应用中用于同一个用户的登陆的机制。它是目前比较流行的企业业务整合的解决方案之一。git

1.2    传统的登陆流程

1.2.1  传统流程中的问题:


    在集群环境中。须要把同一套代码部署到多台服务器上。每一个工程都有本身独立的session。github

 

1.3  解决方案

1.3.1第一种方案

    能够配置tomcat的session共享。配置tomcat集群。Tomcat配置好集群后,会不停的向集群中其余的tomcat广播本身的session信息。其余的tomcat作session同步。能够保证全部的tomcatsession中的内容都是一致的。redis

    优势:不用修改代码就能够实现session共享。tomcat

    缺点:tomcat 是全局session复制,集群内每一个tomcat的session彻底同步(也就是任什么时候候都彻底同样的) 在大规模应用的时候,用户过多,集群内tomcat数量过多,session的全局复制会致使集群性能降低, 所以,tomcat的数量不能太多,5个如下为好。服务器

    不能解决分布式工程的session共享问题。例如支付宝和淘宝单点登陆的问题。session

1.3.2第二种方案

    实现单点登陆系统,提供服务接口。把session数据存放在redis。分布式

    Redis能够设置key的生存时间、访问速度快效率高。性能

    优势:redis存取速度快,不会出现多个节点session复制的问题。效率高。spa

 

    缺点:须要额外的开发。.net

1.3.3    单点登陆系统流程

 

本文为博主原创文章,转载请注明出处!

https://my.oschina.net/u/3375733/blog/

相关文章
相关标签/搜索