精华内容
下载资源
问答
  • SSO单点登录系统

    2020-03-29 22:30:14
    一.SSO单点登陆介绍: 单点登录的英文名叫做:Single Sign On(简称SSO) 在以前的系统架构中,一般单系统的架构,就是所有的功能都在同一个系统上,如下图: 后来,为了合理利用资源以及降低服务的耦合性,把...

    一.SSO单点登陆介绍:

    单点登录的英文名叫做:Single Sign On(简称SSO)

    在以前的系统架构中,一般单系统的架构,就是所有的功能都在同一个系统上,如下图:

    后来,为了合理利用资源以及降低服务的耦合性,把单系统拆解为多个子服务。

    比如阿里的淘宝和天猫,很明显地我们可以知道这是两个系统,但是你在使用的时候,登录了天猫,淘宝也会自动登录,再次访问淘宝就不需要登陆了。

    简单地来说,就是用户不需要感知内部逻辑的处理,只需要登陆一次,各个服务都可感知用户已经登陆了。

    二.回顾单系统登陆

    在初学javaWeb时,做得最多的功能就是登陆功能了,这里简单的介绍一下初学的时候,登陆是怎样完成的。

    1.输入用户名与密码

    2.提交表单,后端代码访问数据库判断用户名与密码是否正确

    3.将用户信息存到session中

    众所周知,HTTP协议是无状态的,这意味着服务端无法确认用户的信息。于是乎,W3C就提出了:给每一个用户都发一个通行证,无论谁访问的时候都需要携带通行证,这样服务器就可以从通行证上确认用户的信息。通行证就是Cookie

    这里区分一下cookie与session的区别,cookie是存放在客户端的,session是存放在服务端的。也就是说,以往的做法是把用户信息存放在session中会造成服务巨大的压力。所以后来我们使用了cookie。

    三、多系统登录的问题与解决

    1.问题

    在nginx中,我们使用得最多的就是负载均衡与反向代理,nginx可以有效的将流量以配置权重分发到各个服务中。尤其是分布式用得比较多,这里我对分布式不是太懂,没有进一步补充。如下图:

    下图可以理解为淘宝双十一下单,我们在双十一通常并发量会非常大,就会造成我们出现下单页面在轮询。

    这就是我们通过nginx监听80端口,然后通过分布式,将流量有效的分发到各个服务中,减轻服务的压力

    但归根揭底的是,3个订单服务,不知道我们登陆的是哪一个订单服务,也就是说,如果session共享的问题没解决的话,那么你登陆了一次去下单一个商品,然后继续下单第二个商品,有可能会要你重新登陆,所以这个是很蛋疼的问题。

    2.解决方案

    我们通过开发一个通用的SSO服务去解决session共享的问题,具体思路如下:

    1.用户登陆成功后,将用户信息与token进行绑定,统一上传到redis中,与保存到本地cookie

    2.每个服务都有一个拦截机制,就是说,私人页面,需要你判断cookie是否存在token跟redis的token是否过期两个条件

    3.SSO单点登陆服务总体就是对token的管理也就是CRUD

    4.注意,像爱奇艺这种,你很久不上去更新cookie过期时间,过了一段时间会直接过期,但是你每天登陆一次,cookie的过期时间是会重新刷新的。

    3.具体代码与时序图如下:

    拦截器配置类:

    自定义拦截器:

    登陆实现:

     

    SSO单点登录

     

    SSO单点登陆

     

    展开全文
  • 主要介绍了php实现的SSO单点登录系统接入功能,简单分析了SSO单点登录系统接入的原理与php相关实现技巧,需要的朋友可以参考下
  • sso单点登录系统

    2019-01-02 09:11:00
    一、单点登录SSO分析 1、单系统登录机制 浏览器第一个请求服务器,服务器会创建一个会话,并将会话的ID作为响应的一部分发送给浏览器,浏览器存储会话ID,并在后续的请求中带上会话ID,服务器取得请求中的会话ID就...

    一、单点登录SSO分析

    1、单系统登录机制

    浏览器第一个请求服务器,服务器会创建一个会话,并将会话的ID作为响应的一部分发送给浏览器,浏览器存储会话ID,并在后续的请求中带上会话ID,服务器取得请求中的会话ID就知道是不是同一个用户了。 

    浏览器存储会话ID的两种方式
    1.将会话ID作为每一个请求的参数,服务器接收请求并解析会话ID,就可以判断是否来自同一个会话,此方式不可靠
    cookie 
    2.浏览器维护会话ID,每次发送http请求是浏览器会自动发送会话ID,cookie机制正好用来做这件事。cookie是浏览器用来存储少量数据的一种机制,数据以key/value形式存储,浏览器发送http请求是自动附带cookie信息。 
    tomcat会话机制也实现了cookie,访问tomcat服务器时,浏览器中可以看到一个名为JSESSIONID的cookie,这就是tomcat会话机制中维护的会话ID。


    浏览器第一次请求时需要用户输入用户名,密码等身份信息。服务器接收到身份信息之后进行校验,校验成功之后,将会话状态 更新为已登录或已注册状态,并返回受保护的资源。 
    每次请求受保护资源时都会检查会话对象中的登录状态,只有通过验证的会话才能访问,登录机制因此而实现。

    2、复杂系统机制

    web系统早已从久远的单系统发展成为如今由多系统组成的应用群,面对如此众多的系统,用户难道要一个一个登录,一个一个注销? 

    • web系统由单系统发展成多系统组成的应用群,复杂性应该由系统内部承担,而不是用户。
    • 无论web系统内部多么复杂,对用户而言,都是一个统一的整体,也就是说,用户访问web系统的整个应用群与访问单个系统一样,登录/注销只要一次就够了。

    3、单系统登录的限制

    虽然单系统的登录解决方案很完美,但对于多系统应用群已经不再适用了,为什么呢? 
    单系统登录解决方案的核心是cookie,cookie携带会话id在浏览器与服务器之间维护会话状态。但cookie是有限制的,这个限制就是cookie的域(通常对应网站的域名),浏览器发送http请求时会自动携带与该域匹配的cookie,而不是所有cookie。 
    既然这样,为什么不将web应用群中所有子系统的域名统一在一个顶级域名下,例如“*.baidu.com”,然后将它们的cookie域设置为“baidu.com”,这种做法理论上是可以的,甚至早期很多多系统登录就采用这种同域名共享cookie的方式。 
    然而,可行并不代表好,共享cookie的方式存在众多局限。

    共享cookie的限制:

    1.应用群域名得统一;

    2.应用群各系统使用的技术(至少是web服务器)要相同,不然cookie的key值(tomcat为JSESSIONID)不同,无法维持会话,共享cookie的方式是无法实现跨语言技术平台登录的,比如java、php、.net系统之间;

    3.cookie本身不安全。 


    因此,我们需要一种全新的登录方式来实现多系统应用群的登录,这就是单点登录系统

    4、单点登录系统

    什么是单点登录?单点登录全称Single Sign On(以下简称SSO),是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分

    登录
    相比单系统登录,sso需要一个独立的认证中心,只有认证中心可以接受用户的用户名,密码等身份信息,其他系统不提供登录入口,只接受认证中心的间接授权。间接授权通过令牌实现,sso认证中心验证用户的用户名密码无误后,创建授权令牌,在接下来的跳转过程中 ,授权令牌作为参数发送给各个子系统。子系统拿到令牌,即得到了授权,可以借此创建局部会话,局部会话登录方式于但系统登录方式相同。

    大致流程
    用户访问子系统1的受保护资源,系统1发现用户未授权,跳转至sso认证中心,并将自己的地址作为参数。
    sso认证中心发现用户为通过授权,将用户引导至登录页面,进行授权。
    sso校验用户信息,创建用户于sso认证中心之间的会话,称为全局会话,同时创建令牌,sso认证中心携带令牌跳转至最初的请求地址(1中的参数,系统1)
    系统1拿到令牌后,去sso认证中心校验令牌是否有效
    sso认证中心校验令牌。返回有效,注册系统1
    系统1使用该令牌创建用户的会话,称为局部会话,返回受保护的资源。
    用户认证成功之后,会于sso认证中心以及各个子系统创建会话,用户与sso认证中心创建的会话称为全局会话,用户与各个子系统之间创建的会话称为局部会话,局部会话建立之后,用户访问子系统受保护的资源将不再通过sso认证中心。

    全局会话和局部会话有如下约束关系

    局部会话存在,全局会话一定存在
    全局会话存在,局部会话不一定存在
    全局会话销毁,局部会话必须销毁
    注销
    单点登录自然也要单点注销,在一个子系统中注销,所有子系统的会话都将被销毁

    大致流程
    用户向系统1发起注销请求
    系统1根据用户与系统1建立的会话ID拿到令牌,向sso认证中心发起注销请求
    sso认证中心校验令牌有效,销毁全局会话,同时取出所有用此令牌注册的子系统地址
    sso认证中心向所有注册的子系统发起注销请求
    各个注册的子系统接收sso人中中心的注销请求,销毁局部会话
    sso认证中心引导用户至登录页面

    https://blog.csdn.net/weixin_37264997/article/details/80489376

    转载于:https://my.oschina.net/qcxdld/blog/2995831

    展开全文
  • SSO单点登录系统解决方案

           SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。

      解决方案:

        实现单点登录系统,提供服务接口。


    展开全文
  • baigo SSO单点登录系统 v3.0.1更新日志 ...baigo SSO单点登录系统登录界面 baigo SSO单点登录系统后台管理 后台路径:域名/sso/admin/ 用户名与密码:安装时可设置 后台页面 相关阅读 同类推荐:cms系统
  • baigo SSO 是一款基于 HTTP 协议的单点登录系统,baigo SSO 以简单为设计、开发的宗旨,安装部署简单、使用简单。baigo SSO 没有复杂的菜单,没有深奥的概念,没有晦涩难懂的名词,一切崇尚简单。 baigo SSO v3.0.1 ...
  • baigo SSO 是一款基于 HTTP 协议的单点登录系统,baigo SSO 以简单为设计、开发的宗旨,安装部署简单、使用简单。baigo SSO 没有复杂的菜单,没有深奥的概念,没有晦涩难懂的名词,一切崇尚简单。 baigo SSO v1.1.5 ...
  • baigo SSO 是一款基于 HTTP 协议的单点登录系统,baigo SSO 以简单为设计、开发的宗旨,安装部署简单、使用简单。baigo SSO 没有复杂的菜单,没有深奥的概念,没有晦涩难懂的名词,一切崇
  • baigo SSO 是一款基于 HTTP 协议的单点登录系统,baigo SSO 以简单为设计、开发的宗旨,安装部署简单、使用简单。baigo SSO 没有复杂的菜单,没有深奥的概念,没有晦涩难懂的名词,一切崇
  • baigo SSO 是一款基于 HTTP 协议的单点登录系统,baigo SSO 以简单为设计、开发的宗旨,安装部署简单、使用简单。baigo SSO 没有复杂的菜单,没有深奥的概念,没有晦涩难懂的名词,一切崇
  • baigo SSO 是一款基于 HTTP 协议的单点登录系统,baigo SSO 以简单为设计、开发的宗旨,安装部署简单、使用简单。baigo SSO 没有复杂的菜单,没有深奥的概念,没有晦涩难懂的名词,一切崇尚简单。 baigo SSO v1.1.6 ...
  • baigo SSO 是一款基于 HTTP 协议的单点登录系统,baigo SSO 以简单为设计、开发的宗旨,安装部署简单、使用简单。baigo SSO 没有复杂的菜单,没有深奥的概念,没有晦涩难懂的名词,一切崇尚简单。 baigo SSO v2.0 ...
  • baigo SSO 是一款基于 HTTP 协议的单点登录系统,baigo SSO 以简单为设计、开发的宗旨,安装部署简单、使用简单。baigo SSO 没有复杂的菜单,没有深奥的概念,没有晦涩难懂的名词,一切崇尚简单。 baigo SSO v1.2 ...
  • baigo SSO单点登录系统是一款基于 HTTP 协议的单点登录系统,baigo SSO 以简单为设计、开发的宗旨,安装部署简单、使用简单。baigo SSO 没有复杂的菜单,没有深奥的概念,没有晦涩难懂的名词,一切崇尚简单。 baigo ...
  •  baigo SSO单点登录系统范例程序:位于 ./_example 目录下,范例程序未作安全验证,建议开发者自行做好防注入、放跨站等安全验证,范例程序仅仅用做示范,没有经过严格测试,请开发者自行根据文档进行测试和应用。...
  • 基于SpringBoot 2.0.3 RELEASE+Mybatis+Redis的SSO单点登录系统
  • baigo SSO单点登录系统

    2021-04-05 04:08:53
    baigo SSO 是一款基于 HTTP 协议的单点登录系统,baigo SSO 以简单为设计、开发的宗旨,安装部署简单、使用简单。baigo SSO 没有复杂的菜单,没有深奥的概念,没有晦涩难懂的名词,一切崇尚简单。 演示 地址 ...
  • 单点登录有两种方式,一种是跨域,一种是不跨域。 一:在不跨域的情况下, 只需要将cookie设置为顶域状态,即可以实现cookie的共享。 二:跨域登录 1.用户访问app系统,app系统是需要登录的,但用户现在没有...

    单点登录有两种方式,一种是跨域,一种是不跨域。

    一:在不跨域的情况下,

    只需要将cookie设置为顶域状态,即可以实现cookie的共享。
    在这里插入图片描述

    二:跨域登录

    在这里插入图片描述

    用户访问app系统,app系统是需要登录的,但用户现在没有登录。
    SSO登录系统。 SSO系统也没有登录,弹出用户登录页。
    用户填写用户名、密码,SSO系统进行认证后,将登录状态写入SSO的session,浏览器(Browser)中
       写入SSO域下的Cookie。
    SSO系统登录完成后会生成一个ST(Service Ticket),然后跳转到app系统,同时将ST作为参数传递
       给app系统。
    app系统拿到ST后,从后台向SSO发送请求,验证ST是否有效。
    验证通过后,app系统将登录状态写入session并设置app域下的Cookie。
    

    至此,跨域单点登录就完成了。以后我们再访问app系统时,app就是登录的。接下来,我们再看看访问app2系统时的流程。

    用户访问app2系统,app2系统没有登录,跳转到SSO。
    由于SSO已经登录了,不需要重新登录认证。
    SSO生成ST,浏览器跳转到app2系统,并将ST作为参数传递给app2。
    app2拿到ST,后台访问SSO,验证ST是否有效。
    验证成功后,app2将登录状态写入session,并在app2域下写入Cookie。
    

    这样,app2系统不需要走登录流程,就已经是登录了。SSO,app和app2在不同的域,它们之间的session不共享也是没问题的。

    这里有个关键的地方,如何知道登录app2的用户就是app1的用户,因为在sso系统下有cookie,当app1登录的时候,会记录下一个cookie(cookie的value是一个ST),当app2没有登录的时候,跳转sso系统,sso系统查询得到自己的cookie,即用户已经登陆了sso系统了,就将sso系统中的ST返回给app2,这样就知道了,登陆app2的用户是app1了

    至于跨域中服务端的ST,可以放在redis中,与用户名连成一个map,这样在验证服务端的ST是正确之后,可以返回用户名,直接登录app系统。

    展开全文
  • sso单点登录系统架构

    2016-02-28 19:43:13
    sso单点登录系统架构 一、单点登录系统 单点登录(sso系统)主要用于解决公司内多个系统间的用户登录问题。在一个多系统共存的环境下,实现用户在一个系统登录后,访问其他系统的时候,也可以得到系统的信任而不用...
  • baigo SSO 是一款基于 HTTP 协议的单点登录系统,baigo SSO 以简单为设计、开发的宗旨,安装部署简单、使用简单。baigo SSO 没有复杂的菜单,没有深奥的概念,没有晦涩难懂的名词,一切崇尚简单。 baigo SSO v...
  • 基于Spring Boot、Mybatis、Redis的SSO单点登录系统demo,内含一个母系统,2个子测试系统,也可以当成整合demo来学习
  • Shiro整合SSO单点登录系统

    千次阅读 2018-04-25 17:24:19
    Shiro整合SSO单点登录系统   前言 shiro是一个非常强大的权限管理框架,关于shiro与cas整合的示例有很多,但是我们平时开发的时候,很多公司并不是使用cas来做SSO的,而是自己公司会用自己开发的。本文...
  • 前言: spring boot security oauth2 jwt整合,搭建一个SSO单点登录系统,认证服务和资源服务分离… github地址: https://github.com/qiangqiang666/oauth2
  • 下载此项目前,最好有以下这些知识,内置部署和说明文档 - maven 聚合工程 - springboot - redis - lombok - HandlerInterceptor - thymeleaf - 域名解析知识 - LocaleResolver(非必需)
  • 最近要做一个系统,需要实现OAuth2.0规范的SSO单点登录系统!emm…不会做,直接上网查一下,先看看Oauth2.0认证的流程,于是看到了一篇非常好的文章,讲解了整个的原理和多种认证方式!大佬在这里=》无敌码农...
  • 单点登录系统,简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。任何SSO框架都需要创建统一的认证中心! 解决问题 当...
  • 没有使用sso单点登录系统用户再访问同一个系统的不同模块都必须的登录 使用sso单点登录,用户只需要登录一次,并且可以穿梭于各个系统中 例如我们登录新浪博客,再次登录新浪微博直接刷新页面就可以进入新浪微博 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,519
精华内容 7,807
关键字:

sso单点登录系统