本发明涉及信息安全技术领域,具体地涉及一种校园统一认证和单点登录的方法和系统。
背景技术:
随着信息化时代的高速发展,各大高校的智慧校园工程都在持续推进,于是基于校园的应用系统层出不穷,对于不同的网站应用需要学生和教师还是需要记忆大量的账户和密码,操作十分的不便,而且数据安全性也得不到保证。
因此,提供一种在使用过程中可以提供了开放的授权方式的认证,保障了系统的数据安全,实现了单点登录的校园统一认证和单点登录的方法和系统是本发明亟需解决的问题。
技术实现要素:
针对上述技术问题,本发明目的是克服现有技术中对于不同的网站应用需要学生和教师还是需要记忆大量的账户和密码,操作十分的不便,而且数据安全性也得不到保证的问题,从而提供一种在使用过程中可以提供了开放的授权方式的认证,保障了系统的数据安全,实现了单点登录的校园统一认证和单点登录的方法和系统。
为了实现上述目的,本发明实施例提供一种校园统一认证和单点登录的方法,所述方法包括:
获取用户登录信息;
对所述用户登录信息进行首次认证;
在所述首次认证通过的情况下,对用户进行授权;
对所述用户登录信息缓存。
优选地,所述授权采用oauth协议。
优选地,所述授权包括以下步骤:
应用程序向服务提供方申请请求令牌,服务提供方验证通过后将请求令牌返回给应用程序;
应用程序使用请求令牌让浏览器重定向到服务提供方进行登录验证和授权;
利用所述授权令牌向服务提供方换取atok;
利用所述atok作为令牌访问受保护资源。
优选地,所述首次认证采用中央认证服务(cas)。
优选地,所述对所述用户登录信息缓存包括以下步骤:
创建文本文件;
在所述文本文件中存储所述用户登录信息;其中,
所述文本文件为加密状态。
本发明还提供了一种校园统一认证和单点登录的系统,所述系统包括:
信息获取模块,用于获取用户登录信息;
认证模块,用于对所述用户登录信息进行首次认证;
授权模块,用于在所述首次认证通过的情况下,对用户进行授权;
缓存模块,用于对登录成功的所述用户登录信息进行缓存。
优选地,所述授权模块oauth协议。
优选地,所述认证模块采用中央认证服务(cas)
优选地,所述缓存模块中缓存的所述用户登录信息为加密状态。
本发明还提供了一种机器可读存储介质,其上存储有程序,该程序被执行本申请上述任一项的所述的校园统一认证和单点登录的方法。
通过上述技术方案,本发明提供的校园统一认证和单点登录的方法的使用时的有益效果为:可以提供了开放的授权方式的认证,保障了系统的数据安全,实现了单点登录;克服现有技术中对于不同的网站应用需要学生和教师还是需要记忆大量的账户和密码,操作十分的不便,而且数据安全性也得不到保证的问题。
本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:
图1是本发明的一种优选的实施方式中提供的校园统一认证和单点登录的方法的流程图;
图2是本发明的一种优选的实施方式中提供的校园统一认证和单点登录系统的组成框图。
具体实施方式
以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
方法实施例
本发明提供了一种校园统一认证和单点登录的方法,所述方法包括:
获取用户登录信息;
对所述用户登录信息进行首次认证;
在所述首次认证通过的情况下,对用户进行授权;
对所述用户登录信息缓存。
在本发明的一种优选的实施方式中,所述授权采用oauth协议。
在本发明的一种优选的实施方式中,所述授权包括以下步骤:
应用程序向服务提供方申请请求令牌,服务提供方验证通过后将请求令牌返回给应用程序;
应用程序使用请求令牌让浏览器重定向到服务提供方进行登录验证和授权;
利用所述授权令牌向服务提供方换取atok;
利用所述atok作为令牌访问受保护资源。
在本发明的一种优选的实施方式中,所述首次认证采用中央认证服务(cas)。
在本发明的一种优选的实施方式中,所述对所述用户登录信息缓存包括以下步骤:
创建文本文件;
在所述文本文件中存储所述用户登录信息;其中,
所述文本文件为加密状态。
以下具体说明本发明提供的校园统一认证和单点登录的方法的原理:
中央认证服务(cas)是耶鲁大学发起的一个实现sso的开源项目,为应用系统提供可靠的认证服务。在cas中有三个部分组成,分别是用户、cas认证中心以及应用系统,从这三个部分就可以很容易看出,cas非常适合引入到智慧校园统一认证平台中。
首先,cas分为服务端和客户端。服务端就是单点登录服务器,客户端通常就是各种应用程序。
某个应用程序首先要发起第一次认证,登陆的时候直接转到单点登陆服务器的登陆界面。用户在单点登录服务器的登录界面中,输入学号和密码。
单点服务器会对学号和密码进行认证,认证通过之后,单点登录服务器和应用程序进行一个授权机制,即后面我们要介绍的oauth协议。
授权完成后,cas把页面重定向回到应用程序,此时应用程序就成功的完成了登陆功能。然后单点登录服务器会在客户端创建一个cookie,这个cookie是一个加密的,其中保存了用户登录的相关信息。
此时用户进入其他的应用系统,则安装在这些应用程序的单点登录客户端首先仍然会重定向到cas服务器。不过此时cas服务器会自动寻找cookie,根据cookie中保存的信息进行登录,认证成功后cas重定向该应用系统从而实现一次登陆,全部访问的思想。
oauth是一个授权框架,它为用户资源的授权提供一种安全、简单并且开放的解决方案,它可以使第三方应用程序或客户端获得对http服务上用户帐户信息的有限访问权限。oauth通过将用户身份验证委派给托管用户帐户的服务以及授权客户端访问用户帐户进行工作。综上,oauth可以为智慧校园应用程序提供授权流程;其中,
oauth授权流程如下:
第一步,应用程序向服务提供方申请请求令牌,服务提供方验证通过后将请求令牌返回给应用程序。由于这一步涉及到账户安全,所以这个步骤对用户透明。
第二步,应用程序使用请求令牌让浏览器重定向到服务提供方进行登录验证和授权。服务提供方校验请求令牌,将第三方的资料回显给用户,用户选择同意或拒绝此次授权。如果用户同意授权,发放该授权令牌并将用户引导到当前应用的注册地址。这个步骤从重定向开始到引导回注册地址之前,应用方并不参与用户身份校验和授权过程,确保第三方不可获得用户的真实帐号密码。
第三步,用该授权令牌向服务提供方换取atok。第三方应用需在服务端发起请求,用帐号密码和上一步的令牌换取atok。如果前两步分别是让服务提供方认证应用和用户,那这步就是用户和服务提供方再次认证第三方应用。因为用户浏览器将第二步的结果重定向到第三步。
第四步,用atok作为令牌访问受保护资源。很多时候,权限是有多种类别的,atok包含了某个用户对某个应用的授权凭据,准确的说,atok对应用户授权时所赋予的一系列权限的集合。所以在这一步,除了校验atok的合法性之外,服务提供方还需对该atok是否拥有足够的权限执行被保护操作进行判断。
统一认证系统采用oauth2.0协议作为第三方应用进行授权支持,系统采用cas作为协议当中oauthprovider来完成ticket的发放和管理。下面从应用请求和相关控制器的实现来说明cas中的oauth实现。
cas认证服务作为oauth中的服务端,主要负责以下几个任务:请求处理、ticket管理和第三方应用信息管理。第三方应用的基本信息使用非关系型数据库存储,由系统的客户端进行维护工作;cas认证服务中有关oauth的操作借助servlet实现,系统通过拦截应用请求,调用相关的控制器进行与请求相关的业务操作来实现协议的整个流程;授权相关的ticket则使用单点登录中的方法来实现。serviceticket的id作为authenticationcode,
tickergrantingticker的id作为accesstoken值,直接利用原有结构,降低系统的耦合度。
综上所述,本发明提供的校园统一认证和单点登录的方法可以提供了开放的授权方式的认证,保障了系统的数据安全,实现了单点登录;克服现有技术中对于不同的网站应用需要学生和教师还是需要记忆大量的账户和密码,操作十分的不便,而且数据安全性也得不到保证的问题。
装置实施例
如图2所示,本发明还提供了一种校园统一认证和单点登录的系统,其特征在于,所述系统包括:
信息获取模块1,用于获取用户登录信息;
认证模块2,用于对所述用户登录信息进行首次认证;
授权模块3,用于在所述首次认证通过的情况下,对用户进行授权;
缓存模块4,用于对登录成功的所述用户登录信息进行缓存。
在本发明的一种优选的实施方式中,所述授权模块oauth协议。
在本发明的一种优选的实施方式中,所述认证模块3采用中央认证服务(cas)
在本发明的一种优选的实施方式中,所述缓存模块4中缓存的所述用户登录信息为加密状态。
在上述方案中,第三方应用根据场景的不同,开放授权具体实现的结构和采用的技术可能也有所不同,但是oauth2.0的认证流程是一样的,都需要按照上文提到的三个请求的顺序依次向服务端发送请求实现授权认证流程,获取所需的accesstoken。无论是那种应用都需要在应用的配置文件中配置以下几种属性:
clientid:第三方应用在统一认证系统的数据库中注册的记录id;
secret:第三方应用的密钥值;
authorize_url:应用系统申请authenticationcode所需访问的地址;
access_token_url:应用系统通过code换取accesstoken的请求地址;
profile_url:用户信息请求地址。
单点登录是智慧校园建设的一个很重要的部分,学生和教师不仅可以不必记忆大量的账户和密码,统一使用学号和职工号即可,而且还可以做到一次登录,全部访问。并且在本次改进之后,用户信息资源的权限管理和安全得到了保障。本次针对cas改进的智慧校园淡点登陆方法主要有以下几点优势:
开放:cas和oauth都属于开源的项目,任何软件开发者都可以很方便使用。
安全:cas的单点登录保障了客户端的用户资源的安全,oauth则是保障服务端的用户资源的安全。
简单:cas和oauth的技术上手简单,使用方便,非常易于理解与使用。
本发明实施例还提供一种机器可读存储介质,其上存储有程序,该程序被执行时实现上文所述的校园统一认证和单点登录的方法。
以上结合附图详细描述了本发明实施例的可选实施方式,但是,本发明实施例并不限于上述实施方式中的具体细节,在本发明实施例的技术构思范围内,可以对本发明实施例的技术方案进行多种简单变型,这些简单变型均属于本发明实施例的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施例对各种可能的组合方式不再另行说明。
本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得单片机、芯片或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
此外,本发明实施例的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施例的思想,其同样应当视为本发明实施例所公开的内容。