单点登录

CAS单点登录原理

最后都变了- 提交于 2020-03-04 19:11:42
转自 https://www.cnblogs.com/lihuidu/p/6495247.html 1、基于Cookie的单点登录的回顾 基于Cookie的单点登录核心原理: 将用户名密码加密之后存于Cookie中,之后访问网站时在过滤器(filter)中校验用户权限,如果没有权限则从Cookie中取出用户名密码进行登录,让用户从某种意义上觉得只登录了一次。 该方式缺点就是多次传送用户名密码,增加被盗风险,以及不能跨域。同时www.qiandu.com与mail.qiandu.com同时拥有登录逻辑的代码,如果涉及到修改操作,则需要修改两处。 2、统一认证中心方案原理 在生活中我们也有类似的相关生活经验,例如你去食堂吃饭,食堂打饭的阿姨(www.qiandu.com)告诉你,不收现金。并且告诉你,你去门口找换票的(passport.com)换小票。于是你换完票之后,再去找食堂阿姨,食堂阿姨拿着你的票,问门口换票的,这个票是真的吗?换票的说,是真的,于是给你打饭了。 基于上述生活中的场景,我们将基于Cookie的单点登录改良以后的方案如下: 经过分析,Cookie单点登录认证太过于分散,每个网站都持有一份登陆认证代码。于是我们将认证统一化,形成一个独立的服务。当我们需要登录操作时,则重定向到统一认证中心http://passport.com。于是乎整个流程就如上图所示: 第一步

cas单点登录原理

你。 提交于 2020-03-04 19:02:59
1、基于Cookie的单点登录    原理:   将用户名密码加密智斗存于Cookie中,之后访问网站时在过滤器校验用户权限,如果没有权限则从Cookie中取出用户名密码进行登录,让用户觉得 只登录了一次。 2、统一认证中心方案原理   在生活中我们也有类似的相关生活经验,例如你去食堂吃饭,食堂打饭的阿姨(www.qiandu.com)告诉你,不收现金。并且告诉你,你去门口找换票的(passport.com)换小票。于是你换完票之后,再去找食堂阿姨,食堂阿姨拿着你的票,问门口换票的,这个票是真的吗?换票的说,是真的,于是给你打饭了。   基于上述生活中的场景,基于Cookie的单点登录改良以后的方案如下:        经过分析,Cookie单点登录认证太过于分散,每个网站都持有一份登录认证代码。于是将认证统一化,形成一个独立的法务。 当需要登录操作时,则重定向到同意认证中心http://passport.com。整个流程如上图所示:   1:用户访问www.qiandu.com。过滤器判断用户是否登录,没有登录,则重定向(302)到网站http://passport.com。   2、重定向到passport.com。输入用户名密码。passport.com将用户登录的信息记录到服务器的session中。   3、passport.com给浏览器发送一个特殊凭证

Weblogic两个域 session冲突

℡╲_俬逩灬. 提交于 2020-03-02 11:27:11
转自: http://hi.baidu.com/576699909/blog/item/9d93db1fe0cdc2e01ad57659.html 。 在将LWAP开发的应用迁移为Oracle ADF来开发的过程中,LWAP和ADF应用都部署在同一个Weblogic服务器的两个Domain下, 当在IE中首先访问ADF应用,然后再另外一个标签页中访问LWAP应用,就会发现ADF应用出现问题,就会发现 session 丢失。 问题是由于客户端访问ADF应用时,对应的Weblogic域会保留一个名为JSessionId的Cookie,记录ADF域的信息,JSessionId为 Weblogic cookie-name的默认值,而当再次访问LWAP时,客户端Cookie中的JSessionId的值被LWAP的域修改了,此时再次访问 之前的ADF应用就会导致 Session 丢失。 网上可以找到关于这个问题的解决方案: 1,设置web应用的Cookie名称,让它们拥有不同的JSessionId 在LWAP和ADF的weblogic.xml文件添加如下属性 < session -descriptor> < session -param> <param-name>CookieName</param-name> <param-value>HADFCookie</param-value> </

Spring Security基于Oauth2的SSO单点登录怎样做?一个注解搞定

