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

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

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

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


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

关于作者
一个低调而闷骚的男人。
相关文章
N系统单点登录实现解决方案四种解决方案
iTunes 没有“应用”这个选项解决方案
Jsoup 提交参数乱码,解决思路,解决过程及解决方案
阿里云 RDS Specified key was too long; max key length is 767 bytes 解决方案
Springboot 集成Freemarker 自定义标签解决方案
CDN 请求返回 connection reset by peer,被拦截请求解决方案
JSOUP教程,JSOUP 乱码处理,JSOUP生僻字乱码解决方案
Shiro 通过配置Cookie 解决多个二级域名的单点登录问题。
火狐(Firefox )浏览器提示。此链接是不受信任的,站长和用户的解决方案。SSL申请
QQ互联登录,出现qzuser用户的原因及解决办法
最新文章
Flink 在又拍云日志批处理中的实践 8437
个推异常值检测和实战应用-又拍云 1665
TCP 和 UDP协议详细讲解,优缺点分析讲解 8010
URL中乱七八糟的字符讲解,来源以及如何解决 5166
HTTP/3 来了,您真的了解它么? 6188
当我谈 HTTP 时,我谈些什么? 11774
新浪短链(t.cn)最新申请官方API的方法讲解。 72697
QUIC / HTTP3 协议详细分析讲解 10530
恭喜那个做云存储的七牛云完成 F 轮 10 亿人民币的融资,开启新的云旅程 8770
Autojs怎么安全加密?Autojs在线加密工具注意事项。 36734
最热文章
苹果电脑Mac怎么恢复出厂系统?苹果系统怎么重装系统? 653119
最新MyEclipse8.5注册码,有效期到2020年 (已经更新) 602705
我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比 495911
Jackson 时间格式化,时间注解 @JsonFormat 用法、时差问题说明 492017
免费天气API,全国天气 JSON API接口,可以获取五天的天气预报 491705
Elasticsearch教程(四) elasticsearch head 插件安装和使用 450925
Java 信任所有SSL证书,HTTPS请求抛错,忽略证书请求完美解决 229210
谈谈斐讯路由器劫持,你用斐讯路由器,你需要知道的事情 203268
Elasticsearch教程(一),全程直播(小白级别) 192505
Jackson 美化输出JSON,优雅的输出JSON数据,格式化输出JSON数据... ... 176158
支付扫码

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

查看我的收藏

正在加载... ...