---恢复内容开始---

什么是单点登录?

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

  如果我们的系统存在于诸多的子系统中,而这些子系统是分别部署在不同的服务器中,那么使用传统方式的session是无法解决的,我们需要使用相关的单点登录技术来解决.

通过这张图就可以简单的对单点登录有一定的了解:

1.用户第一次访问应用系统的时候,因为还没有登录,就会被引导到认证系统中进行登录.

2.根据用户提供的登录信息,认证系统进行身份校验,如果通过校验应该返回给用户一个认证的凭据--ticket

3.用户再访问别的应用的时候,就会将这个ticket带上,作为自己的凭据,应用系统接收到请求之后,就会把ticket送到认证系统进行校验,检查ticket的合法性.如果通过校验,用户就可以在不用再次登录的情况下访问应用系统2和3了.

要实现SSO,需要一下主要的功能:

  所有应用系统共享一个身份认证系统.\ 

  统一的认证系统是SSO的前提之一,认证系统的主要功能是将用户的登录信息和用户信息库相比较,对用户进行登录认证,认证成功后,认证系统应该生成统一的认证标志(ticket),返还给用户,另外,认证系统还应该对ticket进行校验,判断其有效性.

`  所有应用系统能过识别和提取ticket的信息.

  要实现SSO的功能,让用户只登录一次,就必须让应用系统能够识别已经登录过的用户,应用系统应该能对ticket进行识别和提取,通过与认证系统的通讯,能自动判断当前用户是否登陆过,从而完成单点登录的功能.

  优点:

  1.提高用户的效率

  用户不再被多次登录困扰,也不需要记住多个ID密码,另外,用户忘记密码并求助于支持人员的情况也会减少.

  2.提高开发人员的效率

  SSO为开发人员提供了一个通用的身份证验证框架.实际上,如果SSO机制是独立的,那么开发人员就完全不需要为身份验证进行操心,他们可以假设,只要对应用程序的请求附带一个用户名,身份验证就已经完成了.

  3.简化管理

  如果应用程序加入了单点登录协议,管理用户账号的负担就会减轻,简化的程度取决于应用程序,因为SSO只处理身份验证.所以,应用程序可能仍然需要设置用户的属性(比如访问特权).

缺点:

  1.不利于重构,

  因为涉及到的系统会很多,要重构必须要兼容所有的系统,可能很耗时.

  2.无人看守桌面

  因为只需要登录一次,所有的授权的应用系统都可以访问,可能导致一些很重要的信息泄露.

CAS(中央认证服务)

  CAS是Central Authentiction Service 的缩写,中央认证服务,一种独立开放指令协议.CAS是Yale大学发起的开源项目.旨在为Web应用系统提供一种可靠的单点登录方法,CAS在2004年12月正式称为JA-SIG的一个项目.

  特点:

  1.开源的企业级单点登录解决方案.

  2.CAS Service为需要独立部署的Web应用.

  3.CAS Client 支持非常多的客户端(这里指单点登录系统中的各个Web应用),包括Java   .NET PHP  Apache uPortal Ruby等

CAS的原理:

从结构上看,CAS包含两部分:CAS Server和CAS Client.CAS Server需要独立部署,主要负责对用户的认证工作;CAS Client负责处理对客户端受保护资源的访问请求,需要登录时,重定向到CAS Server.这个是CAS最基本的协议过程:

  CAS Client与受保护的客户端应用部署在一起,以Filter方式保护受保护的资源,对于访问受保护的资源的每个Web请求,CAS Client会分析该请求的Http请求中是否包含Server ticket,如果没有,则说名当前用户尚未登录,于是将请求重定向到指定好的CAS Server登录地址,并传递Service(也就是要访问的目的资源地址),以便登录成功后转回该地址.用户在第三步中输入认证信息,如果登录成功,CAS Server随机产生一个相当长度,唯一,不可伪造的Service Ticket,并缓存以待将来验证,之后系统自动重定向到Service所在地址,并为客户端浏览器设置一个Ticket Granted Cookie(TGC),CAS Client在拿到Service和新产生的Ticket过后,在第五六步中与CAS Server进行身份核实,以确保Service Ticket的合法性.

在该协议中,所有与CAS的交互均采用SSL协议,确保,ST和TGC的安全性,协议工作过程中会有两次重定向的过程,但是CAS Client 与CAS Server之间进行Ticket验证的过程对于用户是透明的.

另外,CAS 协议中还提供了Poxy(代理)模式,以适应更加高级,复杂的应用场景.更加详细的介绍可以参考官网上的相关文档.

---恢复内容结束---

单点登录系统和CAS的简介的更多相关文章

  1. Hadoop生态圈-单点登录框架之CAS(Central Authentication Service)部署

    Hadoop生态圈-单点登录框架之CAS(Central Authentication Service)部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.CAS简介 CAS( ...

  2. cas sso单点登录系列2:cas客户端和cas服务端交互原理动画图解,cas协议终极分析

    转:http://blog.csdn.net/ae6623/article/details/8848107 1)PPT流程图:ppt下载:http://pan.baidu.com/s/1o7KIlom ...

  3. SSO单点登录系列2:cas客户端和cas服务端交互原理动画图解,cas协议终极分析

    落雨 cas 单点登录 一.用户第一次访问web1应用. ps:上图少画了一条线,那一条线,应该再返回来一条,然后再到server端,画少了一步...谢谢提醒.而且,重定向肯定是从浏览器过去的.我写的 ...

  4. 【Java EE 学习 68】【单点登录】【两种单点登录类型:SSO/CAS、相同一级域名的SSO】

    单点登录:SSO(Single Sign On) 什么是单点登录:大白话就是多个网站共享一个用户名和密码的技术,对于普通用户来说,只需要登录其中任意一个网站,登录其他网站的时候就能够自动登陆,不需要再 ...

  5. 【单点登录】【两种单点登录类型:SSO/CAS、相同一级域名的SSO】

    单点登录:SSO(Single Sign On) 什么是单点登录:大白话就是多个网站共享一个用户名和密码的技术,对于普通用户来说,只需要登录其中任意一个网站,登录其他网站的时候就能够自动登陆,不需要再 ...

  6. [转]单点登录SSO学习——CAS协议内容

    作者:anmaler 本文转自:http://blog.zhaojunling.me/p/24 CAS中文文档甚少,这篇文章对CAS接口参数有比较清楚的说明,排版也不错查阅舒适 在当前互联网产品中使用 ...

  7. SSO单点登录一:cas单点登录防止登出退出后刷新后退ticket失效报500错,也有退出后直接重新登录报票根验证错误

    问题1: 我登录了client2,又登录了client3,现在我把client2退出了,在client3里面我F5刷新了一下,结果页面报错: 未能够识别出目标 'ST-41-2VcnVMguCDWJX ...

  8. CAS5.2x单点登录(一)——搭建cas服务器

    系列文章列表: https://blog.csdn.net/u013825231/article/category/7517313 单点登录的介绍 单点登录(Single Sign On ,简称SSO ...

  9. 单点登录(七)-----实战-----cas server去掉https验证

    我们在搭建cas中已经说过如果不搭建https证书体系的需要去掉https的验证: 单点登录(二)----实战------简单搭建CAS---测试认证方式搭建CAS 因为cas4.2以上的代码做了一些 ...

随机推荐

  1. tomcat之过滤器

    过滤器是一种特殊的servlet,也需要在配置文件中进行配置,通过它可以将指定的请求拦截下来,之后对请求处理,处理完之后,将拦截请求放行.实现过滤器也需要实现一个接口叫javax. servlet.F ...

  2. centos出现could not resolve host:mirrorlist...错误

    这意思是没联网. 看这篇:https://www.cnblogs.com/Sabre/p/10665173.html

  3. Jmeter正则表达式提取器

    https://www.cnblogs.com/tudou-22/p/9566894.html Jmeter中关联是通过“添加—后置处理器—正则表达式提取器”来获取数据 一.获取单个数据

  4. Spring Boot 对请求的映射

    在SpringBoot中对请求资源的映射有三种方式: 1.通过编写一个Controller请求,获得客户端发送过来的请求就转发出去 //通过这种方式可以来映射页面请求路径 @PostMapping(& ...

  5. 下载安装Git

    1.下载地址:https://git-scm.com/download/win  这里是下载64位的 2.安装步骤 (1)下载完成得到一个exe文件,双击傻瓜式安装 (2)开始安装 (3)选择安装的工 ...

  6. iStatistica Pro for mac(mac系统监视器)

    iStatistica Pro for mac是一款运行在Mac平台上的mac系统监视器,你可以使用iStatistica pro for mac破解版轻松查看PAM使用情况.CPU信息.磁盘信息.本 ...

  7. Socket断开不报错(Java)

    网上看了很多关于Socket的Demo,用起来挺好用也简单,不过都在断开连接时,都没有做好相关处理,导致每次主动断开时,会报错 如: java.net.SocketException: Socket ...

  8. pdf下载速度

  9. composer学习之路01

    以前对composer还是的理解很模糊,直到最近看一些资料,稍微有了一些浅显的了解. /* composer依赖包管理工具,如果一个项目是windows操作系统,那么composer就是360,他可以 ...

  10. 多个if、elif和else的搭配使用

    if-if-if-搭配成的语句块,会一个个去匹配是否满足if里面的语句; if与elif的搭配成的语句块,当匹配到if或者elif语句判断为True的时候,那么不会执行下面elif以及else里面的语 ...