旧巷老猫 提交于 2020-03-02 11:19:49
一、说明 单点登录顾名思义就是在多个应用系统中,只需要登录一次,就可以访问其他相互信任的应用系统,免除多次登录的烦恼。本文主要介绍 同域 和 跨域 两种不同场景单点登录的实现原理,并使用 Spring Security 来实现一个最简单的 跨域 SSO客户端 。 二、原理说明 单点登录主流都是基于共享 cookie 来实现的,下面分别介绍 同域 和 跨域 下的两种场景具体怎样实现共享 cookie 的 2.1. 同域单点登录 适用场景 :都是企业自己的系统,所有系统都使用同一个一级域名通过不同的二级域名来区分。 举个例子 :公司有一个一级域名为 zlt.com ,我们有三个系统分别是: 门户系统(sso.zlt.com) 、 应用1(app1.zlt.com) 和 应用2(app2.zlt.com) ,需要实现系统之间的单点登录,实现架构如下: 核心原理: 门户系统 设置 Cookie 的 domain 为一级域名也就是 zlt.com ,这样就可以共享门户的 Cookie 给所有的使用该域名( xxx.zlt.com )的系统 使用 Spring Session 等技术让所有系统共享 Session 这样只要 门户系统 登录之后无论跳转 应用1 或者 应用2 ,都能通过门户 Cookie 中的 sessionId 读取到 Session 中的登录信息实现 单点登录 2.2.

项目技术点剖析

这一生的挚爱 提交于 2020-03-01 11:54:59
1、使用Redis实现分布式部署单点登录(单点登录第一种方法:redis分布式存储解决方案) 因为这个项目是一个分布式部署的项目,而且我们采用的是nginx负载均衡的策略,导致了每一个服务器都需要开辟一个空间来进行用户信息的维护,消耗了大量的资源,所以,我当时使用到了Redis来作为维护用户信息的空间,将用户登录的信息存入Redis中,并且在存入时设置key的过期时间,所有的服务器共用一个Redis,每次进行操作时只需要去Redis中去判断这个用户是否存在,存在的话就说明这个用户现在是登录状态,不存在就说明这个用户没有登录,或者登录已经失效,让用户进行重新登录。 为什么会存在单点登录的问题 session默认是存储在当前服务器的内存中 ,如果是集群,那么只有登录那台机器的内存中才有这个session 比如说我在A机器登录,B机器是没有这个session存在的,所以需要重新验证 如何解决这个单点登录问题 不管在那一台web服务器登录,都会把token值存放到我们的一个集中管理的redis服务器中 但客户端携带token验证的时候,会先从redis中获取,就实现单点登录 现实举例 比如你写的一个tornado项目,分别部署到A,B两台机器上 如果直接使用session,那么如果在A机器登录,token只会在A服务器的内存 因为请求会封不到A,b连个机器,如果这个请求到了B机器

单点登录原理与简单实现

◇◆丶佛笑我妖孽 提交于 2020-02-27 05:38:56
一、单系统登录机制 1、http无状态协议   web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系   但这也同时意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服务器的某些资源,必须限制浏览器请求;要限制浏览器请求,必须鉴别浏览器请求,响应合法请求,忽略非法请求;要鉴别浏览器请求,必须清楚浏览器请求状态。既然http协议无状态,那就让服务器和浏览器共同维护一个状态吧!这就是会话机制 2、会话机制   浏览器第一次请求服务器,服务器创建一个会话,并将会话的id作为响应的一部分发送给浏览器,浏览器存储会话id,并在后续第二次和第三次请求中带上会话id,服务器取得请求中的会话id就知道是不是同一个用户了,这个过程用下图说明,后续请求与第一次请求产生了关联   服务器在内存中保存会话对象,浏览器怎么保存会话id呢?你可能会想到两种方式 1 2 请求参数 cookie   将会话id作为每一个请求的参数,服务器接收请求自然能解析参数获得会话id,并借此判断是否来自同一会话,很明显,这种方式不靠谱。那就浏览器自己来维护这个会话id吧,每次发送http请求时浏览器自动发送会话id,cookie机制正好用来做这件事

单点登录原理与简单实现

