我对sso的使用和实现
2016-03-10 16:05
218 查看
我对sso的使用目前有三个阶段。
1.使用cas
cas的好处自行搜索,缺点就是需要性能、维护、负载,如果cas宕机,从逻辑上来说就是所有的系统全部宕机了。
当然你可以维护集群,那就麻烦了。这个不符合我的设计理念。
2.扩展tomcat,session共享并实现sso
2011年的实现方案,目前在生成环境运行,比较稳定。缺点就是绑定容器了。
具体参见:tomcat 使用 memcached管理session ,并且实现统一登录
3.web应用session共享,和容器脱离并实现sso
2013年的实现方案,由方案2进化而来,目前在生产环境运行,并逐步替换方案2,详细实现参见springrain,通过shiro和redis实现应用级别的session共享,和容器脱离。sso部分和方案2雷同
关于统一登录sso,如果跨域名,可以通过iframe创建不同域名下的jsessionid.跨语言可以通过jsessionid直接从memcached/redis中查找当前用户的登陆信息,我目前是开了一个服务(jsp页面)让第三方系统调用.在同一个浏览器中打开,可以获取jsessionid作为参数传递.每个业务应用,jsessionId就相当于cas的ticket.
我的理念是:认证即应用,因为每台业务应用都可以具有sso认证功能,只要还有一台业务应用在线sso认证服务就在线。 http://my.oschina.net/baobao/blog/199796
1.使用cas
cas的好处自行搜索,缺点就是需要性能、维护、负载,如果cas宕机,从逻辑上来说就是所有的系统全部宕机了。
当然你可以维护集群,那就麻烦了。这个不符合我的设计理念。
2.扩展tomcat,session共享并实现sso
2011年的实现方案,目前在生成环境运行,比较稳定。缺点就是绑定容器了。
具体参见:tomcat 使用 memcached管理session ,并且实现统一登录
3.web应用session共享,和容器脱离并实现sso
2013年的实现方案,由方案2进化而来,目前在生产环境运行,并逐步替换方案2,详细实现参见springrain,通过shiro和redis实现应用级别的session共享,和容器脱离。sso部分和方案2雷同
关于统一登录sso,如果跨域名,可以通过iframe创建不同域名下的jsessionid.跨语言可以通过jsessionid直接从memcached/redis中查找当前用户的登陆信息,我目前是开了一个服务(jsp页面)让第三方系统调用.在同一个浏览器中打开,可以获取jsessionid作为参数传递.每个业务应用,jsessionId就相当于cas的ticket.
我的理念是:认证即应用,因为每台业务应用都可以具有sso认证功能,只要还有一台业务应用在线sso认证服务就在线。 http://my.oschina.net/baobao/blog/199796
相关文章推荐
- Java 7 SDP:一次编写,到处运行,有时还运行得超炫!
- window环境Nginx+Tomcat集群配置
- oracle中 procedure和function 区别
- Cookie总结
- 使用Htmlunit上传文件
- java从字符串中提取数字
- gson JsonParser
- Storm 实现滑动窗口计数和TopN排序
- Storm, Spark, Hadoop
- Software caused connection abort: recv failed
- WordCount运行详解
- 避免Gson使用时将一些字符自动转换为Unicode转义字符
- Activemq 心跳
- activeMQ的源码分析 -TCP通讯机制
- ES中的分词器
- htmlunit 优化
- 自定义 hadoop MapReduce InputFormat 切分输入文件
- 网络爬虫基本原理
- activemq 重新连接的机制
- java io