N多系统单点登录,实现、解决方案。四种解决方案

soゝso 2016-08-23 00:18:00 16978
分享到:

单点登录  SSO  )的技术被越来越广泛地运用到各个领域的软件系统当中。本文从业务的角度分析了 单点登录  的需求和应用领域;从技术本身的角度分析了 单点登录  技术的内部机制和实现手段,并且给出Web- SSO  和桌面 SSO  的实现、源代码和详细讲解;还从安全和性能的角度对现有的实现技术进行进一步分析,指出相应的风险和需要改进的方面。本文除了从多个方面和角度给出了对 单点登录  SSO  )的全面分析,还并且讨论了如何将现有的应用和 SSO  服务结合起来,能够帮助应用架构师和系统分析人员从本质上认识 单点登录  ,从而更好地设计出符合需要的安全架构。

单点登录是什么?

单点登录 (Single Sign On),简称为  SSO  ,是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。所以你会看到很多域名直接是sso.domain.com,也就是用来做单点登录 的。

如上图,一个用户请求N个系统,给用户的感觉是一个系统的感觉,而不要重复登录。

单点登录 是一个概念性东西,既然是概念,那么就有很多实现方式。

实现方案

根据不同的业务场景来不同的实现方式。下面来罗列一下对应的场景以及实现单点登录 的方式。

一、方案一。

        域名:a.sojson.com 、b.sojson.com、c.sojson.com、n.sojson.com

        描述:N个系统,但是 一级域名  是一致的。如果不懂 一级域名  二级域名  是什么意思先查看这篇博客。《单个项目多个二级域名简单实现思路》。这个案例实现相对简单,如下图:

PS:这个方案比较简单,只要提供公共的 SDK  即可,不需要第三个系统的出现,这个 SDK  的工作需要管理 Cookie  和用户信息。

原理:其实质这里就是利用了 二级域名  一级域名  Cookie 

优点:轻量级、可插拔、效率非常高。

缺点:局限性限于一级域名是一样的。


二、方案二

域名www.sojson.com、a.sojson.com、www.itboy.net、www.wenyiba.com

描述:域名比较乱,有同一个一级域名的(www.sojson.com、a.sojson.com),也有不同域名的。

这个稍微复杂一点,如下图:

原理:通过SSO 系统(登录、退出), Iframe  引用的方式引入Cookie.domain.com的方式,利用 Javascript  操作(写入 / 删除 / 修改)  cookie  ,而这个cookie.domain.com 域名是放入 CDN  上 ,获取用户信息当前系统直接通过 Redis  (只读)获取。

优点:因为是采用压力分化,Cookie.domain.com  部署在CDN上,这样的话,对各个系统造成的压力是 0 ,用第三方系统(SSO)维护,权限更大,操作性更强,但又Cookie 信息在当前域名的一级域下,获取简单,大量减少对 sso 的访问量。

缺点:如果浏览器安全性过高,Iframe 的方式操作 Cookie 将会失败。比如IE浏览器,目前正在攻克IE浏览器。


三、方案三

域名www.sojson.com、a.sojson.com、www.itboy.net、www.wenyiba.com

描述:域名比较乱,有同一个一级域名的(www.sojson.com、a.sojson.com),也有不同域名的。

(条件和方案二一样),实现思路如下图:

原理:所有的请求(登录、退出、获取用户信息、当前用户状态)都请求sso 系统,sso 系统维护用户信息, Session  UserInfo

优点:实现较为简单。

缺点SSO 压力非常大。


四、方案四

域名www.sojson.com、a.sojson.com、www.itboy.net、www.wenyiba.com

描述:域名比较乱,有同一个一级域名的(www.sojson.com、a.sojson.com),也有不同域名的。

(条件和方案二一样),实现采用 CAS  方式,这里就不做介绍了,资料非常多。

原理:和方案三类似。

优点:现成的,资料较多。

缺点:繁重、灵活性差。


关于作者
目前就职于国内某电商平台公司打杂。。
相关文章
JSOUP教程,JSOUP 乱码处理,JSOUP生僻字乱码解决方案
Shiro 通过配置Cookie 解决多个二级域名的单点登录问题。
火狐(Firefox )浏览器提示。此链接是不受信任的,站长和用户的解决方案。SSL申请
使用zxing解析二维码抛出com.google.zxing.NotFoundException 解决方案
Java API接口返回不是JSON的解决方案,SpringMVC返回JSON配置。
Shiro教程(十一)Shiro 控制并发登录人数限制实现登录踢出实现
IE、Firefox对同一域名访问并发限制,及解决优化方案
JQuery Ajax四种写法,Ajax请求返回JSON 操作Demo
Java 信任所有SSL证书,HTTPS请求抛错,忽略证书请求完美解决
Spring 3.x 升级到Spring 4.x 注意事项和步骤,错误解决方法
最新文章
免费天气API,全国天气 JSON API接口,可以获取五天的天气预报 39153
SOJSON 使用又拍云 CDN 整体架构,解决百度 SEO 方案 33
又拍云(Upyun)刷新CDN,云存储缓存 —JavaAPI 20
JS解密,JavaScript 解密,任何JS加密都能100%解密,以及JS 加密讲解 83
阿里云DNS 解析讲解,SEO配置搜索引擎线路解析 45
百度秒收录教程,怎么做到百度秒收入你的页面,SEO 教程 101
CDN 请求返回 connection reset by peer,被拦截请求解决方案 37
Google AdSense 申请技巧,谷歌广告申请通不过教程 69
Mac 安装 JMeter,JMeter 下载,JMeter Http 压力测试【图解】 51
支付宝吱口令自动复制脚本,自动复制 JavaScript 代码介绍 916
最热文章
免费天气API,全国天气 JSON API接口,可以获取五天的天气预报 39097
Elasticsearch教程(四) elasticsearch head 插件安装和使用 109124
Elasticsearch教程(六) elasticsearch Client创建 73308
Elasticsearch教程(八) elasticsearch delete 删除数据(Java) 70761
Elasticsearch教程(二),IK分词器安装 67505
Elasticsearch教程(三),IK分词器安装 (极速版) 54092
Elasticsearch教程(五) elasticsearch Mapping的创建 51628
Elasticsearch教程(一),全程直播(小白级别) 51390
Elasticsearch教程(七) elasticsearch Insert 插入数据(Java) 47779
Elasticsearch权威指南-中文.pdf,Elasticsearch 中文文档下载 40948

骚码加入我们 / 千人QQ群:259217951

入群需要5元,如果没有QQ钱包,可以先Alipay、微信,赞助然后加群主拉进。

二维码生成 来自 >> 二维码生成器

支付扫码

所有赞助/开支都讲公开明细,用于网站维护:赞助名单查看

正在加载... ...