基于单点技术的统一认证方法及装置与流程

文档序号:17355892发布日期:2019-04-09 21:39阅读:198来源:国知局
基于单点技术的统一认证方法及装置与流程

本发明涉及到用户信息安全领域,特别是涉及到一种基于单点技术的统一认证方法及装置。



背景技术:

cas作为一个web应用系统的单点登录框架,能简单轻便的实现多个web应用的单点登录功能,但存在以下几个问题:

1、不支持各应用系统个性化的登录页面:cas提供统一的登录页面,但是多个不相关的系统做单点时,统一登录页面如何定义展示元素?实际生产中,一个用户会同时拥有多个应用系统的权限,如服务开通系统、crm系统、智能提速系统等,用户想要在打开服开系统地址时展示服务开通系统个性化的登录页面,以此类推;

2、票据存储于服务器内存,不能实现分布式部署,可靠性不高;

3、接入应用注册采用文件管理,存放在cas服务器,不便于分布式部署时各个节点间的数据同步;

4、不能有效控制用户单点登录到应用系统的权限,即用户只要知道应用系统地址,便可单点登录该应用系统;

5、无统一用户管理、权限管理、资源管理以及角色管理,对系统的安全稽核与审查带来不便。



技术实现要素:

为了解决上述现有技术的缺陷,本发明的目的是提供一种基于单点技术的统一认证方法及装置。

为达到上述目的,本发明的技术方案是:

一种基于单点技术的统一认证方法,包括以下步骤,

建立redis服务端,在用户成功认证后,把tgt与st都存放在redis服务端;

用户单点认证时,cas服务端从cookie中获取到tgtid,以tgtid为key从redis服务端中获取tgt;

cas服务端根据tgt颁发st并将st返回给客户端,客户端携带st访问cas服务端验证用户,并登录。

进一步地,所述根据tgt颁发st并将st返回给客户端,客户端携带st访问cas服务端验证用户,并登录步骤,包括,

cas服务端检查接收到的报文,判断客户端是否使用个性化登录页面登录;

若是,则通过个性化登录的流程分支进行用户登录,并检测用户是否登录成功;

若未登录成功,重定向到个性化登录页面,进行用户登录操作;

若登录成功,则重定到应用系统首页。

进一步地,在所述登录成功,则重定到应用系统首页步骤之后,包括,

客户端获取该用户的相关信息。

进一步地,所述获取该用户的相关信息,发送到客户端步骤,包括以下步骤的一种或多种,

cas服务端通过st生成一个断言assertion,客户端通过断言assertion中的凭证对象的属性从cas服务端获取该用户的用户信息和权限信息;或者,

客户端通过统一的接口调用cas服务端的用户信息和权限信息;或者,

建立推送池,将新增、修改或删除信息的数据写入推送池,通过推送池将对应的数据推送给各个客户端,同时记载推送日志,对未成功推送的数据多次推送,直到成功将数据推送给对应的客户端。

进一步地,所述cas服务端根据tgt颁发st并将st返回给客户端,客户端携带st访问cas服务端验证用户,并登录步骤之后,包括,

用户单点登录到应用系统时,cas服务端验证该用户是否具有该应用系统的单点权限;

若没有,提示用户权限不足,且不予该用户调用cas服务端的数据。

本发明还提出了一种基于单点技术的统一认证装置,包括,

建立单元,用于建立redis服务端,在用户认证成功后,把tgt与st都存放在redis服务端;

第一获取单元,用于在用户单点认证时,cas服务端从cookie中获取到tgtid,以tgtid为key从redis服务端中获取tgt;

验证单元,用于cas服务端根据tgt颁发st并将st返回给客户端,客户端携带st访问cas服务端验证用户,并登录。

进一步地,所述验证单元包括个性化登录模块,用于检查接收到的报文,判断用户是否使用个性化登录页面登录;

若是,则通过个性化登录的流程分支进行用户登录,并检测用户是否登录成功;

若未登录成功,重定向到个性化登录页面,进行用户登录操作。

进一步地,还包括第二获取单元,用于在用户登录成功后,客户端获取该用户的相关信息。

