陈苗苗++张哲
DOI:10.16644/j.cnki.cn33-1094/tp.2016.09.009
摘 要: 通过对传统的CAS算法进行改进,使之从传统的单点登陆功能拓展到业务系统服务模块集成,从而使得高校师生能一步直达业务系统提供的任何服务;改进算法极大地降低了业务系统与门户集成的建设成本,提高了搭建高校网上服务大厅的效率,而且配置简单、技术要求低,因此这是实现高校业务系统服务集成的一种灵活、简便的方法。
关键词: CAS; 服务集成; 网上服务大厅
中图分类号:TP391 文献标志码:A 文章编号:1006-8228(2016)09-33-04
Application and practice of improved CAS algorithm in the construction
of university online service hall
Chen Miaomiao, Zhang Zhe
(Hangzhou Polytechnic College, Hangzhou, Zhejiang 311400, China)
Abstract: In this paper, the traditional CAS(Central Authentication Service)algorithm is improved, so that it can expand from the traditional SSO to service integration of business system, and make the teachers and students in universities can directly access to any service provided by business system. The improved algorithm reduces the construction cost of business system greatly, improves the efficiency of building online service hall, and the configuration is simple, technical requirements is low. Therefore, this is a flexible and convenient way to realize the service integration of the business system in university.
Key words: Central Authentication Service; service integration; online service hall
0 引言
随着互联网、信息化的发展,各大高校已经意识到以服务为中心,为师生提供教学、科研、办公的一站式数字校园服务平台理念的重要性。目前高校师生对业务系统的需求以查询居多,在使用过程中对各个业务系统之间的交互不多,所以让师生直达服务模块可以使得师生在最短时间内访问所需服务。目前数字化校园的服务集成,大多仅限于业务系统首页的单点登录,还没有做到真正意义上的服务集成。
1 当前高校服务集成面临的问题
高校信息化建设中,服务集成的真正意义在于能够方便部署、管理和扩展集成信息和业务系统[1],分布的业务系统希望通过统一的入口提供各种服务。当前主流的服务集成的策略主要有Web Services集成、Iframe+Portlet集成、单点登录集成。
1.1 Web Services集成
基于Web Services的服务集成,各业务系统通过Web Services的方式封装自己的相关服务,供其他业务系统和门户调用,门户通过调用各业务系统对外发布的相关服务,对其进行集成、整合,并适度的二次开发以达到服务集成的目的[2]。
但是Web Services集成最大的缺点在执行效率上,Web服务的每个请求、发送、响应、返回的每个过程中,都需要对xml进行序列和反序列化,从而导致效率方面存在一定的问题[3]。
1.2 Iframe+Portlet集成
Iframe+Portlet集成通过纳入Web应用,然后利用form的post或者get方式实现用户的登录,但是Iframe+Portlet集成会导致门户与业务系统无法提供一致的外观[4-5];性能方面,当门户包含多个portlet时,用户在提供某个portlet时,其他的portlet的内容也会重新渲染,导致每个portlet重新加载而影响性能[6]。
1.3 单点登录集成
单点登录作为实现服务集成的一种技术方案,它整合了校园网络中的信息和各种业务系统,为全校师生提供了单一的访问入口。实现一次登录即可访问所有有权访问的业务系统,避免师生的频繁登录,在一定程度上提升高校师生的效率,为数字校园的业务系统提供集中的管理和安全的认证机制,一定程度上实现了业务系统的无缝链接和集成。
无论是Web Services集成还是Iframe+Portlet集成,均需要业务系统封装、门户调用来实现系统的整合,这两种主流的集成方式无论对业务系统还是门户都同样有着工作量大和技术门槛高的要求[7],这将导致高校在推行此集成方案时存在较大困难。而通过单点登录实现业务系统集成仅限于将各业务系统的访问入口集成至门户首页,师生尚需要了解业务系统模块结构及其划分,才能在业务系统中找到所需的服务资源。所以如何做到快速、深入地实现业务系统集成,让师生快速获取到相应的服务才是“以提供服务为理念”的数字校园应该解决的问题。
2 CAS改进算法
2.1 CAS认证流程
CAS(Central Authentication Service-中心认证服务)技术是由耶鲁大学在2004年12月开发的为web应用提供服务的单点登录服务,是现在数字校园服务集成中较为流行和较为成熟的技术[8]。CAS的目的就是使分布在内部各个不同异构系统的认证工作集中在一起,通过一个公用的认证系统统一验证用户身份的合法性。通过CAS认证的用户将获得CAS颁发的一个证书,使用这个证书,用户可以在承认CAS证书的各个系统上自由穿梭访问,不需要再次的登录认证[9]。
基于CAS协议的单点登录系统体系上主要分为CAS认证服务器、CAS客户端和浏览器[10]。CAS认证服务器是整个统一身份认证的核心部分,需要独立部署。CAS客户端通常是Web业务系统,浏览器是师生访问CAS客户端的主要工具,它必须支持HTTP重定向、拥有加密引擎支持HTTPS、能解析基本的JavaScript、能安全存储Cookie信息。CAS的认证流程如图1。
传统的CAS客户端通过取出ticket,生成“ticket验证URL”,然后发起http GET请求重定向。在CAS认证流程中,CAS客户端主要实现以下逻辑[11]。
⑴ 以filter的形式,对B/S结构应用系统资源进行过滤保护,可以保护所有资源,也可以保护单一资源。
⑵ 获得CAS Server颁发的ServiceTicket,并凭此ST从CAS Server上取得登录用户信息。
⑶ 为第三方应用提供开发接口,使得受保护的应用能够根据CAS认证信息进行正确的登录。
通过以上的CAS认证流程,传统高校实现了在获取CAS颁布的惟一认证证书之后即可实现在各业务系统之间的单点登录,从而实现通过数字校园门户单一访问入口访问各业务系统的服务资源,完成初步的网上服务大厅的创建工作,这是目前传统高校在建设网上服务大厅的常用方案。
2.2 CAS客户端算法改进
通过对CAS客户端算法的深入研究,对CAS客户端代码进行相应的改进,可以实现门户与业务系统服务资源的深入集成,最终实现了业务系统任何深度模块的直接访问,方便了师生对常用业务系统服务的快速访问,同时降低业务系统的建设成本,达到一站式服务的最终目标。
CAS客户端改进算法主要是在CAS客户端发出重定向请求之前,对重定向地址进行请求URL解析、关键字定位、最终URL提取。以下是对重定向地址处理的核心代码段:
[String strRedirecturl = request.getParameter("RedirectUrl");
//定位关键字,提取最终url
if(strRedirecturl != null && strRedirecturl.length()>0) {
response.sendRedirect(strRedirecturl); //重定向到最终url
}
else {
response.sendRedirect("业务系统首页"); //重定向到首页
}\&]
业务系统通过CAS集成时,在登录入口处对上述算法改进,即在登录成功后,从request中找到关键字RedirectUrl,并获取到最终的strRedirecturl,如果为空,则跳转到业务系统的首页;如果不为空,则跳转到获取的strRedirecturl。strRedirecturl即为业务系统的任何深度服务模块地址。
以某高校图书管理系统的“借阅记录”页面为例,用户通过浏览器请求url(http://ts.hzpt.edu.cn/neusoftcas.aspx?RedirectUrl=http://ts.hzpt.edu.cn/main/BorrowHistory.aspx)。CAS客户端通过对请求的url进行解析:首先找到到关键字RedirectUrl,然后获取到用户最终需要访问的地址(http://ts.hzpt.edu.cn/main/BorrowHistory.aspx),最后将该访问地址重定向给CAS服务器。
本文中基于CAS客户端改进的业务服务集成方法,不需要业务系统重构代码,只需要在单点登录处增加代码段,建设成本非常低;高校信息化管理人员亦可方便地根据教职工、学生的需求随时配置服务,而且对信息管理人员的技术要求也不高。但是由于该算法对请求的url地址需要事先配置,所以只允许对静态地址进行解析,对动态生成的地址无法实现进行相关配置。
3 成果展示
下文将以某高校数字门户为例,展示该方法在数字校园门户中的具体应用场景,同时介绍在数字校园后台中如何配置业务系统提供的服务地址。
3.1 实践结果展示
目前大多数高校通过单点登录提供的服务,仅仅做到了首页的单点登录,为了让高校师生能够快速直达访问到业务系统提供的服务,数字校园门户首页提供了服务墙(“我的信息”),此服务墙使用的技术细节即为前文中提出的CAS客户端改进算法。如图2,每个模块实际访问的都是业务系统的资源,例如师生访问“借阅历史”,图书管理系统开始解析访问的地址,通过获取关键字RedirectUrl找到实际访问的地址,再将地址重定向到CAS服务器,经过CAS服务器对账号密码的认证通过之后,图书管理系统将请求的资源展示给请师生。
3.2 后台设置
如图3中每个服务模块的地址由数字校园管理员配置。服务范围可以选择该服务提供给谁使用。应用链接地址组成:”业务系统单点登录地址”+”?RedirectUrl=”+”业务系统服务模块地址”。例如,图书管理系统提供的“借阅历史”服务,首先输入图书管理系统单点登录地址(http://ts.hzpt.edu.cn/neusoftcas.aspx),再输入拼接字符和关键字(?RedirectUrl=),最后输入图书管理系统借阅历史的地址(http://ts.hzpt.edu.cn/main/BorrowHistory.aspx),所以应用链接地址就是(http://ts.hzpt.edu.cn /neusoftcas.aspx?RedirectUrl=http://ts.hzpt.edu.cn/main/BorrowHistory.aspx)。
4 结束语
传统的Web Services和iframe+protlet等比较深入的集成方式,虽然可实现很好的集成效果,但在这些模式中,业务系统与门户之间,业务系统与业务系统之间,均必须利用系统中的接口和函数进行二次开发和封装,其开发成本太高。而本文中基于CAS改进算法的业务服务集成方式能够做到低成本、服务快速集成、入口统一、配置简单,能快速满足高校的服务整合需求,实现一个网上服务大厅,真正做到为全校师生提供“一站式”服务。
未来提供基于移动互联网的服务集成显得越来越重要,而传统互联网在资源和服务上拥有更加稳定成熟的应用基础。因此,在网络环境优越的高校,如何依托传统互联网的服务优势,同时利用移动互联网的便捷性,快速、轻量地实现基于移动端的数字校园服务中心,将是以后的研究方向。
参考文献(References):
[1] http://www.soft78.com/article/2012-12/2-ff8080813b2e
07db013b87a14f472bad.html,2016.
[2] 张前峰.基于WebServices的数字化校园的研究与设计[D].
华侨大学,2005:24-25
[3] 陈明.关于web+service的数字化校园应用系统的集成[D].电
子科技大学,2006:55-56
[4] 邱春芳.基于门户和企业服务总线的应用集成研究及应用[D].
华东理工大学,2013:34-35
[5] 周向军.Portlet技术在数字校园中的研究与应用[D].北方工
业大学,2013:52-54
[6] 李立焰,谭庆平,缴名扬,李玉.JSR 168 Portlet应用中保持
mvc模式带缓存服务调用方案的研究和实现[J].计算机与信息技术,2006.4:25-28
[7] 罗辉琼,聂瑞华.基于Portal的门户开发技术研究[J].计算机
技术与发展,2012.8:35-38
[8] 季昉.基于CAS的Web单点登录系统的应用研究[D].大连海
事大学,2010:45-47
[9] 李勇.基于CAS构建SSO系统的设计与实现[J].曲靖师范学
院学报,2012.3:42-47
[10] 卢清平,杨柳,许晓东.一个基于Yale-CAS的单点登录解决
方案[J].合肥学院报,2005.3:10-14
[11] 黄永生.基于CAS协议的单点登录关键技术的研究与应用[D].
中南大学,2010:34-42