一种基于CAS的权限认证方法、装置及系统与流程

文档序号:11253972阅读:1379来源:国知局
一种基于CAS的权限认证方法、装置及系统与流程

本发明涉及中央认证服务centralauthenticationservicecas技术,尤指一种基于cas的权限认证方法、装置及系统。



背景技术:

随着互联网业务的发展,web应用系统越来越多,除了需要支持单点登录功能外,还需要对用户进行权限控制。单点登录(singlesign-on,简称sso)是一种统一认证和授权机制,是指访问同一服务器不同应用系统中的受保护资源的同一用户,只需要登录一次通过一个应用系统中的安全认证后,再访问其他应用系统中的受保护资源时,不再需要重新登录验证,即用户只需要登录一次就可以访问所有相互信任的应用系统,而不用重复登录。目前单点登录领域常用的技术是cas(centralauthenticationservice)技术,cas是yale大学发起的一个企业级的开源项目,旨在为web应用系统提供一种可靠的单点登录方法,但是cas技术并不提供对登录用户的权限进行认证。



技术实现要素:

针对上述技术问题,本发明提供了一种基于cas的权限控制方法、装置及系统,能够解决现有cas服务中不进行用户权限认证,导致无法通过控制用户权限达到控制用户访问的技术问题。

为了达到本发明目的,本发明提供了一种基于中央认证服务centralauthenticationservicecas的权限认证方法,包括:

cas服务端根据cas客户端发送来的访问请求进行用户登录认证,所述访问请求包括用户名和密码;

当用户处于已登录状态时,所述cas服务端进行用户权限认证。

进一步地,所述cas服务端进行用户权限认证,包括:所述cas服务端根据自身保存的用户权限认证信息判断用户是否有权限访问所述cas客户端对应的应用系统,所述用户权限认证信息包括以下至少之一:与所述用户名对应的有权限访问的应用系统的系统名称及其链接地址,以及用户有权限访问的应用系统的资源。

进一步地,所述cas服务端根据自身保存的用户权限认证信息判断用户是否有权限访问所述cas客户端对应的应用系统,包括:

当所述访问请求是请求访问某一应用系统时,所述cas服务端根据自身保存的用户权限认证信息判断用户是否具有访问所述某一应用系统的资源的权限,如果有权限,则用户权限认证通过。

进一步地,所述cas服务端根据自身保存的用户权限认证信息判断用户是否有权限访问所述cas客户端对应的应用系统,包括:当所述访问请求是请求登录所述cas客户端对应的应用系统的访问请求时,所述cas服务端根据自身保存的用户权限认证信息判断用户是否具有访问所述cas客户端对应的应用系统的资源的权限,如果有权限,则用户权限认证通过。

进一步地,该方法还包括:

当用户权限认证通过时,所述cas服务端生成认证通过消息,该认证通过消息用于通知所述cas客户端用户登录成功和权限认证成功。

进一步地,该方法还包括:

当用户权限认证通过时,所述cas服务端生成认证通过消息,该认证通过消息用于通知所述cas客户端用户登录成功和权限认证成功,以及用户所有有权限登录的应用系统的系统名称及其链接地址

进一步地,该方法还包括:

所述cas客户端根据用户选择的链接地址进入对应的应用系统。

为了达到本发明目的,本发明还提供了一种基于cas的权限认证装置,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上文所述的权限认证方法的步骤。

为了达到本发明目的,本发明还提供了一种基于cas的权限认证系统,包括:

cas客户端和cas服务端;

所述cas客户端,向所述cas服务端发送访问请求;

所述cas服务端根据所述访问请求进行用户登录认证;

所述cas服务端,还用于当用户处于已登录状态时,进行用户权限认证。

为了达到本发明目的,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有权限认证程序,所述权限认证程序被处理器执行时实现上文所述的权限认证方法的步骤。

本发明提供了一种基于中央认证服务centralauthenticationservicecas的权限认证方法、装置及系统,该权限认证方法包括:cas服务端根据cas客户端发送来的访问请求进行用户登录认证,所述访问请求包括用户名和密码;当用户处于已登录状态时,cas服务端进行用户权限认证。利用本发明方法不仅利用cas服务解决了单点登录的问题,同时解决了用户权限认证,流程简单;进一步的用户只要记住一个应用系统域名即可登录所有有权限的系统,便于系统权限管理和用户访问操作。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为相关技术中单点登录基本验证过程示意图;

