一种基于单点登录的Web系统登录约束方法与流程

文档序号:12068114阅读:175来源:国知局
一种基于单点登录的Web系统登录约束方法与流程

本发明涉及Web系统身份鉴别技术领域,特别是一种基于单点登录的Web系统登录约束方法。



背景技术:

随着企业业务的扩大和业务的复杂性增强,企业所需要的应用系统不断增多,企业员工在完成日常工作时,也需要使用不同的应用系统来完成。但每个应用系统都有各自的认证方式;系统管理员不仅要分别维护每个应用系统安全策略的完整性,而且还要维护每个应用系统各自的用户认证数据。当公司有招聘新员工,需要将其信息添加到应用系统时,系统管理员就需要为新入职的员工分别在每一个应用系统中添加所需要的认证信息。单点登录为满足上述要求应运而生,允许用户完成一次认证授权服务以后,便可访问系统中有权访问的不同应用,而不需要访问每个应用系统时,都重新输入账户和密码。

传统的单点登录模型由三个组成部分:支持身份认证服务的客户端、认证服务器、支持身份认证服务的应用服务器。其中,所有的身份认证都是由认证服务器来完成的。该模型的工作流程是:所有的客户端在访问应用系统之前在认证服务器端进行身份认证,为了提供系统的安全性,可采用相互认证的方式。当用户通过身份认证后,认证服务器返回给客户端一个电子身份标识,用户通过该电子身份标识去访问其他应用系统,从而实现单点登录。

针对不同的安全要求,不同的应用系统需要配置不同的登录约束规则,比如某个应用系统只允许某类员工在某段时间内使用。这时候传统的单点登录系统就无法针对不同的应用系统进行单独的灵活的配置。



技术实现要素:

本发明解决的技术问题在于一种基于单点登录的Web系统登录约束方法;实现不同应用系统的单独约束。

本发明解决上述技术问题的技术方案是:

所述的方法包括以下步骤:

步骤1:用户浏览器向Web应用系统发出访问请求;

步骤2:Web应用系统检查用户浏览器是否存在服务凭证,如果存在,那么转到步骤9,否则,转到步骤3;

步骤3:把访问请求重定向到单点登录服务器;

步骤4:单点登录服务器检查用户浏览器是否存在授权凭证,如果存在,那么转到步骤5,否则,转到步骤8;

步骤5:单点登录服务器验证授权凭证的有效性,如果有效,转到步骤6,否则,转到步骤8;

步骤6:单点登录服务器验证用户对Web应用系统的登录约束规则是否有效,如果有效,转到步骤7,否则,转到步骤8;

步骤7:单点登录服务器将会给用户颁发一个服务凭证并保存在用户浏览器的Cookie中,将浏览器重定向到用户请求访问的Web应用系统页面上,转到步骤1;

步骤8:重定向到单点登录服务器的登录页面,输入登录验证信息,如果验证信息正确,那么生成授权凭证并发送给用户浏览器,用户浏览器把授权凭证保存在Cookie中,转到步骤5,否则,继续执行步骤8;

步骤9:允许用户浏览器访问Web应用系统。

所述服务凭证指的是单点登录服务器验证过授权凭证有效以后,颁发给用户用于访问其所申请Web应用系统的凭证,当用户申请访问其他Web应用系统,单点登录服务器会根据授权凭证给用户重新颁发服务凭证,服务凭证主要包括以下信息:服务凭证-{授权凭证号,服务名},授权凭证代表某个用户在单点登录服务器上的合法身份,服务名是用户所申请访问的Web应用系统的名称,可由Web应用系统的URL表示。

所述授权凭证指的是单点登录服务器对用户申请的确认凭证,在用户名密码等用户身份鉴别信息通过验证以后,单点登录服务器即向用户颁发授权凭证,授权凭证具有独一无二性,它与用户之间进行了绑定,防止非法窃取者私自使用,授权凭证主要包括以下信息:授权凭证-{授权凭证号:用户名:地址:服务名:有效期:时间戳},其中授权凭证号用来唯一标识一个客户机,防止凭证被非法窃取后在其他客户机上使用,它与用户是一对一的关系。

