版权声明:本文为博主原创文章。转载请标明出处。

https://blog.csdn.net/lovesummerforever/article/details/36068249

SSO统一验证

        SSO(Single Sign On )。SSO统一验证的目的是为了让多个系统使用统一登录入口,用户仅仅须要登录当中一个系统。在cookie时间内便能够不用登录,就直接进入系统了。

CAS简单介绍

         CAS是SSO的一个框架,全称为:Central Authentication Service,是一款不错的针对web应用的单点登录框架,包含java,。

net。PHP,Prel。Apache,uPortal。Ruby等。

        直接上原理图,例如以下图所看到的:

这幅图画的是非常不错的,思前想后,还是直接搬过来了。我们以第一次登录和不是第一次登录为分界线讲述。

       首先须要明确几个道理,什么是server,什么是client?

       server,从第一次听到这个字眼到如今一直让我们感到十分神奇的感觉,一种高高在上的感觉,在天上的感觉。而实际上server和我们的这种感觉恰好相反,server,就是为别人提供服务的。百度百科是这样说的,server是指一个管理资源并为用户提供服务的计算机。

说白了server就是一台计算机。仅仅只是这台计算机能够给别的应用或者计算机提供服务,就像餐厅中服务员为顾客服务一样。而一台这种计算机,人们把他拟人化,称之为server。

        而服务员是相对于顾客而言的,没有顾客服务员也就不再是服务员,而顾客也可能是其它的服务员,计算机中也是如此。server是相对于client而言的。

         在上图中。我们首先看到的是CAS Client和CAS Server。这就是两个相对的概念。假设没有这个框架,我们系统登录自己系统的页面。那Web Browser就是client,而支持系统的后台部署到的那台机器就属于server了。当加上CAS的时候。我们就又上升了一层。由于CAS Server是为CAS client服务的。

        在这里CAS Client包含CAS 自己的client(也就是一个java程序CAS Client jar包)和我们要使用CAS单点登录的项目,他们放在一起组成了CAS Client。而CAS Server 是对输入的username和password进行不同方式的验证。

第一次登录系统,使用CAS流程

        用户打开浏览器。通过地址第一次请求受到保护的资源,CASclient会把请求自己主动的重定向到CASserver端。CASserver端发现没有证据,就直接把CAS server的登录界面转到浏览器,呈现给用户。此时。用户输入username和password之后。点击登录button,请求验证。CASclient相同重定向到CASserver。发现有会话标识。開始进行验证,验证失败,则浏览器中呈现失败的信息。

验证成功,会把username和password放到session中,并加入一个证据,跳转到系统的主界面。

       第二次请求自己的系统。CAS流程

当用户请求自己的系统,会直接请求到CAS的登陆页面, 然后CAS server端进行推断, 发现有session 和证据, 就直接转到了系统主界面。

          

       我们这样做的话,仅仅能使用CAS自己的默认的登录界面。且各种应用使用的是统一登录界面,这样非常不人性化。

那能够不能够让不同的应用有自己不同的登录界面,但都记性同一个CAS验证呢?下一篇,不同应用自己定义自己的CAS登陆页面。