图2为本发明实施例提供的权限认证方法流程示意图;

图3为本发明实施例提供的权限认证系统架构示意图;

图4为本发明另一实施例提供的权限认证方法流程示意图;

图5为本发明另一实施例提供的权限认证方法流程示意图;

图6为本发明实施例提供的权限认证装置结构示意图。

具体实施方式

下面将结合附图及实施例对本发明的技术方案进行更详细的说明。

图1为相关技术中单点登录基本验证过程示意图。如图1所示,现有cas(centralauthenticationservice)的基本验证过程包括:

步骤1、用户通过web浏览器向cas客户端发起http访问请求,以访问web应用系统;

cas客户端与受保护的web应用系统部署在一起,以filter方式保护web应用系统的受保护资源,过滤从cas客户端得web浏览器过来的每一个web请求,

步骤2、cas客户端分析http访问请求中是否包含请求服务凭证serviceticket,如果没有,则说明该用户是没有经过认证的,属于首次登录,于是cas客户端会重定向用户访问请求到cas服务端,并传递service(要访问的目的资源地址)给cas服务端,执行步骤3;如果http访问请求中已经包含了ticket信息,则说明该用户已经登录,可以直接访问部署的web应用系统;

步骤3、用户进行登录操作,输入认证信息,例如用户名和密码,进行用户认证;

步骤4、如果用户提供了正确的认证信息,cas服务端随机产生一个相当长度、唯一、不可伪造的serviceticket,并缓存以待将来验证,并且重定向用户到service所在地址(附带刚才产生的serviceticket),并为web浏览器设置一个ticketgrantedcookie(tgc);

步骤5、cas客户端在拿到service和新产生的ticket过后,与cas服务端进行身份核实;

步骤6、cas服务端返回用户信息,完成验证,以确保serviceticket的合法性。

根据本发明的一个实施例,提供了一种基于cas的权限认证方法,如图2所示,该方法包括:

步骤201,cas服务端根据cas客户端发送来的访问请求进行用户登录认证,所述访问请求包括用户名和密码;

用户使用相关应用系统就需要登录,通常使用的用户登录认证就是验证用户名、密码、验证码等身份信息是否正确。系统验证了用户身份信息的合法性后,用户就可以访问应用系统的资源。但是不同的用户可以使用不同的资源,甚至不同的用户界面,这就涉及到用户权限认证。用户权限可以提前去应用系统申请相关授权和权限等级。用户即使已经登录系统,也必须具备资源的访问权限才可以访问资源。应用系统可以为不同的用户分配不同的权限,设定不同的权限等级,比如管理员权限可以访问和编辑应用系统的全部资源,普通用户可以访问和编辑应用系统的部分资源等。简单举例来说,用户登录认证就是验证用户是否存在,密码是否正确;用户登录之后,就要看用户拥有什么样的权限,可以首先给不同的用户分配不同的角色,比如管理员、高级用户等,然后给不同的用户授权不同的资源,这样不同的用户就有了不同的权限,可以使用或者可看到的资源会因人因角色而异。

步骤202,当用户处于已登录状态时,cas服务端进行用户权限认证。

进一步地,所述cas服务端进行用户权限认证,包括:所述cas服务端根据自身保存的用户权限认证信息判断用户是否有权限访问所述cas客户端对应的应用系统,所述用户权限认证信息包括以下至少之一:与所述用户名对应的有权限访问的应用系统的系统名称及其链接地址,以及用户有权限访问的应用系统的资源。

进一步地,所述cas服务端根据自身保存的用户权限认证信息判断用户是否有权限访问所述cas客户端对应的应用系统,,包括:

当所述访问请求是请求访问某一应用系统时,所述cas服务端根据自身保存的用户权限认证信息判断用户是否具有访问所述某一应用系统的资源的权限,如果有权限,则用户权限认证通过。

进一步地,所述cas服务端根据自身保存的用户权限认证信息判断用户是否有权限访问所述cas客户端对应的应用系统,包括:当所述访问请求是请求登录所述cas客户端对应的应用系统的访问请求时,所述cas服务端根据自身保存的用户权限认证信息判断用户是否具有访问所述cas客户端对应的应用系统的资源的权限,如果有权限,则用户权限认证通过。

进一步地,该方法还包括:

当用户权限认证通过时,所述cas服务端生成认证通过消息,该认证通过消息用于通知所述cas客户端用户登录成功和权限认证成功。