所述重定向指的是将Web请求从当前页面重新定位到新页面,实现页面间跳转并把对当前页面请求的参数传到新页面中,具体过程如下:

1)用户浏览器向Web服务器1中的page1页面发送第一次请求,收到请求后,仅向用户浏览器返回一个重定向响应头信息,该响应信息头中不包含任何需要显示的数据信息,只包含需要重定向到另一个Web服务器2页面page2的地址信息;此时用户浏览器与Web服务器1之间完成第一次请求与第一次响应任务;

2)用户浏览器收到Web服务器1的page1页面的重定向响应后,将自动向响应头信息中指定的URL地址发出新的请求信息;Web服务器2中的page2页面收到新的请求信息后,将运行结果反馈给用户浏览器,此时它与Web服务器2之间完成第二次请求与第二次响应任务。

所述登录约束规则是用户对Web应用系统会话建立的一种限制条件,登录约束规则主要包括以下信息:登录约束规则-{登录时间:用户名:角色名:IP地址}。

本发明的方法能产生如下的有益效果:

1、本发明能针对不同的Web应用系统进行单独的灵活的登录约束规则的配置,解决了传统单点登录系统无法克服的问题;

2、本发明方法能实现应用系统与身份鉴别系统的解耦,业务系统只需要关心其业务,不需要关心复杂的登录约束规则。

附图说明

下面结合附图对本发明进一步说明:

图1为本发明的流程图;

图2为具体实施方式的体系架构图。

具体实施方式

如图1所示,本发明的方法包括如下步骤:

步骤1:用户浏览器向Web应用系统发出访问请求;

步骤2:Web应用系统检查用户浏览器是否存在服务凭证,如果存在,那么转到步骤9,否则,转到步骤3;

步骤3:把访问请求重定向到单点登录服务器;

步骤4:单点登录服务器检查用户浏览器是否存在授权凭证,如果存在,那么转到步骤5,否则,转到步骤8;

步骤5:单点登录服务器验证授权凭证的有效性,如果有效,转到步骤6,否则,转到步骤8;

步骤6:单点登录服务器验证用户对Web应用系统的登录约束规则是否有效,如果有效,转到步骤7,否则,转到步骤8;

步骤7:单点登录服务器将会给用户颁发一个服务凭证并保存在用户浏览器的Cookie中,将浏览器重定向到用户请求访问的Web应用系统页面上,转到步骤1;

步骤8:重定向到单点登录服务器的登录页面,输入登录验证信息,如果验证信息正确,那么生成授权凭证并发送给用户浏览器,用户浏览器把授权凭证保存在Cookie中,转到步骤5,否则,继续执行步骤8;

步骤9:允许用户浏览器访问Web应用系统。

服务凭证指的是单点登录服务器验证过授权凭证有效以后,颁发给用户用于访问其所申请Web应用系统的凭证,当用户申请访问其他Web应用系统,单点登录服务器会根据授权凭证给用户重新颁发服务凭证。服务凭证主要包括以下信息:服务凭证-{授权凭证号,服务名},授权凭证代表某个用户在单点登录服务器上的合法身份,服务名是用户所申请访问的Web应用系统的名称,可由Web应用系统的URL表示。

授权凭证指的是单点登录服务器对用户申请的确认凭证,在用户身份鉴别信息(如用户名密码等)通过验证以后,单点登录服务器即向用户颁发授权凭证,授权凭证具有独一无二性,它与用户之间进行了绑定,防止非法窃取者私自使用。授权凭证主要包括以下信息:授权凭证-{授权凭证号:用户名:地址:服务名:有效期:时间戳},其中授权凭证号用来唯一标识一个客户机,防止凭证被非法窃取后在其他客户机上使用,它与用户是一对一的关系。

所述重定向指的是将Web请求从当前页面重新定位到新页面的技术,利用这种技术可以实现页面间跳转并把对当前页面请求的参数传到到新页面中。具体过程如下:

