单点登录

SSO单点登录登出

匿名 (未验证) 提交于 2019-12-02 23:41:02
SSO单点登录 单点登录是指用户在某个应用系统上登录之后,进入其子应用或相关应用系统可以免去登录步骤,从而实现一次登录,到处操作。这次项目我所负责的正好是单点登录功能模块,所以来更新下实际项目中SSO的实现流程,我们要实现的效果是,现在有业务服务器a.com和b.com,还有SSO服务器sso.com,在a.com上完成登录操作之后访问b.com时是已登录状态。 * 1.用户首次访问a.com/user时,到a.com服务器获取不到session * 2.给用户弹出一个SSO的登录页面sso.com/login.html,这个页面会带上两个参数,分别是开发者平台映射值key(即某个业务服务器在SSO所映射的key)和回调地址redirect(即登录成功之后跳转到的url,一般是所发起业务服务器开放的路由) * 3.用户输入账号密码之后到SSO服务器上进行身份校验,若校验成功则给用户生成一个ticket,并将该ticket值及用户基本信息一起创建SSO服务器session * 4.选择某种加密方式对该请求的session进行加密之后生成一个token值,然后在回调地址redirect里带上token参数并跳转回去a.com服务器。 * 5.a.com对token参数进行解析后拿到用户基本信息和ticket值,相应地初始化本地session并将ticket值也记录下来。 * 6

SSO单点登录原理

匿名 (未验证) 提交于 2019-12-02 23:32:01
单点登录系统:在系统A登录后,进入系统A和B均不用登录 那么具体如何实现呢?如图: 1、访问系统A,但因为没有登录状态,所以重定向到认证服务进行登录 2、登录成功后,让浏览器保存一个cookie在xxlssoserver.com下,并请求重定向到系统A, 3、重定向到系统A,并携带cookie,同时让浏览器在xxlssoclient1.com下存放相同的cookie 5、重定向到认证服务,并要求浏览器再次重定向到系统B,系统B的地址栏带上cookie 6、系统B带上对cookie,此时系统B不用登录。如果系统B再次访问,只需要验证cookie的正确性即可 注:sso的核心在于系统A和系统B共享ssoserver.com下的cookie,如果系统A在浏览器X访问,系统B在浏览器Y访问,显示就不能共享cookie,还是要重新登录。 文章来源: https://blog.csdn.net/shuangyueliao/article/details/90208871

单点登录(SSO)

匿名 (未验证) 提交于 2019-12-02 23:32:01
单点登录相关教程可以参考以下链接,这些课程讲解得通俗易懂,而且比较完整,适合初学者学习使用,相关链接如下,腾讯课程有相应视频教程: 1. 最强SSO单点登录教程(一)多系统的复杂性 2. 最强SSO单点登录教程(二)单点登录流程分析 3. 最强SSO单点登录教程(三)单点注销流程分析 4. 最强SSO单点登录教程(四)自己动手写SSO单点登录服务端和客户端 5. 最强SSO单点登录教程(五)自己动手写SSO单点注销服务端和客户端 6. 最强SSO单点登录教程(六)CAS-简介&配置https 7. 最强SSO单点登录教程(七)CAS-搭建CAS Server服务端(静态认证) 文章来源: https://blog.csdn.net/weixin_39843989/article/details/89840320

统一身份认证和单点登录概念研究

匿名 (未验证) 提交于 2019-12-02 22:56:40
在研究、建设单位信息系统的集成和登录时,自然想到了统一身份认证和单点登录,首先遇到了这样的问题,统一身份认证和单点登录的概念是什么,是不是某一个领域的术语,是不是有相应的标准和协议以及相关的解决方案,这让我对这两个经常关在嘴边的、耳熟能详的名称的来源产生了好奇。 先从百度百科中可以查到统一身份认证的定义:所谓身份认证,就是判断一个用户是否为合法用户的处理过程。最常用的简单身份认证方式是系统通过核对用户输入的用户名和口令,看其是否与系统中存储的该用户的用户名和口令一致,来判断用户身份是否正确。复杂一些的身份认证方式采用一些较复杂的加密算法与协议,需要用户出示更多的信息(如私钥)来证明自己的身份,如Kerberos身份认证系统。 身份认证一般与授权控制是相互联系的,授权控制是指一旦用户的身份通过认证以后,确定哪些资源该用户可以访问、可以进行何种方式的访问操作等问题。在一个数字化的工作体系中,应该有一个统一的身份认证系统供各应用系统使用,但授权控制可以由各应用系统自己管理。 中文名 统一身份认证 外文名 uniform identity authentication 释 义 判断一个人是否为合法用户的过程 简 称 IDS 再查SSO的解释: SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统

CAS 单点登录/登出 与 SpringSecurity 的整合