只谈情不闲聊 提交于 2020-02-27 05:35:49
一、单系统登录机制 1、http无状态协议 web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系 但这也同时意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服务器的某些资源,必须限制浏览器请求;要限制浏览器请求,必须鉴别浏览器请求,响应合法请求,忽略非法请求;要鉴别浏览器请求,必须清楚浏览器请求状态。既然http协议无状态,那就让服务器和浏览器共同维护一个状态吧!这就是会话机制 2、会话机制 浏览器第一次请求服务器,服务器创建一个会话,并将会话的id作为响应的一部分发送给浏览器,浏览器存储会话id,并在后续第二次和第三次请求中带上会话id,服务器取得请求中的会话id就知道是不是同一个用户了,这个过程用下图说明,后续请求与第一次请求产生了关联 服务器在内存中保存会话对象,浏览器怎么保存会话id呢?你可能会想到两种方式: 请求参数 cookie 将会话id作为每一个请求的参数,服务器接收请求自然能解析参数获得会话id,并借此判断是否来自同一会话,很明显,这种方式不靠谱。那就浏览器自己来维护这个会话id吧,每次发送http请求时浏览器自动发送会话id,cookie机制正好用来做这件事

企业为何要实现单点登录?单点登录和统一身份数据源能解决哪些问题?

流过昼夜 提交于 2020-02-26 02:33:05
随着企业的发展,人员流动性变大、企业所需要的应用系统也越来越多,老旧的、自研的、不同公司的系统,OA、CRM、财务软件、打卡软件、HR软件各种各样的系统会让IT人员越来越头疼,所以对于企业来说单点登录和统一身份认证成了他们必须要解决的问题,本文就主要针对企业员工身份信息管理来详细刨析。 对任何企业来讲,身份信息管理都是一项繁重的工作,一是要保证人员和组织架构信息的准确性,二是使这些信息能够在不同的目录或应用中高效地交互。 特别是对于中大型企业来说,在复杂的商业环境下,IT人员不仅要管理内部员工,还有大量的合作伙伴,供应商等多种类型人员需要进行身份信息和权限的管理。因此,不同类型的大量人员和组织架构信息分布在不同的系统中,使身份信息管理这项工作的难度大大增加。 另外,随着企业渐渐从传统的本地架构向云端迁移,若继续使用像AD、OA这样的传统目录对身份信息进行管理和推送,他们的高操作难度和与云应用连接的低可行性都会增加HR和IT人员工作的时间和人力成本。对于中大型企业来说,这个问题会更加明显。 玉符科技统一目录能够集成所有本地或云端的目录和应用,将分布在不同目录中的不同类型人员和组织架构信息进行集中管理,也可将信息推送至已集成的本地或云端的应用中。这样既能保证信息的准确性,又可以使信息在不同系统和应用中高效地交互。 接下来,我们详细说说统一目录是如何工作的。 简单来说,统一目录做了三件事

企业级单点登录——信息化体系建设基础

让人想犯罪 __ 提交于 2020-02-26 01:58:54
企业级单点登录,又称统一身份认证平台。 在《登录的轮子,你还在造?》一篇中详细说明了其历史。如果你缺乏一些关于登录,认证,授权,鉴权等概念的基础知识,该文章也是科普性质,相信也能解决你的大部分疑惑。 这里,我主要来讲一讲,企业级单点登录在信息化建设中的地位与作用。 企业的困扰 如今,企业内部需要使用到的企业级应用越来越多,每个应用都需要账号密码,是带给每个员工最直接的困扰。为了安全起见,账号密码往往要求一段时间重置一次,更加剧了这种繁琐。如果公司员工每个人每天都在这件事情上损失5分钟,假设公司有100人,那一年累计下来超过125个工作日,相当于有一个人半年什么事情也没干。 企业级应用数量增加,最困扰的是企业内的IT管理人员。每次入职离职的过程中,需要依次登录各种应用后台去开启或关闭相关的账号。如果因为一些特殊情况,正常流程被打断(这在人事管理中还是很常见的),出现遗漏,往往会导致意外发生。 以上这些问题最常见的使用企业级单点登录的理由,一个优秀管理者都能明确的观察到并有动力去尝试用单点登录的方案来解决这些问题。 除此之外呢? 我们在使用各种企业级应用的时候,往往会有这样的尴尬:同一份数据总是需要在不同系统中反复录入。比如财务与人事的系统是完全隔离的,最简单的核算人员成本这件事情,人员发生调整,不仅需要人事部门完成企业结构更新,财务也需要在其系统中去完成,同样的事情被做了两次