(一)SSO之CAS框架通俗原理

SSO统一验证

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

CAS简介

CAS是SSO的一个框架,全称为:Central Authentication Service,是一款不错的针对web应用的单点登录框架,包括java,。net,PHP,Prel,Apache,uPortal,Ruby等。

直接上原理图,如下图所示:

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

首先需要明白几个道理,什么是服务器,什么是客户端?

服务器,从第一次听到这个字眼到现在一直让我们感到十分神秘的感觉,一种高高在上的感觉,在天上的感觉。而实际上服务器和我们的这种感觉恰好相反,服务器,就是为别人提供服务的,百度百科是这样说的,server是指一个管理资源并为用户提供服务的计算机。说白了服务器就是一台计算机,只不过这台计算机可以给别的应用或者计算机提供服务,就像餐厅中服务员为顾客服务一样,而一台这样的计算机,人们把他拟人化,称之为服务器。

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

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

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

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

用户打开浏览器,通过地址第一次请求受到保护的资源,CAS客户端会把请求自动的重定向到CAS服务器端,CAS服务器端发现没有证据,就直接把CAS server的登录界面转到浏览器,呈现给用户。此时,用户输入用户名和密码之后,点击登录按钮,请求验证,CAS客户端同样重定向到CAS服务器,发现有会话标识,开始进行验证,验证失败,则浏览器中呈现失败的信息。验证成功,会把用户名和密码放到session中,并添加一个证据,跳转到系统的主界面。

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

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

我们这样做的话,只能使用CAS自己的默认的登录界面,且各种应用使用的是统一登录界面,这样很不人性化。那可以不可以让不同的应用有自己不同的登录界面,但都记性同一个CAS验证呢?下一篇,不同应用自定义自己的CAS登陆页面。

时间: 2024-10-10 01:42:06

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

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

用CAS的退出,只能使用它自己的那个退出界面,如果有这样的要求, 要求退出后自动跳转到登录界面, 该如何做呢?下面这篇文章实现了退出后可以自定义跳转界面. 用了CAS,发现退出真是个麻烦事,退出后跳转到了CAS的注销页面,而且不关闭浏览器的话,其实并没有真的退出,输入地址仍是登陆状态.为了实现退出后登陆到跳转页面,做了以下配置: 1.server 端 修改src\main\webapp\WEB-INF\cas-servlet.xml里的logoutController 增加p:followSer

(四)SSO之CAS框架单点登录,修改验证数据库的方式

应需求的变化,在登录cas的时候,默认根据用户名和密码进行验证,如果加上用户名,密码和一个系统标识进行验证呢?该如何做呢? 我们知道cas默认的登录界面中,输入的用户名和密码,再配置一下deployerConfigContext.xml 这个文件中的bean  org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler 的这个标签,写上对应的sql,以及在<bean id="dataSource" class=&q

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

应需求的改变.CAS自己定义登录页面不安全,不再使用,于是我一下子回到了原点.在linux上部署上了没有加自己定义登陆界面的CAS,接下来開始改动CAS自己默认的登录界面为我们的界面. 一下子改动成功是根本就不可能的,于是删一点cas的源代码的东西.看看效果,然后再删除一些不必要的东西.看看效果,再加上自己系统登录界面的样式,就这样一步步的做成自己系统登录界面的样式,登录界面完成后就是,CAS默认的登出界面了. 登出界面的要求.在登出的时候返回到登录的主界面,就去改动了CAS的登出的界面了. 有

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

题记: 偶尔的偶尔我们会听到这个站点的数据泄露了,那个站点的用户数据泄露了.让用户又一次改动登录password,所以,对于用户数据安全性越发的引起我们的重视了,尤其是一些保密性要求高的站点.更须要添加安全性了. 正文: 对于安全性问题.我们怎样解决呢? 解决方式: 1.避免sql注入问题. 2.用户登录password加密. 3.使用https安全訪问方式. 4.使用第三方设备.像银行一般使用的password口令. 5.... 前三种方案是比較常见的.这里主要说第四种解决方式,我们在前三种方

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

应需求的变化,在登录cas的时候,默认根据用户名和密码进行验证,如果加上用户名,密码和一个系统标识进行验证呢?该如何做呢? 我们知道cas默认的登录界面中,输入的用户名和密码,再配置一下deployerConfigContext.xml 这个文件中的bean  org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler 的这个标签,写上对应的sql,以及在<bean id="dataSource" class=&q

(六)SSO之CAS框架扩展 修改CAS源码实现与ESS动态密码验证对接

题记: 偶尔的偶尔我们会听到这个网站的数据泄露了,那个网站的用户数据泄露了,让用户重新修改登录密码,所以,对于用户数据安全性越发的引起我们的重视了,尤其是一些保密性要求高的网站,更需要增加安全性了. 正文: 对于安全性问题,我们如何解决呢? 解决方案: 1.避免sql注入问题. 2.用户登录密码加密. 3.使用https安全访问方式. 4.使用第三方设备,像银行一般使用的密码口令. 5.... 前三种方案是比较常见的,这里主要说第四种解决方案,我们在前三种方案的基础上,使用了第三方的设备,就像网

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

本教程是我个人编写,花费几个小时的时间,给需要学习的人员学习使用,希望能帮助到你们. [环境说明]:本文演示过程在同一个机器上的(也可以在三台实体机器或者三个的虚拟机上),环境如下: windows7 64位 jdk1.7.0_51 apache-tomcat-7.0.57-windows-x64 cas-server-webapp-4.0.0.war.cas-client-core-3.2.1.jar.commons-logging.jar 确保本地jdk环境已经搭建好 [软件说明]:文档中涉

(转)android平台phonegap框架实现原理

(原文)http://blog.csdn.net/wuruixn/article/details/7405175 android平台phonegap框架实现原理 分类: Android2012-03-28 23:10 2919人阅读 评论(0) 收藏 举报 phonegap平台android框架apiblackberry 最近研究了下phonegap手机快速开发框架原理,重点探究了android平台上的phonegap框架源码,在参考cutesource写的phonegap源码分析后,更加深入理

Android中免Root实现Hook的Dexposed框架实现原理解析以及如何实现应用的热修复

一.前言 今天我们来看一下阿里的一个开源框架Dexposed,关于这个框架网上已经有很多解析了,但是都是讲解原理,而且讲的不是很清楚,这里因为工作中的需要就研究了一下,所以这里就先讲解一下这个框架的原理,然后在通过一个例子来看看他如何使用,最后在用它来实现应用的热修复问题. 二.知识点准备 首先在讲解这个框架的时候,我们先来了解几个知识点: 1.关于之前的Xposed框架 我们在很早就知道了这个框架,本来想整理一下顺便说一下这个框架的,但是这个框架网上说的很多,而且也很详细,所以就不做太多的解析