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

什么是单点登录?

单点登录(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. 黑盒测试实践——day06

    一.任务进展情况 通过小组成员的共同努力,终于完成了此次“黑盒测试实践”任务.目前的主要任务将之前的文件汇总,整理出来.                             二.存在的问题 由于此 ...

  2. F#周报2019年第15期

    新闻 Hedgehog新站点 Bolero 0.4发布,增加远程认证 FsToolkit.ErrorHandling与Cvdm.ErrorHandling合并了 F#里的3D图形编程与游戏开发 有趣的 ...

  3. 报文分析3、ICMP协议的头结构

    ICMP协议的头结构 类型(8位) 代码(8位) 校验和(8位) 类型或者代码   (1)类型:一个8位类型字段,表示ICMP数据包类型. (2)代码:一个8位代码域,表示指定类型中的一个功能.如果一 ...

  4. js canvas游戏初级demo-上下左右移动

    大概流程就是监听状态变化擦除画布重绘 由于js监听时间变化的函数addEventListener只能达到每秒触发20次左右,也就是每秒20帧,看起来有点卡卡的 所以用定时器搞到每秒30帧 按上下左右键 ...

  5. 使用 Canal 实现数据异构

    小结: 1. https://mp.weixin.qq.com/s/z-5aoGVuk7JzIGrJJWgeJw 使用 Canal 实现数据异构 原创: 杜亦舒 性能与架构 3月4日

  6. zblog如何更改数据库配置以及生效

    zblog是一个博客的开源框架, 挺不错的,我们当前拿来作为新闻系统管理使用. 由于我们数据库需要统一使用RDS, 故对zblog数据库配置进行修改,修改文件如下: 1. 数据库文件地址: zb_us ...

  7. kali在vbox上运行设置共享文件夹

    mount -t vboxsf VBoxShared /root/Desktop/vbox 0x00 使用共享文件夹的前提 需要自行安装增强功能:https://jingyan.baidu.com/a ...

  8. 做一个有产品思维的研发:Scrapy安装

    每天10分钟,解决一个研发问题. 如果你想了解我在做什么,请看<做一个有产品思维的研发:课程大纲>传送门:https://www.cnblogs.com/hunttown/p/104909 ...

  9. 全志A33驱动GT911触摸屏

    0x00 环境说明: 所使用的开发板为锐尔威视的插针版A33_Vstar 触摸屏驱动IC为GT911 接线参照开发板的TP线路 0x01 修改系统配置文件: 笔者所使用的A33开发板的系统配置文件路径 ...

  10. Java中的过滤器,拦截器,监听器---------简单易懂的介绍

    过滤器: 过滤器其主要特点在于:取你需要的东西,忽视那些不需要的东西!在程序中,你希望选择中篇文章中的所有数字,你就可以针对性的挑选数字! 拦截器: 拦截器其主要特点在于:针对你不要的东西进行拦截,比 ...