进一步地,所述第二获取单元包括,

第一获取模块,用于通过st生成一个断言assertion,并通过断言assertion中的凭证对象的属性从cas服务端获取该用户的用户信息和权限信息;

第二获取模块,用于通过统一的接口调用cas服务端的用户信息和权限信息;

第三获取模块,用于建立推送池,将新增、修改或删除信息的数据写入推送池,通过推送池将对应的数据推送给各个客户端,同时记载推送日志,对未成功推送的数据多次推送,直到成功将数据推送给对应的客户端。

进一步地,所述验证单元包括权限检测模块,用于在用户单点登录到应用系统时,cas服务端验证该用户是否具有该应用系统的单点权限,若没有,提示用户权限不足,且不予该用户调用cas服务端的数据。

本发明的有益效果是:本方案为不同应用系统的提供了不同的个性化登录页面,增加了不同应用系统之间的差异,便于用户更好的识别;采用redis服务端存储tgt和st后,能实现cas服务端的分布式部署,提升系统的可靠性;能有效的管控用户的行为,方便安全稽核与审查;增加用户与应用系统的权限控制,通过在限制用户访问具体的应用系统,来有效的管理不同用户在不同应用系统的权限。

附图说明

图1为本发明一种基于单点技术的统一认证方法的方法流程框图;

图2为本发明进行个性化登录的方法流程框图;

图3为本发明客户端获取用户相关信息的方法流程框图;

图4为本发明另一实施例一种基于单点技术的统一认证方法的方法流程框图;

图5为本发明一种基于单点技术的统一认证装置的结构框图;

图6为本发明验证单元的结构框图;

图7为本发明第二获取单元的结构框图。

具体实施方式

为阐述本发明的思想及目的,下面将结合附图和具体实施例对本发明做进一步的说明。

tgt(ticketgrangtingticket),是cas为用户签发的登录票据,拥有了tgt,用户就可以证明自己在cas成功登录过。

st(serviceticket),是cas服务端为用户签发的访问某一服务票据,用户凭借st去访问service,service拿st去cas服务端验证,验证通过后,允许用户访问资源。

tgtid,即tgt的id,用于区分并识别tgt。

cookie,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。

cas,全称centralauthenticationservice,是耶鲁大学发起的一个企业级的开源项目,旨在为web应用系统提供一种可靠的单点登录解决方法。

参照图1,提出本发明一实施例,一种基于单点技术的统一认证方法,包括以下步骤:

s10、建立redis服务端,在用户成功认证后,把tgt与st都存放在redis服务端。

s11、用户单点认证时,cas服务端从cookie中获取到tgtid,以tgtid为key从redis服务端中获取tgt。

s12、cas服务端根据tgt颁发st并将st返回给客户端,客户端携带st访问cas服务端验证用户,并登录。

对于步骤s10,在cas服务端之外建立redis服务端(redis集群)用于存放票据,通过用户名和密码认证成功后把对应给的tgt与st都存放在redis集群中,配合cas服务端形成分布式部署,提升应用系统的可靠性。

对于步骤s11,在用户登录时,对用户进行单点认证时,cas服务端获取到浏览器cookie中的tgtid,以tgtid为key(存储结构的唯一关键字),获取redis服务端中tgt,并根据tgt颁发对应的st,同时将st也存储在redis服务端,以备cas服务端调用。

对于步骤s12,cas服务端获取根据tgt得到的st,再将st返回给客户端,客户端再携带st访问cas服务端验证用户,最终实现用户登录,整个过程,redis服务端存放tgt和st,浏览器cookie存放tgtid,分布式的存放提升了系统的可靠性和性能。

具体的,步骤s12,包括以下步骤:

s121、cas服务端检查接收到的报文,判断客户端是否使用个性化登录页面登录。

s122、若是,则通过个性化登录的流程分支进行用户登录,并检测用户是否登录成功。

s123、若未登录成功,重定向到个性化登录页面,进行用户登录操作。

s124、若登录成功,则重定到应用系统首页。

s125、客户端获取该用户的相关信息。