匿名 (未验证) 提交于 2019-12-02 22:56:40
CAS 单点登录登出 https://mp.csdn.net/postedit/81201333 SpringSecurity框架 ― ― 安全校验 https://blog.csdn.net/Thor_Selen_Liu/article/details/81220568 前言: 通过前面两个知识点的学习,下面我们介绍,将两个知识点进行整合使用的方法。在前的 SpringSecurity框架中,我们即做校验又做登录,现在我们 整合 CAS 单点登录,将登录功能交给 CAS 去做,SpringSecurity 只管授权。 话不多说,下面我们以 demo 的方式进行演示: 大概步骤: ① 导入 spring+springsecurity 的依赖 ② 添加配置 springSecurity.xml 和 web.xml ③ 页面 ④ 认证类 一、先创建一个 spring-security.xml 工程 1. 建立 maven (war) 工程 casclient_demo3,引入 spring 依赖,和spring security 相关依赖,tomcat 端口设为 9003 <dependencies> <!-- spring 依赖 --> <dependency> <groupId> org.springframework </groupId> <artifactId> spring

php单点登录实现原理实例详解

匿名 (未验证) 提交于 2019-12-02 22:11:45
单点登录SSO( Single Sign On )说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。 单点登录在大型网站里使用得非常频繁,例如像阿里巴巴这样的网站,在网站的背后是成百上千的子系统,用户一次操作或交易可能涉及到几十个子系统的协作; 如果每个子系统都需要用户认证,不仅用户会疯掉,各子系统也会为这种重复认证授权的逻辑搞疯掉。 实现单点登录说到底就是要解决如何产生和存储那个信任,再就是其他系统如何验证这个信任的有效性; 因此要点也就以下几个: 1、存储信任 2、验证信任 只要解决了以上的问题,达到了开头讲得效果就可以说是SSO。 最简单实现SSO的方法就是用Cookie,实现流程如下所示: 不难发现以上的方案是把信任存储在客户端的Cookie里,这种方法虽然实现方便但立马会让人质疑两个问题: 1、Cookie不安全 2、不能跨域免登 对于第一个问题一般都是通过加密Cookie来处理,第二个问题是硬伤,其实这种方案的思路的就是要把这个信任关系存储在客户端,要实现这个也不一定只能用Cookie,用flash也能解决,flash的Shared Object API就提供了存储能力。 一般说来,大型系统会采取在服务端存储信任关系的做法,实现流程如下所示: 以上方案就是要把信任关系存储在单独的SSO系统

SSO 单点登录总结(PHP)

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

单点登录(SSO)工作原理

拥有回忆 提交于 2019-12-02 22:07:56
单点登录(SSO)工作原理 一、单点登录的介绍 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 例如:百度旗下有很多的产品,比如百度贴吧、百度知道、百度文库等,只要登录百度账号,在任何一个地方都是已登录状态,不需要重新登录。 当用户第一次访问应用系统的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份校验,如果通过校验,应该返回给用户一个认证的凭据--ticket;用户再访问别的应用的时候,就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到认证系统进行校验,检查ticket的合法性。如果通过校验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了。 要实现SSO,需要以下主要的功能: 所有应用系统共享一个身份认证系统。 统一的认证系统是SSO的前提之一。认证系统的主要功能是将用户的登录信息和用户信息库相比较,对用户进行登录认证;认证成功后,认证系统应该生成统一的认证标志(ticket),返还给用户。另外,认证系统还应该对ticket进行效验,判断其有效性。 所有应用系统能够识别和提取ticket信息 要实现SSO的功能,让用户只登录一次

CAS单点登录的原理

匿名 (未验证) 提交于 2019-12-02 21:53:32
1.首先了解几个概念   1)、TGC:Ticket-granting cookie,存放用户身份认证凭证的cookie,在浏览器和 CAS 2)、TGT:ticket granting ticket,TGT对象的ID就是TGC的值,在服务器端,通过TGC查询TGT。TGT封装了TGC值以及此Cookie值对应的用户信息。 3)、ST:service ticket,CAS为用户签发的访问某一service的票据,ST是TGT签发的。 2.单点登录的流程 现在有系统A、系统B、认证中心。 用户首次访问系统A的时候: 1)用户通过浏览器访问系统A https://localhost:8443/spring-shiro-cas/index,系统A取不到局部session,这时候系统A需要做一个额外的操作,就是重定向到认证中心 2)请求 https://localhost:8443/cas-server/login? service = https://localhost:8443/spring-shiro-cas/cas ,认证中心看浏览器有没有携带TGC,一看没有,返回cas login form让用户登录。 service url(在cas客户端也就是系统A配置) ,将来通过服务端认证后,还要重定向到系统A。/cas是拦截器的地址,接收cas服务端票据

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

心已入冬 提交于 2019-12-02 19:08:45
深入理解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 方面的专家,和不少读者一样,起初研究时我也存在相同疑惑,甚至在逐渐接触后产生了更大的疑惑