码迷,mamicode.com
首页 > 编程语言 > 详细

【Spring Boot&& Spring Cloud系列】单点登录SSO

时间:2017-08-29 11:09:25      阅读:351      评论:0      收藏:0      [点我收藏+]

标签:memcached   blog   bsp   不用   md5   log   分布   技术分享   产生   

概念

单点登录(Singleton Sign On),简称为SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就能访问所有相互信任的应用系统。

也就是说在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录就能得到其他所有系统的信任。单点登录在大型网站中使用非常频繁,例如阿里这里的网站,在网站的背后是成百上千的子系统,用户一次操作或交易可能涉及到几十个子系统的协作,如果每个子系统都需要用户认证,不仅用户操作繁琐,各子系统重复认证授权也十分繁琐,因此实现单点登录说到底就是解决产生和存储信任,再就是其他系统验证信任的有效性。

实现方案

方案一、Cookie

技术分享

原理:实现一次登录和一次退出,session是保持登录状态关键的东西,客户端持有ID,服务端持有session,两者一起用来保持登录状态。客户端需要用ID来作为凭证,二服务端需要用session来验证ID的有效性。但是不同的服务有自己的Session,因此要想办法让各个server共用session信息

缺陷:1、Cookie不安全(可以采取Cookie加密提高安全性)

           2、不能跨域免登

方案二、Token

技术分享

原理:将信任关系存储在单独的SS哦系统里,也就是从客户端移到了服务端。

解决问题:1、如何高效的存储大量临时性的信任数据

                  2、如何防止信息传递过程被篡改

                  3、如何让SSO系统信任登陆系统和免登系统

解决方案:1、采用类似memcached的分布式缓存的方案,既能提供可扩展数据量的机制,也能提供高效访问。

                  2、采用数字签名(数字证书签名或md5等加密方式),这就需要SS哦系统返回免登URL的时候对需要验证的参数进行加密,并带上token一起返回。最后需免登陆的系统进行验证信任关系的时候,需把这个token传给SSO系统,SSO系统通过对token的验证就可以辨别信息是否被改过

                  3、设置白名单,也就是只有白名单上的系统才能请求信任关系,同理只有在白名单上的系统才能被免邓丽。

【Spring Boot&& Spring Cloud系列】单点登录SSO

标签:memcached   blog   bsp   不用   md5   log   分布   技术分享   产生   

原文地址:http://www.cnblogs.com/dream-to-pku/p/7447040.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!