单点登录

SSO单点登录、跨域重定向、跨域设置Cookie、京东单点登录实例分析

烈酒焚心 提交于 2019-12-26 10:44:12
最近在研究SSO单点登录技术,其中有一种就是通过js的跨域设置cookie来达到单点登录目的的,下面就已京东商城为例来解释下跨域设置cookie的过程 涉及的关键知识点: 1、jquery ajax跨域重定向,要理ajax解跨域重定向,先要了解浏览器对重定向的处理。正常我们请求一个地址,如果server返回302,那么浏览器会再发起一次重定向后的http请求;用jquery ajax发起一次异步请求,server返回302,如果重定后url的域名跟ajax请求的域名是同一个域名的话,浏览器会再发起一次重定向后的http请求,请求成功会调用ajax的success函数,如果重定向后url的域名跟ajax请求的域名不是同一个域名,也就是跨域重定向(跨域redirect),这个时候浏览器看到返回的response的Location跨域了就不会再发起请求,请求被拦截了,ajax请求失败会调用error方法 那么如果我们非要做跨域重定向呢?这也是可以实现的,普通的ajax请求不行,我们需要通过jsonp的方式,而且需要设置crossDomain:true,可以参考https://api.jquery.com/jQuery.ajax/ 关于jquery.ajax方法的crossDomain 参数的说明 跨域redirect实例: test.html <script src="jquery.js

《浅谈架构之路:单点登录 SSO》

混江龙づ霸主 提交于 2019-12-24 00:06:29
前言:SSO 单点登录   “半吊子”的全栈工程师又来了,技术类的文章才发表了两篇,本来想先将主攻的几个系列都开个头(Nodejs、Java、前端、架构、全栈等等),无奈博客起步太晚,写博文的时间又没有很多,只好不按顺序乱发一通,请大家见谅。   本篇文章介绍一下单点登录,不像上一篇博文介绍的前后端分离,SSO 并不能算是一种架构吧,只能说是一个解决方案。由于笔者参与过医院集成平台项目,负责其中单点登录的设计研发工作,将经验总结分享一下,也不一定是最优方案,正确与否那就“仁者见仁智者见智”了。   单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统,即用户只需要记住一组用户名和密码就可以登录所有有权限的系统。   文章导读:开篇先介绍一下笔者从事医疗行业出现单点登录的项目需求,毕竟是需求驱动研发;再将整理的通用版的单点登录知识进行分享;接着介绍一下笔者当前采用集成平台单点登录方案,最后是一些相关扩展。 单点登录背景介绍    【医疗行业的需求】      随着医院信息化建设的深入,信息化系统越来越多,五花八门多种多样,初步统计目前医院信息化子系统数量已经多达几十个。这些系统的安装维护不仅让信息中心花费大量心血,也让多角色的用户在使用系统时头疼不已

SSO 单点登录总结(PHP)

扶醉桌前 提交于 2019-12-23 12:46:51
本篇文章根据个人理解的知识整理汇总,如有不足之处,请大家多多指正。 单点登录(SSO——Single Sign On)的应用是很普遍的,尤其在大型网站系统中,比如百度,登录百度账号和,再转到百度经验、百度贴吧等是不用重新登录的。本文将从 cookie 和 session 基础详细介绍单点登录的原理,代码实现为 PHP。 Cookie Cookie 是由客户端访问服务器时服务器发送给客户端的特殊信息,且这些信息以文本文件的方式存储在客户端。第一次访问服务器时,服务器会在 HTTP 响应头(Response Header)返回 Cookie 信息。客户端保存 Cookie 信息之后,下次访问服务器时,HTTP请求头(Request Header)会包含 Cookie 信息。 简单的说: 服务器不认识访问它的客户端,为了识别它们,就给每个访问它的客户端一个口令,服务器通过口令识别这些客户端。 注意: 不是访问每个服务器都会返回 Cookie 的,只有服务器中有设置 Cookie ,才会返回给客户端。 Cookie 生成和传递流程 在本地服务器下的 test.php 中设置 Cookie <?php // Cookie 是 HTTP 标头的一部分,因此 setcookie() 函数必须在其它信息被输出到浏览器前调用,这和对 header() 函数的限制类似 setcookie(