1)用户浏览器向Web服务器1中的page1页面发送第一次请求,它收到请求后,仅向用户浏览器返回一个重定向响应头信息,该响应信息头中不包含任何需要显示的数据信息,只包含需要重定向到另一个Web服务器2页面page2的地址信息。此时用户浏览器与Web服务器1之间完成第一次请求与第一次响应任务;

2)用户浏览器收到Web服务器1的page1页面的重定向响应后,讲自动向响应头信息中指定的URL地址发出新的请求信息;Web服务器2中的page2页面收到新的请求信息后,将运行结果反馈给用户浏览器,此时它与Web服务器2之间完成第二次请求与第二次响应任务。

所述登录约束规则是用户对Web应用系统会话建立的一种限制条件,登录约束规则主要包括以下信息:登录约束规则-{登录时间:用户名:角色名:IP地址}。

下面以CAS作为单点登录服务器为例,介绍使用Java EE框架实现一种基于单点登录的Web系统登录约束方法。

本实例的单点登录系统采用一种轻量级Java EE的多层平台体系架构,即基于WebWork+Spring+Hibernate的多层架构体系。该单点登录系统运用了表示层框架WebWork、轻量级Java EE框架Spring和持久性框架Hibernate等应用框架,并且结合基于CAS的Web应用登录约束系统的体系结构进行搭建。

图2是基于CAS的Web应用登录约束系统体系架构图,自上而下分别为基于Web的用户界面、表示层、业务逻辑层、单点登录约束服务层、数据访问层和数据存储层。

1)表示层

表示层采用的是WebWork框架,为JSP页面和Action之间的数据提供良好的接口,每一个Action对应唯一一个Java类,执行相应操作,Action接口是页面与业务逻辑间的映射,可以控制业务流程,而result的定义将通知WebWork下一步应该执行的操作。FilterDispatcher控制器对业务逻辑层的数据进行处理,根据处理结果提取需要的模型数据,从而转移到用户设定的视图进行表示,同时必要的拦截器和UI验证,可以更好地保证数据的流转与权限的控制。

2)业务逻辑层

业务逻辑层使用的是Spring框架,通过service.xml配置文件,Spring容器自动生成Bean实例,供action中的业务逻辑使用;同时通过调用Dao接口提供的方法,向表示层使用的模型层填充数据。Spring框架为表示层提供了交互的接口,并为其提供使用的数据填充,另外,Spring的依赖注入机制,可以在运行期为组件配置所需资源,从而在相当程度上降低了组件之间的耦合,实现了组件真正意义上的即插即用,是开发人员可以更自然地倾向于使用接口来定义不同层次之间的关联关系。

3)单点登录服务层

单点登录服务层需要调用业务逻辑层提供的单点登录业务接口,该接口中实现了单点登录所需要的认证服务、凭证颁发服务、凭证管理服务和登录约束服务,由此完成用户在各个系统之间的自由登录。

4)数据访问层

持久层是Web应用中直接与数据库打交道的逻辑单元,实现了O/R mapping,将面向对象的操作转化为面向关系的操作。它使用Hibernate作为持久层架构能完全屏蔽具体的数据库实现。通过Hibernate提供的API和HQL查询接口是操作数据更有效、便捷。同时,它向下屏蔽了不同数据库的差异,向上为业务逻辑层提供需要的访问接口。

以上本发明所述单点登录指的是一种用户只需要登录一次就可以访问具有权限的相互之间有某种特定关系的所有应用系统的企业业务整合解决方案;在登录过以后单点登录系统会自动记录用户的信息,而不需要在此登录就能识别出用户的身份。这样,通过一次登录就可以在不需要重复输入认证信息的情况下访问多个应用系统。

所述Cookie是一种通用的机制,通过这种机制Web服务器端的连接就可以保存或者获取客户端的信息。本发明的Cookie保存的是由Web服务器端颁发的授权凭证及服务凭证,这些信息保存在客户端。Cookie将伴随着用户的请求和页面在Web服务器和浏览器之间传递。用户每次访问站点时,Web应用系统都可以获取Cookie包含的信息,从而达到登录会话保持的目的。

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