对于步骤s121-s124,在cas服务端配置webflow流程配置文件,增加个性化登录流程配置,包括流程初始化,票据检查,loginview,以及重定向方式,用于在用户登录的时候提供个性化的登录页面。

同时,客户端增加个性化登录页面的过滤器,配置及相应的程序处理方法,在过滤器中配置个性化登录页面地址及其他信息,当用户访问应用系统时,该过滤器拦截请求,并把个性化登录的相关信息携带传递给cas服务端。

cas服务端检查接收到的报文,如果用户通过个性化登录页面登录,那就在个性化登录页面按照个性化登录流程进行用户登录。

之后,cas服务端检测用户是否登录成功,如用户未登录时,会重定向到个性化登录页面,用户输入用户及密码后,提交cas服务端认证,如果认证成功,则重定向到应用系统首页。

实际生产中,一个用户会同时拥有多个应用系统的权限,如服务开通系统、crm系统、智能提速系统等,用户在打开不同系统地址时,不同系统对应的不同登录页面能够使得用户快速的对应用系统进行区分,使用个性化登录页面,能够使得不同的应用系统拥有不同的个性化登录界面,提高系统辨识度。

对于步骤s125,在用户成功登录了应用系统后,客户端需要从cas服务端获取其相关信息,例如用户信息、权限信息和角色信息,以便在客户端上继续操作。

具体的步骤s125能够通过以下步骤的一种或多种实现:

s1251、cas服务端通过st生成一个断言assertion,客户端通过断言assertion中的凭证对象的属性从cas服务端获取该用户的用户信息和权限信息。

s1252、客户端通过统一的接口调用cas服务端的用户信息和权限信息。

s1253、建立推送池,将新增、修改或删除信息的数据写入推送池,通过推送池将对应的数据推送给各个客户端,同时记载推送日志,对未成功推送的数据多次推送,直到成功将数据推送给对应的客户端。

对于步骤s1251、s1252和s1253,都是用于获取用户相关信息的方法,可以使用其中的一种,也可以是上述多种方法的结合,也可以是全部方法的结合。

另外,通过建立应用注册、用户应用权限数据模型,改为从管理平台的配置库中装载应用注册信息,通过管理平台快速实现应用注册或者应用取消注册。

本方案为不同应用系统的提供了不同的个性化登录页面,增加了不同应用系统之间的差异,便于用户更好的识别;采用redis服务端存储tgt和st后,浏览器cookie存储tgtid,实现cas服务端的分布式部署,提升系统的可靠性和性能。

参考图4,在本发明的另一实施例中,步骤s20-s22与图1实施例中的s10-s12对应相同,具体的,在步骤s22之后,还包括有以下步骤:

s23、用户单点登录到应用系统时,cas服务端验证该用户是否具有该应用系统的单点权限。

s24、若没有,提示用户权限不足,且不予该用户调用cas服务端的数据。

本方案为不同应用系统的提供了不同的个性化登录页面,增加了不同应用系统之间的差异,便于用户更好的识别;采用redis服务端存储tgt和st后,能实现cas服务端的分布式部署,提升系统的可靠性;增加用户与应用系统的权限控制,通过在限制用户访问具体的应用系统,来有效的管理不同用户在不同应用系统的权限。

本发明还提出了一种基于单点技术的统一认证装置,包括,

建立单元10,用于建立redis服务端,在用户认证成功后,把tgt与st都存放在redis服务端;

第一获取单元20,用于在用户单点认证时,cas服务端从cookie中获取到tgtid,以tgtid为key从redis服务端中获取tgt;

验证单元30,用于cas服务端根据tgt颁发st并将st返回给客户端,客户端携带st访问cas服务端验证用户,并登录。

对于建立单元10,在cas服务端之外建立redis服务端(redis集群)用于存放票据,通过用户名和密码认证成功后把对应给的tgt与st都存放在redis集群中,配合cas服务端形成分布式部署,提升应用系统的可靠性。

对于第一获取单元20,在用户登录时,对用户进行单点认证时,cas服务端获取到浏览器cookie中的tgtid,以tgtid为key,获取redis服务端中tgt,并根据tgt颁发对应的st,同时将st也存储在redis服务端,以备cas服务端调用。