Cas

倾然丶 夕夏残阳落幕 提交于 2019-12-19 09:19:28
文章目录 Cas 什么是CAS 单点登录(Single Sign On),简称为SSO Cas 什么是CAS CAS是Yale大学发起的一个开源项目,旨在为Web应用系统提供一种可靠的单点登录方法,CAS在2004年12月正式成为JA-SIG的一个项目。CAS具有以下特点: 【1】开源的企业级单点登录解决方案。 【2】CAS Server为需要独立部署的Web应用。 【3】CAS Client支持非常多的客户端(这里指单点登录系统中的各个Web应用),包括Java, .Net, PHP, Perl, Apache, uPortal, Ruby等。 从结构上看,CAS包含两个部分:CAS Server和CAS Client。CAS Server需要独立部署,主要负责对用户的认证工作;CAS Client负责处理对客户端受保护资源的访问请求,需要登录时,重定向到CAS Server。下图是CAS最基本的协议过程: 单点登录(Single Sign On),简称为SSO 来源: CSDN 作者: qq_45404224 链接: https://blog.csdn.net/qq_45404224/article/details/103605933

深入理解JWT的使用场景和优劣

这一生的挚爱 提交于 2019-12-18 20:10:34
深入理解JWT的使用场景和优劣 原创: 徐靖峰 Kirito的技术分享 Kirito的技术分享 微信号 cnkirito 功能介绍 「技术分享」某种程度上,是让作者和读者,不那么孤独的东西。「Kirito的技术分享」致力于探讨 Java 生态的知识点,内容覆盖分布式服务治理,微服务,性能调优,各类源码分析。追求有深度并兼具表达力的文字。 2018-04-20 经过前面两篇文章《JSON Web Token - 在Web应用间安全地传递信息》《八幅漫画理解使用JSON Web Token设计单点登录系统》的科普,相信大家应该已经知道了 JWT 协议是什么了。至少看到 eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJxaWFubWlJZCI6InFtMTAzNTNzaEQiLCJpc3MiOiJhcHBfcW0xMDM1M3NoRCIsInBsYXRmb3JtIjoiYXBwIn0.cMNwyDTFVYMLL4e7ts50GFHTvlSJLDpePtHXzu7z9j4 这样形如 A.B.C 的字符串时能敏感地认出这是使用了 jwt。发了这两篇文章后,有不少读者在文末留言,表达了对 jwt 使用方式的一些疑惑,以及到底哪些场景适合使用 jwt。我并不是 jwt 方面的专家,和不少读者一样,起初研究时我也存在相同疑惑,甚至在逐渐接触后产生了更大的疑惑

SSO 单点登录

走远了吗. 提交于 2019-12-11 13:30:29
SSO介绍 SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。 实现单点登录设想 问题:用户的登录信息只保存到一台服务器中,其他服务器需要使用用户信息时,数据无法共享; 思考: url重写奇数,动态拼接sessionId效率太低,解决Cookie禁用问题,大型公司不会考虑该问题; IP_hash,将用户ip绑定到指定的一台服务器上,负载不均; 单点登录实现 当用户输入用户名和密码时将数据发送到单点登录系统中. 单点登录系统接收到用户名和密码后,进行校验.如果用户名和密码不正确,直接错误返回即可.如果用户名和密码是正确的.将用户的信息转化为JSON串,并且生成加密的秘钥token.将数据保存到redis中.token当做key.userJSON当做value.将用户的token数据返回给客户端. 获取到服务器返回值之后,如果用户名和密码不正确,则给用户进行提示.如果用户登陆成功.需要将token数据保存到客户端的Cookie中.并且实现页面跳转.同时实现数据的回显. 来源: CSDN 作者: L小菜鸟L 链接: https://blog.csdn.net/qq_43156369

单点登录