进一步地,该方法还包括:

当用户权限认证通过时,所述cas服务端生成认证通过消息,该认证通过消息用于通知所述cas客户端用户登录成功和权限认证成功,以及用户所有有权限登录的应用系统的系统名称及其链接地址。

进一步地,该方法还包括:

所述cas客户端根据用户选择的链接地址进入对应的应用系统。

利用本发明方法不仅利用cas服务解决了单点登录的问题,同时解决了用户权限认证,流程简单;进一步地,用户只要记住一个应用系统域名即可登录所有有权限的应用系统,便于系统管理和用户操作。

实施例一

图3为本发明实施例一提供的权限认证系统架构示意图;如图3所示:

cas客户端与多个web应用系统部署在一起,以filter方式保护多个web应用系统的受保护资源。用户可以通过cas客户端的web浏览器访问相应的web应用系统,用户在第一次登录时,cas服务端产生一个凭证ticket,分别保存在服务端session及客户端cookie中,用户在后续每次登录时,客户端会自动将ticket数据带到服务端进行校验,校验成功,自动登录。对于ticket是否会被伪造而带来安全问题,cas框架已经处理好了,因为对接系统都需要采用https安全协议进行访问,因此不必担心ticket被伪造。例如,用户第一次登录cas客户端或者访问一个web应用系统时,例如web应用系统1时,会自动跳到登录页面,登录成功后进入cas客户端用户界面或者进入web应用系统1。只要浏览器不关闭或不清除浏览器缓存(cookie信息),当用户下次再登录cas客户端或者访问另一web应用系统,例如web应用系统2时,会自动跳过登录界面而直接进入cas客户端用户界面或者web应用系统2,方便快捷。

cas服务端包括cas认证服务器和cas后台管理系统。

cas后台管理系统保存有用户登录认证信息和用户权限认证信息,用户登录认证信息包括以下至少之一:与用户id对应的用户名、登录密码、凭证ticket等,用户权限认证信息包括以下至少之一:与用户id对应的所有有权限登录的web应用系统的系统名称及其链接地址、以及其他权限信息,其他权限信息包括用户角色,每个角色对应的权限信息、有权限访问的应用系统的资源等信息,比如是管理员权限还是普通用户权限。用户登录认证信息和用户权限认证信息可以采取对照关系表的形式保存。cas后台管理系统的管理员可以对上述对照关系表进行编辑,也可以根据cas授权系统的用户开户信息自动生成。cas授权系统用于为用户开户,分配用户名id以及登录cas客户端的用户名、密码、允许访问哪些web应用系统、以及权限等级等开户信息,并将开户信息保存到cas后台管理系统。

cas认证服务器与cas客户端和cas后台管理系统交互,根据用户输入的认证信息,调用cas后台管理系统保存的用户登录认证信息和用户权限认证信息,进行用户登录认证和用户权限认证,当用户登录成功且权限认证通过后,向cas客户端返回认证通过消息,完成验证。该认证通过消息包括以下至少之一:登录成功信息、认证成功消息,还可以包括与用户名id对应的所有有权限登录的web应用系统的系统名称及其对应的url链接、以及其他权限信息。

实施例二

如图4所示,本发明实施例提供的一种权限认证方法,包括:

步骤401,cas客户端接收用户通过web浏览器发送的访问请求;

该访问请求可以是请求访问某一web应用系统,例如直接在web浏览器地址中输入某一web应用系统地址,也可以是请求访问所述cas客户端对应的应用系统的访问请求。

步骤402,cas客户端直接到cas服务端进行用户登录认证,cas服务端判断用户是否已经登录;如果用户是第一次登录则执行如图1所示的现有技术中的单点登录流程中的步骤1-5然后执行步骤403,如果用户处于已登录状态则直接执行步骤403;

步骤403,当用户处于已登录状态时,cas服务端进行用户权限认证;

用户权限认证具体包括:

当用户访问请求是请求访问某一web应用系统时,cas服务端根据自身保存的用户权限认证信息判断用户是否具有访问上述某一web应用系统的资源的权限,如果有权限,则用户认证通过,则用户权限认证通过。当用户权限认证通过时,所述cas服务端生成认证通过消息,该认证通过消息用于通知所述cas客户端用户登录成功和权限认证成功。

然后执行步骤404和步骤405;

