精华内容
下载资源
问答
  • 跨域单点登录

    2017-02-11 10:03:56
    单点登录(SSO)的技术被越来越广泛地运用到各个领域的软件系统当中。本文从业务的角度分析了单点登录的需求和应用领域;从技术本身的角度分析了单点登录技术的内部机制和实现手段,并且给出Web-SSO和桌面SSO的实现...
  • 第 PAGE 页码 页码 页 / 总页数 NUMPAGES 总页数 总页数 页 java实现跨域单点登录 [基于.NET,Web服务的跨域单点登录系统的实现] 摘要没有跨域单点登录的实现机制分析了跨域单点登录的原理提出了一种在SSO网站存储...
  • java跨域单点登录实现

    2021-01-28 10:05:08
    跨域单点登录实现项目代码
  • SSO跨域单点登录Demo

    2018-01-19 14:57:08
    自己写的一个SSO跨域单点登录Demo,直接使用Eclipse导入即可使用,压缩包中附有自己总结的详细的使用说明和跨域登录原理讲解,感兴趣的朋友可以看一下。
  • JavaWeb跨域单点登录

    万次阅读 2018-07-31 11:48:36
    B/S架构前后端分离项目实现跨域单点登录方案设计 项目需求: 1、前后端分离项目,由后端实现会话管理,同时校验用户权限; 2、多个项目单点登录,允许跨域访问; 3、预留CS架构客户端点击按钮打开浏览器免登录...

    B/S架构前后端分离项目实现跨域单点登录方案设计

    项目需求

    1、前后端分离项目,由后端实现会话管理,同时校验用户权限;

    2、多个项目单点登录,允许跨域访问;

    3、预留CS架构客户端点击按钮打开浏览器免登录接口;

     

    项目框架

    前端项目:html静态页面;前后端分离;

    后端项目:javaweb项目,使用maven搭建的SSM项目,集成shiro权限控制,使用redis缓存会话及用户权限;

    认证中心:javaweb项目,使用maven搭建的SSM项目,使用转发方式实现SSO;当前方案未前后端分离,使用redis缓存会话;

     

    设计思路

    1、使用请求转发的方式实现单点登录;

    2、用户浏览器打开页面,由后端拦截数据请求校验登录状态,转发到SSO系统去登录,登录成功返回一个令牌,后端拿到令牌之后去SSO系统校验,校验通过则判定已经登录,根据令牌生成自己的会话信息;

    3、即相当于,打开浏览器访问A系统,其实是到SSO系统登录,然后SSO系统告诉A系统用户已经登录,A系统就创建自己的会话信息,返回浏览器端请求的数据;此时再访问B系统,由于SSO系统已经登录,所以SSO系统就直接告诉B系统用户已经登录,不需要重新登录,B系统直接创建自己的会话信息即可;

     

    方案设计流程:

    打开页面登录校验流程:

             该流程图是以主页举例说明,常用的应用场景: 微信公众号点击菜单进入系统,C/S架构客户端点击按钮打开系统(如:QQ面板打开QQ空间按钮,打开空间网页直接免登陆)

            实现会话过期后,刷新页面重新登录,回到登录前页面,有几个方案:1、前段发起数据请求到后端的时候,携带当前页面的URL,后端Filter校验登录成功之后,转发回到该URL2、后端设计权限控制方案的时候,做一个页面跟具体URL请求资源的映射关系,前端发起数据请求到后端,后端检验登录成功之后,根据映射关系转发到指定的页面;3、就TM规定,后端校验登录后只允许返回到主页;

     

    退出操作流程:

            退出流程,可以有两种方案:1、由各个子系统收到数据请求的时候,实时去校验SSO的登录状态,如果发现SSO已经退出,则退出子系统;2A子系统退出后,通知SSO系统退出,然后由SSO告诉所有子系统,已经退出,这个操作要现在SSO注册子系统,记录所有子系统的退出请求路径;

           当然两种方案结合使用也是可以的,不同的方案对SSO服务器的要求不一样而已;

    编码实现

    1、 整体代码结构:

    client即子系统,使用的时候,部署到多个端口,模拟多个系统单点登录;

    server即SSO认证中心,client的登录认证就发到这里校验

    2、 client端代码:

    client端,集成了shiro的权限控制,校验登录信息,使用的shiro的自定义过滤器;重点也就在这个过滤器:

     

    配置shiro的自定义过滤器:

     

    3、server端代码

    服务端的代码,比较简单,就是做一个登录页面,登录接口,退出接口、令牌校验登录状态接口;暂时就先不贴了吧;

     

     

    模拟测试

    修改host文件,模拟多个客户端

    127.0.0.1       sso.server.com

    127.0.0.1       sso.client1.com

    127.0.0.1       sso.client2.com

     或者部署多个tomcat,使用不同端口

     

    测试登录

    打开浏览器,输入地址:http://sso.client1.com:8080/sso-client-web/index,然后将跳转到认证中心的登录页面,因为我上面过滤器配置的是IP地址,所以这里直接跳转到本地地址了:

    同一个浏览器,打开新的标签页:http://sso.client2.com:8080/sso-client-web/index,同样跳转sso的登录页面:

    在client1窗口跳转的页面,登录:

    在client2窗口页面刷新,或者重新打开标签页:

    该示例,没有模拟前后端分离的操作,但是实际上是一样的,将跳转jsp页面的代码,修改为跳转到前段的页面即可。

     

    代码下载:

    https://download.csdn.net/download/weixin_42686388/10586210

     

    参考资料:

     

     

     

    展开全文
  • cas跨域单点登录原理

    万次阅读 热门讨论 2017-04-17 21:12:43
    cas跨域单点登录原理

             相同域名下实现单点登录太简单,因为A系统和B系统域名相同,在访问A时候登录过,在访问B时,由于域名相同,浏览器会带上cookies,cookies里有票据信息,访问B自然就不用再登录了。

           可是如果A系统和B系统域名不同,CAS是怎样做到已经在访问A系统时候登录过,在访问B系统时就不用再重新登录了呢?此时访问B系统,因为域名不同的缘故,浏览器没有带上存储有票据信息的cookies啊,好了此时CAS实现单点登录的原理是这样的,请看图:

            

                注意:在cas4.2.7中,这个跨域单点登录的功能需要你启用https协议,上图中你需要体会的是在上图的第9个步骤上,那时访问B系统,因为是跨域,而且是首次访问,ticket是为空的,而经过一系列的重定向,加参数之后,你发现用户啥操作都没做,但是在第13步访问B系统时候,已经带上了有效的ticket,因为这一系列重定向对用户是透明的,用户感觉自己啥也没做就实现了对B系统的访问

    展开全文
  • SSO跨域单点登录原理分析及实现 什么是单点登录 什么是跨域单点登录 跨域单点登录原理 简单的跨域单点登录代码实现

    SSO跨域单点登录原理分析及实现

    什么是单点登录

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

    简而言之:一处登录,处处登录。

    什么是跨域单点登录

    跨域单点登录原理

    流程如下:

    简单的跨域单点登录代码实现

    待补

    SSO相关问题解答

    SSO token令牌一般使用哪种加密方式:

    Json Web Token(JWT):JSON网络令牌,是为了在网络应用环境间传递声明而制定的一种基于JSON的开放标准((RFC 7519)。JWT是一个轻便的安全跨平台传输格式,定义了一个紧凑的自包含的方式用于通信双方之间以 JSON 对象行使安全的传递信息。因为数字签名的存在,这些信息是可信的。

    JWT参考链接:https://www.jianshu.com/p/9f5b09b3739a

    展开全文
  • cross-domain-sso:跨域单点登录案例研究
  • 基于SAML2.0的跨域单点登录模型的设计,姜露,龙毅宏,跨域单点登录主要是实现不同域之间用户身份的单一认证,从而实现用户的单点登录和组织间的资源共享。SAML2.0统一了5个互不兼容的协议
  • ASP.NET跨域单点登录源码 asp.net 跨域单点登录实现原理: 当用户第一次访问web应用系统1的时候,因为还没有登录,会被引导到认证中心进行登录; 根据用户提供的登录信息,认证系统进行身份效验,如果 通过效验,...
  • 参考淘宝和天猫的跨域单点登录实现思路由于localstorage不能跨域存取,要想跨域读取,这时候可以找一个中间者来实现。例如有A、B两个不同域名的网页,要想实现A向B发送消息或者B向A发送消息,这时候我们可以找一个C...

    实现思路

    参考淘宝和天猫的跨域单点登录实现思路由于localstorage不能跨域存取,要想跨域读取,这时候可以找一个中间者来实现。例如有A、B两个不同域名的网页,要想实现A向B发送消息或者B向A发送消息,这时候我们可以找一个C网站,让A和B网站都通过iframe包含C网站,通过C网站监听消息,并将消息存入localstorage中,实现A和B的通讯

    单点登录

    目前比较主流的项目都是前后端分离的项目,此时会使用token来验证用户信息。这时要想实现单点登录无非就是不同的网站能拥有已经登录过网站的token和一些用户信息,就可以实现不用再登录就能访问页面的功能。还是以A、B和C网站来举例吧。

    C网站

    c网站作为转发消息的网站,需要实现监听消息,并且将存取localstorage数据的结果返回给A或B网站,代码如下

    const option = {
      setData(key, value) {
        localStorage.setItem(key, value);
      },
      getData(key) {
        return localStorage.getItem(key);
      }
    }
    window.addEventListener('message', function(e) {
    	// 过滤掉一些消息
      if (e.origin != 'http://127.0.0.1:8848' && e.origin != 'http://localhost:8000') {
        return;
      }
      // 还有一种稍微简单的方式,使用eval方法执行字符串形式的js代码
      let data = JSON.parse(e.data);
      e.source.postMessage(option[data.name](data.key, data.value), e.origin);
    }, false);
    

    A或B网站

    这两个网站需要实现给iframe发送消息和接收iframe发送的消息,给iframe发送的消息为要执行的js代码,接收的消息是iframe执行发送的js代码后的返回值,代码如下

    window.addEventListener('message', function(e) {
      // 只接收iframe的发来的消息
      if (e.origin != 'http://localhost:8080') {
        return;
      }
      // e.data就是子窗口执行代码后的返回值
      console.log(e.data);
    }, false);
    var iframe = document.getElementById('iframe');
    iframe.onload = function(){
      let data = {
        name: 'setData',
        key: 'user',
        value: 'test'
      }
      // 如果C网站使用的是eval方法直接执行js代码,这儿就可以直接写js代码字符串
      iframe.contentWindow.postMessage(JSON.stringify(data), 'http://localhost:8080/');
    }
    

    这样大概就能实现单点登录,当然还有一些细节就需要大家去思考一下了,这里只是提供了一个不同域名的网站如何去共享已经拥有的token。

    展开全文
  • 基于Apache的跨域单点登录模块的设计与实现,齐佳佳,龙毅宏,通过分析单点登录技术在企业网、校园网等领域中的重要性,及单点登陆技术的实现原理,提出了一种基于Apache的跨域单点登录系统整体
  • 重点分析和研究了基于WSFederation的Web服务跨域单点登录认证机制的实现原理和过程,并讨论了其安全问题。
  • aspnet+跨域单点登录源码 京华志&精华志出品 分享资源 C# ASP.NET SQL DBA 源码
  • 完全跨域单点登录DEMO

    千次下载 热门讨论 2014-03-05 15:39:36
    详情见http://blog.csdn.net/ghsau/article/details/20545513
  • asp.net 跨域单点登录源码

    热门讨论 2009-08-13 15:43:35
    asp.net 跨域单点登录实现原理: 当用户第一次访问web应用系统1的时候,因为还没有登录,会被引导到认证中心进行登录;根据用户提供的登录信息,认证系统进行身份效验,如果 通过效验,返回给用户一个认证的凭据;...
  • 针对单点登录中的跨域身份认证问题,提出了一种基于可变Cookie的方案解决跨域单点登录,使用随机数字生成票据,并作为传统加密算法的会话密钥对客户端的Cookie进行加密,采用现代加密算法在异域系统之间安全传递票据,...
  • 单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。单点登录在大型网站里使用得非常频繁,例如像...
  • 跨域单点登录方案实现SSO英文全称Single Sign On,单点登录。当我们搜索单点登录的时候,会发现很多的文章,然而这些文章一般都是基于一种通用的场景描述,通常在各自的业务环境会更加复杂。在本篇文章,我将描述...
  • 单点登录有两种模型,一种是共同父域下的单点登录(例如域名都是 xx.a.com),还有就是完全跨域下的单点登录(例如域名是xx.a.com,xx.b.com),本文我们讲一下完全跨域下的单点登录该怎么实现。基于安全考虑,想...
  • 单点登录(Single Sign On),简称为 SSO,是目前...asp.net跨域单点登录分为: 1、跨子域单点登录。如 blog.a.com 和 info.a.com 这2个站点同属一个主域.a.com,实现跨子域单点登录很简单,可以利用cookie,设置Do...
  • asp.net 跨域单点登录

    2014-11-20 16:48:43
    单点登录(Single Sign On),简称为 SSO,是...asp.net跨域单点登录分为: 1、跨子域单点登录。如 blog.a.com 和 info.a.com 这2个站点同属一个主域.a.com,实现跨子域单点登录很简单,可以利用cookie,设置Dom
  • SSO 跨域单点登录架构

    2016-06-23 18:23:00
    跨域单点登录架构 如果我们为所有的站点只去维护一份验证cookie呢?使用一个独立的站点去完成验证用户并设置验证cookie的工作呢?这个想法好像不错。要使用单点登录,那么就需要用户的数据是统一的,这样的话就可以...
  • 之前我们在《SSO单点登录三种情况的实现方式详解》中介绍过跨域单点登录的原理。这里向大家介绍利用php和ajax具体实现单点登录。 在本次示例中我们需要两个站点: www.onmpw.com www.onmpw1.com 当然还有一...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,092
精华内容 436
关键字:

跨域单点登录