我的梦境 提交于 2019-12-09 14:04:00
一 . 单点登录简介 在企业级软件发展初期,企业系统往往很少,只有一到两个,每个系统都有其登录界面。可随着时代发展,用到的系统也越来越多,系统使用者在操作不同的系统时需要多次登录,且不同的账号密码让人十分难受。 于是单点登录(SSO)诞生了,他解决的问题是:可以只登录一个系统,就可以访问其他互相信任的应用系统。 如上图,只有SSO有登录模块,A1,A2,A3都没有登录模块,而当A1,A2,A3需要登录的时候则直接跳转到SSO进行登录,登录成功后则A1,A2,A3都可访问。 二 .技术实现 2.1 普通的登录验证机制 一般情况下,我们在浏览器(Browser)访问一个应用,都会在浏览器先输入用户名和密码,完成登录验证后,服务器的Session状态变成YES(已登录),同时在浏览器留下该用户的唯一标识(Cookie)。以后再次访问该应用都会携带Cookie,服务器端根据该Cookie找到Session,通过session来判断这个用户是否登录。如果不做特殊配置,这个Cookie的名字叫做jsessionid,值在服务端(server)是唯一的。 2.2 同域下的单点登录 一个企业一般情况下只有一个域名,通过二级域名区分不同的系统。比如我们有个域名叫做:a.com,同时有两个业务系统分别为:app1.a.com和app2.a.com。我们要做单点登录(SSO),需要一个登录系统,叫做

java实现简单的单点登录

ε祈祈猫儿з 提交于 2019-12-07 18:51:37
java实现简单的单点登录 发表于2年前(2014-05-20 09:11) 阅读( 6399 ) | 评论( 0 ) 9 人收藏此文章, 我要收藏 赞 1 摘要 单点登录(SSO)的技术被越来越广泛地运用到各个领域的软件系统当中。本文从业务的角度分析了单点登录的需求和应用领域;从技术本身的角度分析了单点登录技术的内部机制和实现手段,并且给出Web-SSO和桌面SSO的实现、源代码和详细讲解;还从安全和性能的角度对现有的实现技术进行进一步分析,指出相应的风险和需要改进的方面。本文除了从多个方面和角度给出了对单点登录(SSO)的全面分析,还并且讨论了如何将现有的应用和SSO服务结合起来,能够帮助应用架构师和系统分析人员从本质上认识单点登录,从而更好地设计出符合需要的安全架构。 SSO Java J2EE JAAS 1 什么是单点登陆 单点登录( Single Sign On ),简称为 SSO ,是目前比较流行的企业业务整合的解决方案之一。 SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 较大的企业内部,一般都有很多的业务支持系统为其提供相应的管理和 IT 服 务。例如财务系统为财务人员提供财务的管理、计算和报表服务;人事系统为人事部门提供全公司人员的维护服务;各种业务系统为公司内部不同的业务提供不同的 服务等等

Java实现的SSO单点登录

ぐ巨炮叔叔 提交于 2019-12-07 18:51:14
原理 在网上找了很多SSO 框架,不是太复杂就是侵入式的,比如CAS,josso,后为想还是自己写一个吧,反正不难。以下记录一下,希望对大家有用. 1:产生背景 想像一下,一家企业从无信息化系统开始着手实现自己公司的信息化,假如这家公司有自己的IT团队,第一个系统公司一般都会先上OA系统,他的基本结构如下: 系统上线后运行很正常,公司从企业信息化中尝到甜头,想接着开发第二个系统:采购系统.公司IT人员注意到采购系统可以利用OA系统中的公共代码:用户、组织架构、应用权限。 公司为了节约成本和加快开发速度会采用重用OA系统中的公共代码. 这里有两种复用情况供他们选择 (1): 把所有公共表结构和公共代码复制一份,作为采购系统的开发基线. (2): 把公共表结构和公共代码从OA系统中抽离出来,作为一个独立的系统,叫他统一视图,对外提供RESTFul接口或者Web Service接口供其它系统调用.形成如下结构: 两种方案比较: 第一种方案简单明了,对原有OA系统冲击小或者无冲击.但是他会导致采购系统中有一份和OA系统中一样的一份用户数据,两边都可以对用户新增和删除、修改,这样会导致两边用户不一致,有一种做法就是采购系统中把用户相关的操作移除,系统初始化时从OA系统中导入用户数据,然后每天晚上去增量同步OA中更新过的用户数据.这样采购系统应该也可以运行良好.