(一)SSO之CAS框架通俗原理的更多相关文章

  1. (四)SSO之CAS框架单点登录,自定义验证登录方式

    应需求的变化,在登录cas的时候,默认根据用户名和密码进行验证,如果加上用户名,密码和一个系统标识进行验证呢?该如何做呢? 我们知道cas默认的登录界面中,输入的用户名和密码,再配置一下deploye ...

  2. (三)SSO之CAS框架单点退出,退出到CAS登录界面

    应需求的改变.CAS自定义登录页面不安全,不再使用,于是我一下子回到了原点,在linux上部署上了没有加自定义登陆界面的CAS,接下来开始修改CAS自己默认的登录界面为我们的界面. 一下子修改成功是根 ...

  3. (二)SSO之CAS框架单点退出,自定义退出界面.

    用CAS的退出,只能使用它自己的那个退出界面,如果有这样的要求, 要求退出后自动跳转到登录界面, 该如何做呢?下面这篇文章实现了退出后可以自定义跳转界面.  用了CAS,发现退出真是个麻烦事,退出后跳 ...

  4. (六)SSO之CAS框架扩展 改动CAS源代码实现与ESS动态password验证对接

    题记: 偶尔的偶尔我们会听到这个站点的数据泄露了,那个站点的用户数据泄露了.让用户又一次改动登录password,所以,对于用户数据安全性越发的引起我们的重视了,尤其是一些保密性要求高的站点.更须要添 ...

  5. (二)SSO之CAS框架单点退出,自己定义退出界面.

    用CAS的退出,仅仅能使用它自己的那个退出界面,假设有这种要求, 要求退出后自己主动跳转到登录界面, 该怎样做呢? 以下这篇文章实现了退出后能够自己定义跳转界面. 用了CAS,发现退出真是个麻烦事,退 ...

  6. SSO之CAS单点登录详细搭建教程

    本教程是我个人编写,花费几个小时的时间,给需要学习的人员学习使用,希望能帮助到你们. [环境说明]:本文演示过程在同一个机器上的(也可以在三台实体机器或者三个的虚拟机上),环境如下: windows7 ...

  7. CAS单点登录原理解析

    转自: https://www.cnblogs.com/lihuidu/p/6495247.html 1.基于Cookie的单点登录的回顾        基于Cookie的单点登录核心原理: 将用户名 ...

  8. CAS单点登录原理

    转自 https://www.cnblogs.com/lihuidu/p/6495247.html 1.基于Cookie的单点登录的回顾        基于Cookie的单点登录核心原理: 将用户名密 ...

  9. CAS单点登录原理解析(转载)

    1.基于Cookie的单点登录的回顾        基于Cookie的单点登录核心原理: 将用户名密码加密之后存于Cookie中,之后访问网站时在过滤器(filter)中校验用户权限,如果没有权限则从 ...

随机推荐

  1. Git-分支创建、拉取、切换

    git新建本地分支命令 1.创建本地分支 git branch 分支名,例如:git branch 2.0.1.20120806 注:2.0.1.20120806是分支名称,可以随便定义. 2.创建远 ...

  2. You can Solve a Geometry Problem too (hdu1086)几何,判断两线段相交

    You can Solve a Geometry Problem too Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/3276 ...

  3. Go 语言相关的优秀框架,库及软件列表

    If you see a package or project here that is no longer maintained or is not a good fit, please submi ...

  4. Linux安装mysql教程

    安装之前需要先卸载mysql 1.1.下载压缩包 [root@guohaien package]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7 ...

  5. 自定义MVC框架之工具类-文件上传类

    截止目前已经改造了3个类: ubuntu:通过封装验证码类库一步步安装php的gd扩展 自定义MVC框架之工具类-分页类的封装 该文件上传类功能如下: 1,允许定制上传的文件类型,文件mime信息,文 ...

  6. HDU1029(KB12-B)

    Ignatius and the Princess IV Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32767 K ( ...

  7. 《JavaScript DOM 编程艺术》读书笔记

    <JS DOM 编程艺术>笔记 一. 三种节点 元素节点.文本节点.属性节点 二. 获取元素 1.document.getElementById 2.(element)document.g ...

  8. python学习之老男孩python全栈第九期_day007知识点总结

    基础数据类型汇总 1. str 2. int 3. list 4. bool 5. dict (1) fromkeys Python 字典 fromkeys() 方法用于创建一个新的字典,并以可迭代对 ...

  9. 全局 DOM 变量

    全局 DOM 变量 你可能已经知道,声明一个全局变量(使用 var 或者不使用)的结果并不仅仅是创建一个全局变量,而且还会在 global 对象(在浏览器中为 window )中创建一个同名属性. 还 ...

  10. JavaSE——序列化和反序列化

    序列化: 序列化对应写的操作.(读与写都是站在应用的角度上) 序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化.可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间 ...