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

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. sqlserver 删除表中数据 id 从1开始

    TRUNCATE  TABLE  TbName   --TbName是表名 但如果TbName中某些字段与其它表有主外键关系,会报错: 无法截断表 'Plants',因为该表正由 FOREIGN KE ...

  2. [日常] Go语言圣经--接口约定习题

    Go语言圣经-接口1.接口类型是对其它类型行为的抽象和概括2.Go语言中接口类型的独特之处在于它是满足隐式实现的3.Go语言中还存在着另外一种类型:接口类型.接口类型是一种抽象的类型4.一个类型可以自 ...

  3. 我的第一篇博文,开启我的Java程序人生之旅!

    原文:https://blog.csdn.net/CodeYearn/article/details/89190342 自我介绍: 姓名:蔡余 性别:男 年龄:21 职业:Java开发工程师 家乡:湖 ...

  4. 排查CentOS7.0的联网情况

    1.ifconfig命令. 查看网络配置是否有问题 在/etc/sysconfig/network-scripts/ifcfg-ens33里面配置好网络,记住onboot=on这个选项一定要设置,不然 ...

  5. springboot中使用mybatis之mapper

    Spring Boot中使用MyBatis传参方式:使用@Param@Insert("INSERT INTO USER(NAME, AGE) VALUES(#{name}, #{age})& ...

  6. 【 js 基础 】【读书笔记】Javascript “继承”

    是时候写一写 “继承”了,为什么加引号,因为当你阅读完这篇文章,你会知道,说是 继承 其实是不准确的. 一.类1.传统的面向类的语言中的类:类/继承 描述了一种代码的组织结构形式.举个例子:“汽车”可 ...

  7. js之展开收缩菜单,用到window.onload ,onclick,

    目标效果:点击标签1,如果列表标签的style的display是block,改成none,否则改成block,来达到展开收缩菜单效果 一.准备阶段 html文件 <!DOCTYPE html&g ...

  8. js-ES6学习笔记-Class(2)

    1.与函数一样,类也可以使用表达式的形式定义. const MyClass = class Me { getClassName() { return Me.name; } }; 这个类的名字是MyCl ...

  9. Flex 常用布局

    1.flex布局 1.1  容器指定为flex布局 .box{display: flex;} 1.2 行元素指定flex布局 .box{display:inline-flex} 2.容器的属性 2.1 ...

  10. SQLServer 学习笔记之超详细基础SQL语句 Part 7

    Sqlserver 学习笔记 by:授客 QQ:1033553122 -----------------------接Part 6------------------- 29 存储过程和触发器 存储过 ...