当所述访问请求是请求登录所述cas客户端对应的应用系统的访问请求时,所述cas服务端根据自身保存的用户权限认证信息判断用户是否具有访问所述cas客户端对应的应用系统的资源的权限,如果有权限,则用户权限认证通过。当用户权限认证通过时,所述cas服务端生成认证通过消息,该认证通过消息用于通知所述cas客户端用户登录成功和权限认证成功,以及用户所有有权限登录的应用系统的系统名称及其链接地址

然后执行步骤404、步骤406和步骤407;

步骤404,cas服务端向cas客户端发送所述认证通过消息;

步骤405,cas客户端根据所述认证通过消息,直接进入请求访问的web应用系统;

步骤406,cas客户端根据认证通过消息,在cas客户端用户界面展示所有有权限登录的web应用系统的系统名称及其链接地址;

步骤407,根据用户选择的url链接地址进入选择的web应用系统。

通过上述权限认证方法,用户只需要记住一个cas客户端的应用系统域名即可,而不再需要记住所有有权限登录的应用系统的域名,真正做到用户只要记住一个系统域名即可登录所有有权限的系统。例如很多系统的管理人员具有多个应用系统的访问权限,采用上述权限认证方法可以实现用户只需登录内部账号系统(相当于cas客户端)就可以列出该用户能够访问的所有应用系统,直接点击就能进入,方便快捷。

实施例三

cas开源的核心功能是实现多个应用系统的单点登录,即用户第一次登录时会生成一个固定ticket,该ticket是登录其他应用系统的凭证,但cas并没有提供对登录用户的权限控制,本发明技术方案实现了对用户的权限控制,而且用户只需要登录权限认证系统就知道自己拥有访问权限的应用系统,直接点击相应应用系统的链接就能进入该应用系统。对于单点登录的权限控制的实现。当用户登录后,首先会校验用户名及密码,通过后还需要继续校验该用户访问应用系统的权限,如果没有权限,不会产生ticket,继续退回到登录界面,并提示该用户没有访问权限。如果用户在有权限的应用系统已经登录,然后再去登录没权限的应用系统,此时ticket已经产生,用户仍处于登录状态,但带着ticket访问其他应用系统的时候,校验完ticket,还需要继续校验用户的权限,没有权限会跳转到提示没有权限的页面。

图5为本发明另一实施例提供的权限认证方法流程示意图,如图5所示,在这个过程中,需要在原单点登录流程的基础上添加用户权限控制的流程,首先需要建立用户与权限的关系,可以采取对照表方式。因此可以直接在cas服务器端内直接设置一个服务器,该服务器与原单点登录cas认证服务器连接,原单点登录cas认证服务器增加用户权限认证功能,也可以在外部单独设置一个服务器与cas服务器端连接,这个服务器保存用户与权限的对照关系表,对照关系表可以由整个内部账号系统管理员进行编辑,该对照关系表包括用户名id、密码、角色、权限等级、有权限访问的应用系统的系统名称及其链接地址,以及用户有权限访问的应用系统的资源等信息。下面结合图5以某企业的项目管理系统(相当于由cas客户端及联合部署的多个应用系统以及cas服务端组成)为例,进行说明:

用户点击登录该项目管理系统,然后直接跳转到cas服务器进行登录验证;

项目管理系统判断用户是否已经登录,当判断该用户已经登录,则继续判断该用户是否有访问该项目管理系统的资源的权限,如果没有权限则给出相应提示信息给用户,并停留在登录成功界面,如果有权限则跳转回项目管理系统,此时已经成功登录;

当判断该用户没有登录,则显示统一登录界面,用户输入用户名、密码,点击登录,如果用户名和密码正确并且有访问该项目管理系统的相应资源的权限,则跳转回项目管理系统,此时已经成功登录,如果用户名和密码不正确或者没有访问该项目管理系统的资源的权限则给出相应提示信息,提示用户用户名和密码不正确或者没有访问该项目管理系统的权限,回转到统一登录界面重新输入用户名和密码,或者申请新的权限。

跳转回项目管理系统成功登录后,还可以在项目管理系统的界面上显示用户有权限访问的多个子系统的系统名称和url链接,用户可以点击链接直接进入具体的子系统。

根据本发明的一个实施例,提供了一种基于cas的权限认证装置,如图6所示,该装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上文描述的基于cas的权限认证方法。

根据本发明的又一实施例,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上文描述的基于cas的权限认证方法的步骤。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1