对于验证单元30,cas服务端获取根据tgt得到的st,再将st返回给客户端,客户端再携带st访问cas服务端验证用户,最终实现用户登录,整个过程,redis服务端存放tgt和st,浏览器cookie存放tgtid,分布式的存放提升了系统的可靠性和性能。

验证单元30包括个性化登录模块31,用于检查接收到的报文,判断用户是否使用个性化登录页面登录,若是,则通过个性化登录的流程分支进行用户登录,并检测用户是否登录成功,若未登录成功,重定向到个性化登录页面,进行用户登录操作。

对于个性化登录模块31,在cas服务端配置webflow流程配置文件,增加个性化登录流程配置,包括流程初始化,票据检查,loginview,以及重定向方式,用于在用户登录的时候提供个性化的登录页面。

同时,客户端增加个性化登录页面的过滤器,配置及相应的程序处理方法,在过滤器中配置个性化登录页面地址及其他信息,当用户访问应用系统时,该过滤器拦截请求,并把个性化登录的相关信息携带传递给cas服务端。

cas服务端检查接收到的报文,如果用户通过个性化登录页面登录,那就在个性化登录页面按照个性化登录流程进行用户登录。

之后,cas服务端检测用户是否登录成功,如用户未登录时,会重定向到个性化登录页面,用户输入用户及密码后,提交cas服务端认证,如果认证成功,则重定向到应用系统首页。

实际生产中,一个用户会同时拥有多个应用系统的权限,如服务开通系统、crm系统、智能提速系统等,用户在打开不同系统地址时,不同系统对应的不同登录页面能够使得用户快速的对应用系统进行区分,使用个性化登录页面,能够使得不同的应用系统拥有不同的个性化登录界面,提高系统辨识度。

验证单元30包括权限检测模块32,用于在用户单点登录到应用系统时,cas服务端验证该用户是否具有该应用系统的单点权限,若没有,提示用户权限不足,且不予该用户调用cas服务端的数据。

对于权限检测模块32,增加用户与应用系统的权限控制,通过在限制用户访问具体的应用系统,来有效的管理不同用户在不同应用系统的权限。

具体的,一种基于单点技术的统一认证装置,还包括第二获取单元40,用于在用户登录成功后,客户端获取该用户的相关信息。

第二获取单元40,在用户成功登录了应用系统后,客户端需要从cas服务端获取其相关信息,例如用户信息、权限信息和角色信息,以便在客户端上继续操作。

参照图x,第二获取单元40包括:

第一获取模块41,用于通过st生成一个断言assertion,并通过断言assertion中的凭证对象的属性从cas服务端获取该用户的用户信息和权限信息。

第二获取模块42,用于通过统一的接口调用cas服务端的用户信息和权限信息。

第三获取模块43,用于建立推送池,将新增、修改或删除信息的数据写入推送池,通过推送池将对应的数据推送给各个客户端,同时记载推送日志,对未成功推送的数据多次推送,直到成功将数据推送给对应的客户端。

对于第一获取模块41、第二获取模块42和第三获取模块43,都可以用于获取用户相关信息,可以使用其中的一种,也可以使用两种的结合,也可以同时使用三种。

另外,通过建立应用注册、用户应用权限数据模型,改为从管理平台的配置库中装载应用注册信息,通过管理平台快速实现应用注册或者应用取消注册。

在本发明的另一实施例中,可以将验证单元和第二获取单元集成在管理平台,通过管理平台对用户信息、角色信息和权限信息的推送和读取进行统一管理,对用户权限进行统一的验证。

本方案为不同应用系统的提供了不同的个性化登录页面,增加了不同应用系统之间的差异,便于用户更好的识别;采用redis服务端存储tgt和st后,能实现cas服务端的分布式部署,提升系统的可靠性;通过管理平台统一管理用户信息、权限信息、资源信息和角色信息等,能有效管控用户行为,方便安全稽核与审查;增加用户与应用系统的权限控制,通过在限制用户访问具体的应用系统,来有效的管理不同用户在不同应用系统的权限。

以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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