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

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

单点登录  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

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


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

关于作者
一个低调而闷骚的男人。
相关文章
最新文章
TCP 和 UDP协议详细讲解,优缺点分析讲解 942
URL中乱七八糟的字符讲解,来源以及如何解决 629
HTTP/3 来了,您真的了解它么? 2690
当我谈 HTTP 时,我谈些什么? 9073
新浪短链(t.cn)最新申请官方API的方法讲解。 46287
QUIC / HTTP3 协议详细分析讲解 4943
恭喜那个做云存储的七牛云完成 F 轮 10 亿人民币的融资,开启新的云旅程 6465
Autojs怎么安全加密?Autojs在线加密工具注意事项。 21086
Java JSON 组件选型之 FastJson 为什么总有漏洞? 46123
使用七牛云存储实现图片API,自动删除图片方案合集 6550
最热文章
苹果电脑Mac怎么恢复出厂系统?苹果系统怎么重装系统? 585122
最新MyEclipse8.5注册码,有效期到2020年 (已经更新) 508694
我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比 466009
免费天气API,全国天气 JSON API接口,可以获取五天的天气预报 440272
Elasticsearch教程(四) elasticsearch head 插件安装和使用 329677
Jackson 时间格式化,时间注解 @JsonFormat 用法、时差问题说明 311576
谈谈斐讯路由器劫持,你用斐讯路由器,你需要知道的事情 181747
Java 信任所有SSL证书,HTTPS请求抛错,忽略证书请求完美解决 164100
Elasticsearch教程(一),全程直播(小白级别) 157833
Jackson 美化输出JSON,优雅的输出JSON数据,格式化输出JSON数据... ... 129064
支付扫码

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

查看我的收藏

正在加载... ...