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

JSON 2016-08-23 00:18:00 81732

单点登录  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  方式,这里就不做介绍了,资料非常多。

原理:和方案三类似。

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

缺点:繁重、灵活性差。


版权所属:SO JSON在线解析

原文地址:https://www.sojson.com/blog/80.html

转载时必须以链接形式注明原始出处及本声明。


如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。

关于作者
一个低调而闷骚的男人。
相关文章
iTunes 没有“应用”这个选项解决方案
Jsoup 提交参数乱码,解决思路,解决过程及解决方案
Springboot 集成Freemarker 自定义标签解决方案
CDN 请求返回 connection reset by peer,被拦截请求解决方案
JSOUP教程,JSOUP 乱码处理,JSOUP生僻字乱码解决方案
阿里云 RDS Specified key was too long; max key length is 767 bytes 解决方案
Shiro 通过配置Cookie 解决多个二级域名的单点登录问题。
火狐(Firefox )浏览器提示。此链接是不受信任的,站长和用户的解决方案。SSL申请
QQ互联登录,出现qzuser用户的原因及解决办法
使用zxing解析二维码抛出com.google.zxing.NotFoundException 解决方案
最新文章
PHP变量剖析 4
SQL全外连接剖析 119
SQL自然连接剖析 147
springboot启动原理 245
SQL右连接【RIGHT JOIN】详解及图解 450
SQL左链接【LEFT JOIN】详解及图解 357
SQL非等值连接剖析 262
SQL等链接剖析 291
SQL内连接详解及图解 385
python之numpy常用的100种数值相关方法及代码示例 231
最热文章
最新MyEclipse8.5注册码,有效期到2020年 (已经更新) 679222
苹果电脑Mac怎么恢复出厂系统?苹果系统怎么重装系统? 674561
免费天气API,全国天气 JSON API接口,可以获取五天的天气预报 599008
免费天气API,天气JSON API,不限次数获取十五天的天气预报 565182
Jackson 时间格式化,时间注解 @JsonFormat 用法、时差问题说明 551699
我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比 509186
Elasticsearch教程(四) elasticsearch head 插件安装和使用 479635
Jackson 美化输出JSON,优雅的输出JSON数据,格式化输出JSON数据... ... 262798
Java 信任所有SSL证书,HTTPS请求抛错,忽略证书请求完美解决 244092
Elasticsearch教程(一),全程直播(小白级别) 225115
支付扫码

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

查看我的收藏

正在加载... ...