浅谈统一身份认证模式在高校中的应用
2018-07-28菅锐
菅锐
摘要:面对高校信息化建设步伐的加快,各種应用系统应运而生,该文分析了独立开发和建设的应用系统在使用各自身份认证方式进行认证的种种弊端,介绍了统一身份认证体系的优越性和CAS中央身份认证优秀的开发特性,结合高校现状和系统开发成本,提出利用CAS来实现SSO统一身份认证体系,实现统一的用户管理、资源管理和权限控制的设计目标。
关键词:高校;统一身份认证;CAS应用
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)15-0065-02
1 高校目前软件体系的身份认证现状
随着新时代钟声的响起,第三次工业革命的完成,几十年的发展,放眼当下,网络技术在人们心里有了越来越高的地位,互联网已经大大影响人们的生活,互联网+已经成为时代的潮流,不可逆转。从衣食住行到教育医学,互联网已经发展到各个领域,而对教育行业而言,高校教育则是重中之重,也是新时代人才培养的关键所在。高校对互联网+的显著成果比较有代表性的则是“数字校园”,将高校教育与互联网相结合,节省工作时间,提高工作效率。在建设“数字校园”的过程中,广大高校中的各个部门纷纷推出了相对应的管理系统。教务部推出了教师管理系统,人事部推出了教职工信息管理系统,学生部推出了学生管理系统,这些系统各自独立,也有着各自不同的数据库。
在多部门多系统的情况下,用户拥有多个用户名,需要设置多个密码,这样不仅影响了用户体验,还存在很大的安全问题。多身份验证在加重系统负担的同时还会提高系统维护费用,影响用户的工作效率。为了解决这些问题,一个统一身份验证必不可少。
2 什么是统一身份认证
2.1统一身份认证简介
身份认证,从本意上来看,就是对身份按照一定的标准和规定来进行审核的一种活动。从安全性方面来看,身份认证大致分为三类,从低级的密码认证到中级的密码+信息认证,再到高一级的多重加密算法语句验证。从应用程序的角度来看,身份认证和权限设定都是一体共存的,当身份认证顺利完成之后,系统权限也随之授予。而在一个工作体系当中,理应有一个统一的身份认证系统来统筹各个系统的身份认证,以此来提高系统的安全性和工作效率。当然,为了系统的安全性考虑,授权控制则由各个系统据实际情况而一一确定。
2.2统一身份认证体系简介
在如今软件系统的数量呈爆发式增长的情况下,当系统数量达到一定规模后都会出现“多对多”的问题,即多系统多身份,多用户名多密码。当用户系统使用数量达到一定程度之后,用户记忆这些系统的用户名和密码就会略显麻烦,而且多个系统使用同样的用户名和密码又会降低安全性。事实上,这些问题并非是系统开发带来的问题,而是缺少一个统一的用户信息管理体系。
SSO——统一身份认证体系(单点登录),它能很好地处理好这个问题,经一个应用为媒介,登录后就能够用一套用户名和密码来实现多个应用程序、系统的身份认证,将多系统多用户的问题进行妥善的处理。在统一身份认证体系之下,用户只需要进行一次登录就可以将登录信息映射到整个体系下的所有系统中,它简单实用的特性让它成为目前环境下统一身份认证的一个较为简单也较为流行的处理方法。在完善的SSO体系中一般会有三个必有的对象,第一个对象是多个用户身份,第二个对象是多个系统和多个验证,最关键的第三个对象就是SSO认证中心。SSO体系的核心是将所有的身份认证都在SSO认证中心进行,然后调用通用的方法类来判断当前用户是否合法。SSO体系在解决了用户多身份验证问题的同时,降低了管理成本,提高了系统安全性,还大大减轻了系统开发人员和维护人员的工作量。
3 统一身份认证的几种实现方案
3.1常用身份认证体系
3.1.1统一身份认证之Kerberos
Kerberos是一个采用共享密钥的方式来实现SSO的一款第三方协议,它能在网络安全不能保证的情况下实现客户端和服务器端的通信服务。Kerberos的一大优势是可以在不保证网络安全的前提下正常工作,利用它双向认证和时间戳特性来保证Server和Client的正确运行。在实际的应有场景中通常有三个角色,即需要访问服务的Client,提供服务的Application Server,以及提供安全认证的第三方Kerberos服务器KDC(Key Distribution Center)。它们彼此之间的认证、通信的数据流如下图所示。
Kerberos的优势在于身份认证方式更安全、更具弹性、更有效率,但在Kerberos 服务与服务器连接结束之前,其余服务都会连接不上服务器。另外,Kerberos对于客户端的时钟还会有严格的要求,如若客户端时钟有误,那么将会影响到Kerberos的认证,导致其不能成功。并且,Kerberos的相关协议没能做到标准化,在服务器实现工具中会有一些不同。从安全性方面来讲,Kerberos的所有用户信息都存储在它的中心服务器之中,当服务器出现安全问题时,所有用户的密钥都会出现问题。
3.1.2统一身份认证之CAS
CAS中央认证服务,它是一个应用面非常广的一个单点登录系统,具有独立于平台的,易于理解,支持代理功能。CAS由CAS服务器和CAS客户端构成,它的单点登录认证就是一个向服务器发送请求,服务器在SSL安全协议下经过检查再响应请求跳转到身份认证页面的一个过程。很多时候,我们可以用用户去游乐场的一个游玩全程来解释CAS的工作原理。在门口,门卫检查用户的门票,这代表用户名和密码,当用户通过检查之后,就可以领到一张凭证,那就是登录票据(TGC)。这个票据便是用户合法性的证明,当用户要求坐一下过山车的时候,过山车的管理员(Client)就会要检查用户的过山车票据(ST),这时用户可以通过登录票据(TGC)来向售票处(TGS)拿一张关于过山车的票据(ST),这样用户就可以享受过山车的乐趣了。同理,用户想享受另外的服务,那么就必须去相应的售票机(TGS)通过登录凭据(TGC)来一一领取。当用户离开游乐场,那么用户手中的登录票据(TGC)也就作废了,CAS也就完成了一次完整的工作流程,它的工作流程如下图所示。
从体系结构上来看,CAS分为Server 和 Client 两个部分。Server和Client分工明确,前者在独立部署之后将给用户发送两个重要的票据,以此来完成用户的身份评定。而后者则是将用户受保护的资源进行安全性保护,对阅览调用权限进行逻辑判定,向前者再次发生认证邀请。准确地来说,它以Filter 方式保护受保护的资源。对于访问受保护资源的每个 Web 访问请求,Client 会分析该请求的 Http 请求中是否包含ServiceTicket(服务票据,由 Server发出用于标识目标服务),Client与受保护的客户端应用部署在一起。简单来说,CAS是一个支持多种认证机制,提供高可用性且适用于多平台的统一身份认证解决方案。
3.2章末总结
综上所述,认证都是对用户的真实身份与其所称身份是否是一致的一个过程,而在认证过程中会有认证的凭证和一个认证的方式,认证的凭据具有唯一性,举例(id,身份证,动态口令),认证的方式为单向验证,主要由服务器来承担验证的功能。相比较Kerberos和Shiro而言,CAS显得更为优秀。
4 CAS的开发成本
4.1软件成本
CAS是一款开源项目,与大型企业所使用专有软件相比较,使用CAS的预算更低。作为一款开源项目,基本软件包是免费的,即使有付费的附加功能和服务,花费仍然会较少。也可以对其进行二次开发,这对预算比较敏感的各大高校而言,大有裨益。而且CAS项目免去了除了购买软件的成本以外,商业软件还会产生诸如防病毒、支持、继续升级以及相关的锁定成本等费用,很多成本是你没有意识到的。而CAS呢,当然获得更好的质量,你只要支付商业软件成本的一小部分而已。
4.2时间成本
CAS作为一个开源项目,它已經有比较成熟的代码结构,项目开发时间相对较低,比较容易上手,所以相对而言实现CAS项目的功能就会比较简单,这就可以让开发人员和用户之间有更多的时间进行深度沟通,最终导致CAS的开发周期较短,成本大大降低。
4.3硬件成本
从项目运行平台来看,CAS适用于Linux这个免费平台,对硬件需求相对较低,如果本项目是使用商业软件开发,那样就不得不停地去更新软件和硬件。利用CAS原理来开发这个项目,因为它开源特性和适用于免费平台,所以使用CAS项目来完善统一身份认证体系对硬件的要求也就没有商业软件对硬件的要求高,那就意味着你可以允许你有点过时的硬件之上,这对许多高校来说,都是一张降低开发成本的王牌。
4.4优越性
首先,CAS运行的Linux平台本身就很安全,而且CAS只提供ticket,其本身不存储任何用户的信息,这就对用户的安全起到了一定的保护作用。其次,CAS整体是b/s结构,支持多平台开发,且无需客户端,免去了更新客户端的麻烦,CAS使用Ticket来实现支持的认证协议,服务端验证成功后会给客户端一个ticket(重定向的方式),客户端根据ticket从服务端获取用户名等信息,然后客户端将用户信息放到自己session就可以了。
5 高校的统一身份认证体系建设需求
面对各高校的多应用系统的现状来看,一个统一的身份认证体系已经必不可少。单从部门的角度出发,多系统并存似乎问题不大,但从学校全局出发,这样各自发展会随着时间的流逝而出现各种各样的问题。当管理系统多起来后,从财务部门来看,从前期软件开发到后续系统维护,多系统就意味着多开支,这无疑需要学校多付出一大笔经费开支,这于各高校提倡的低成本预算不符;以教师的视角来看,学校的硬件设备性能可能参差不齐,多系统会致使运行并非很流畅的电脑上下载更多的客户端,并设置多套用户名和密码,往往处理一件事就需要登录操作很多个不同的系统,让沐浴在信息化时代的春风下的教师们吹得并非那么舒心。从安全性的角度来看,各个系统的数据库也会因为各个系统部分功能模块重叠,进而使各个系统数据库都会存储教师和学生的数据,这就使信息泄露的可能性大大提升。针对这些各方面存在的问题,实现多个系统间统一身份认证和资源共享的需求已经迫在眉睫。
6 结束语
在互联网+时代的环境下,要想奋勇争先,先人一步,务必要跟紧时代潮流,善于利用互联网工具提高工作效率,减少人力开支,使用各式各样的应用系统来帮助我们减轻工作的压力。在高等院校之中,如今高校各个部门也大都各自开发了各个部门的应用系统,而多系统多身份问题也摆到人们面前,那么一个统一的身份认证体系必不可少。综上而言,SSO统一身份认证体系中,CAS中央认证服务相比Kerberos这个 Java框架而言各方面的成本显然更加低廉,使用CAS解决方案来解决高校的统一身份认证问题显然更加合情合理。当然,项目建设还存在一些问题,认证系统与子系统的接口问题难以解决,后续开发就需要子系统开发者提供认证系统的接口了。在统一身份认证体系建立成功后,必将提高多个系统的工作效率,也能为用户提供更好更优的用户体验。