没有合适的资源?快使用搜索试试~ 我知道了~
首页使用CAS在Tomcat中实现单点登录
单点登录(Single Sign On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。CAS(Central Authentication Service)是一款不错的针对 Web 应用的单点登录框架,本文介绍了 CAS 的原理、协议、在 Tomcat 中的配置和使用,对于采用 CAS 实现轻量级单点登录解决方案的入门读者具有一定指导作用。
资源详情
资源评论
资源推荐
单点登录(简称 )是目前比较流行的服务于企业业务整合的解决方案之一,
使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
是一款不错的针对 应用的单点登录框架,本文介绍了 的原理、协
议、在 中的配置和使用,对于采用 实现轻量级单点登录解决方案的入门读者具有一定指导
作用。
CAS 介绍
是 大学发起的一个开源项目,旨在为 应用系统提供一种可靠的单点登录方法,在
年 月正式成为 !"的一个项目。具有以下特点:
开源的企业级单点登录解决方案。
为需要独立部署的 应用。
支持非常多的客户端这里指单点登录系统中的各个 应用,包括 #$
%&%%'%()等。
CAS 原理和协议
从结构上看,包含两个部分: 和 。需要独立部署,主要负责
对用户的认证工作;负责处理对客户端受保护资源的访问请求,需要登录时,重定向到
。图 是 最基本的协议过程:
图 1. CAS 基础协议
与受保护的客户端应用部署在一起,以 *方式保护受保护的资源。对于访问受保护资源
的每个 请求,会分析该请求的 &'请求中是否包含 +,如果没有,则
说明当前用户尚未登录,于是将请求重定向到指定好的 登录地址,并传递 (也就
是要访问的目的资源地址),以便登录成功过后转回该地址。用户在第 ,步中输入认证信息,如果登录
成功,随机产生一个相当长度、唯一、不可伪造的 +,并缓存以待将来验证,
之后系统自动重定向到 所在地址,并为客户端浏览器设置一个 +"-
+("),在拿到 和新产生的 +过后,在第 .,/步中与
进行身份核实,以确保 +的合法性。
在该协议中,所有与 的交互均采用 0协议,确保,和 "的安全性。协议工作过程中会有
次重定向的过程,但是 与 之间进行 +验证的过程对于用户是透明的。
另外,协议中还提供了 %1)(代理)模式,以适应更加高级、复杂的应用场景,具体介绍可以参
考 官方网站上的相关文档。
准备工作
本文中的例子以 .#.为例进行讲解,下载地址:
'233#'#3-4- ..#
到 官方网站下载 和 ,地址分别为:
'233444#5 6#3-4-63636 6 ,## 6#7'
'233444#5 6#3-4-636 636 5 ###7'
部署 CAS Server
是一套基于 实现的服务,该服务以一个 ''单独部署在与
6#,兼容的 服务器上,另外,由于 与 之间的交互采用 &'6协议,
因此部署 的服务器还需要支持 0协议。当 0配置成功过后,像普通 应用一样将
部署在服务器上就能正常运行了,不过,在真正使用之前,还需要扩展验证用户的接口。
在 上部署一个完整的 主要按照以下几个步骤:
配置 Tomcat 使用 Https 协议
如果希望 支持 &'6,主要的工作是配置 0协议,其配置过程和配置方法可以参考
的相关文档。不过在生成证书的过程中,会有需要用到主机名的地方,建议不要使用 !%地址,而要
使用机器名或域名。
部署 CAS Server
是一个 应用包,将前面下载的 6 6 ,## 6#7'解开,把其中的 6
6 4'' ,###4拷贝到 的 4''6目录下,并更名为 6#4。由于前面已配
置好 的 '6协议,可以重新启动 ,然后访问:'6233628,36,如果
能出现正常的 登录页面,则说明 已经部署成功。
虽然 已经部署成功,但这只是一个缺省的实现,在实际使用的时候,还需要根据实际概况
做扩展和定制,最主要的是扩展认证 接口和 的界面。
扩展认证接口
负责完成对用户的认证工作,它会处理登录时的用户凭证 -6信息,用户名3密
码对是最常见的凭证信息。可能需要到数据库检索一条用户帐号信息,也可能在 9:0文件
中检索用户名3密码,还可能通过 0;%获取等,在这种情况下,提供了一种灵活但统一的
接口和实现分离的方式,实际使用中 采用哪种方式认证是与 的基本协议分离开的,用户可以
根据认证的接口去定制和扩展。
扩展 AuthenticationHandler
提供扩展认证的核心是 &-接口,该接口定义如清单 下:
清单 1. AuthenticationHandler 定义
'<&-=
3>>
>:--<-66''--#
>?'-6-6-#
>?<-<646#
>?46@1'@1'
>-64)'A6<-#
>3
-6-646@1'B
3>>
>:-+<-+464--6
>'--#!)6'+<-6666
>'-666<-
>-65#
>?'-6-6+#
>?<-6''6-6<646#
>3
6''6-6-6B
C
该接口定义了 个需要实现的方法,6''6方法用于检查所给的包含认证信息的 -6是否
受当前 &-支持;而 方法则担当验证认证信息的任务,这也是需
要扩展的主要方法,根据情况与存储合法认证信息的介质进行交互,返回 类型的值,表示
验证通过,<6表示验证失败。
, 中还提供了对 &-接口的一些抽象实现,比如,可能需要在执行
方法前后执行某些其他操作,那么可以让自己的认证类扩展自清单 中的抽象类:
清单 2. AbstractPreAndPostProcessingAuthenticationHandler 定义
'6666%-%6%66&-
'6&-=
'-0D0*)#06#66B
'-'E-6-6=
B
C
'-'6E-6-6
E-=
-B
C
'EE-6-6
46@1'=
<F'-6=
<6B
C
E-D--6B
'6-6-B
剩余12页未读,继续阅读
miragezy
- 粉丝: 11
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
- MW全能培训汽轮机调节保安系统PPT教学课件.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论4