一种解决内外网重复登录的方法、装置及系统与流程

文档序号:12693424阅读:596来源:国知局
一种解决内外网重复登录的方法、装置及系统与流程

本发明涉及通信领域,具体涉及一种解决内外网重复登录的方法、装置及系统。



背景技术:

随着计算机和网络技术的迅猛发展和广泛普及,有关企业的生产经营活动越来越多,伴随而来的业务系统也在不断的增加。这些系统在SOA体系结构下交织在一起,互相调用构成更为庞大的系统。SSO虽然能够解决在众多的系统应用中,企业用户只要登录一次就可以访问所有相互信任的应用系统,但是所有的系统并不是部署在相同的网络环境下,即使所有的系统均部署在内网环境下又是不现实的。若所有的系统均部署在外网环境下又会在安全方面埋下重大隐患。

通常来说,在企业内部,系统就会有两套独立的安全体系和身份认证系统。这样带来的问题是系统之间不能自由访问,需要登录两次,用户体验较差。



技术实现要素:

本发明提供一种解决内外网重复登录的方法、装置及系统,以便于用户只需要在内网或外网登录认证一次就可以直接登录其他应用系统。

本发明的技术方案是提供一种解决内外网重复登录的方法,该方法包括下列步骤:对已登录内网的第一用户信息进行封装和加密,获得第二用户信息,并将该第二用户信息发送至缓存服务器;当该用户登录外网应用系统时,解密该第二用户信息,获得第三用户信息;对 该第三用户信息进行校验;如果校验成功,则直接进入外网应用系统;如果校验失败,则进行外网统一登录认证

可选地,对已登录内网的第一用户信息进行封装和加密,获得第二用户信息还包括:

将该第一用户信息封装为特定格式的数据对象,并对该数据对象进行数字签名处理。

可选地,该校验包括如下步骤:解密校验、空校验和有效期校验,其中,

该解密校验,用于判断是否恶意非法登录和验证该第三用户信息是否被篡改;

该空校验,用于验证该缓存服务器是否存在该第二用户信息;

该有效期校验,用于判断已登录内网的用户是否超过时间阈值。

可选地,该校验还包括:

如果该解密校验成功,则进行该空校验;如果该解密校验失败,则进行外网统一登录认证;

如果该空校验成功,则进行该有效期校验;如果该空校验失败,则进行外网统一登录认证;

如果该有效期校验成功,则直接进入外网应用系统;如果该有效期校验失败,则进行外网统一登录认证。

可选地,该方法还包括:如果外网统一登录认证成功,则将用户信息进行封装和加密,获得第四用户信息,并将该第四用户信息发送至该缓存服务器。

本发明还提供一种解决内外网重复登录的方法的装置,该装置包括:封装加密模块,对已登录内网的第一用户信息进行封装和加密,获得第二用户信息;缓存模块,用于存储该第二用户信息及封装和加密后的外网用户信息;解密模块,用于当该用户登录外网应用系统时, 解密该第二用户信息,获得第三用户信息;校验模块,用于对该第三用户信息进行校验;如果校验成功,则直接进入外网应用系统;如果校验失败,则进行重新统一登录认证。

可选地,该封装加密模块还包括:

将该第一用户信息封装为特定格式的数据对象,并对该数据对象进行数字签名处理。

可选地,该校验模块还包括:

解密校验模块、空校验模块和有效期校验模块,其中,

该解密校验模块,用于判断是否恶意非法登录和验证该第三用户信息是否被篡改;

该空校验模块,用于验证该缓存服务器是否存在该第二用户信息;

该有效期校验模块,用于判断已登录内网的用户是否超过时间阈值。

本发明再提供一种解决内外网重复登录的系统,该系统包括位于内网环境中的缓存服务器和第一认证装置以及位于外网环境中的第二认证装置;

其中,该系统包括位于内网环境中的缓存服务器和第一认证装置以及位于外网环境中的第二认证装置;

其中,该第一认证装置,用于对该内网用户信息进行验证,并将该内网用户信息进行加密封装至该缓存服务器中;

该第二认证装置,用于对从该缓存服务器中获取该内网用户信息进行解密,并对解密后的内网用户信息进行验证。

可选地,第二认证装置还用于对外网用户进行验证,并将验证后的外网用户信息加密封装至该缓存服务器。

可选地,该第一认证装置包括:

内网认证模块,用于验证内网用户信息;

安全加密模块,用于将该内网用户信息进行加密封装至所述缓存服务器中。

可选地,该第二认证模块包括:

安全解密模块,用于对从缓存服务器中获取的该内网用户信息进行解密;

外网认证模块,用于对外网用户信息进行验证;

认证解析模块,用于对解密后的内网和/或外网用户信息进行校验;

第二安全加密模块,用于将校验成功后的所述外网用户信息加密封装至所述缓存服务器。

通过本发明提供的解决内外网重复登录的方法、装置及系统,以便于用户只需在内网或是外网登录认证一次就可以访问其他应用系统,从而无需因内外网认证方式不同,经过两次登录认证操作。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为本发明的解决内外网重复登录的方法流程图;

图2为本发明的解决内外网重复登录的数据信息校验流程图;

图3为本发明的应用于解决内外网重复登录方法的装置示意图;

图4为本发明的解决内外网重复登录的系统结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面 结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。

在本文中,需要理解的是,所涉及的术语中:

SSO(Single Sign-ON):是一种统一认证和授权机制,指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护资源时,不再需要重新登录验证。

JSON(JavaScript Object Notation):是一种轻量级的数据交换格式。

图1为本发明的解决内外网重复登录的方法流程图。该方法包括下列步骤:S101:对已登录内网的第一用户信息进行封装和加密,获得第二用户信息,并将第二用户信息发送至缓存服务器;S102:当该用户登录外网应用系统时,解密该第二用户信息,获得第三用户信息;S103:对该第三用户信息进行校验;如果校验成功,则直接进入外网应用系统;如果校验失败,则进行外网统一登录认证。

可选地,该方法于对已登录内网的第一用户信息进行封装和加密,获得第二用户信息还包括:将该第一用户信息封装为特定格式的数据对象,并对该数据对象进行数字签名处理。

可选地,该校验包括如下步骤:解密校验、空校验和有效期校验,其中,该解密校验,用于判断是否恶意非法登录和验证该第三用户信息是否被篡改;该空校验,用于验证该缓存服务器是否存在该第二用户信息;该有效期校验,用于判断已登录内网的用户是否超过时间阈值。

可选地,该校验还包括:如果该解密校验成功,则进行该空校验;如果该解密校验失败,则进行外网统一登录认证;如果该空校验成功, 则进行该有效期校验;如果该空校验失败,则进行外网统一登录认证;如果该有效期校验成功,则直接进入外网应用系统;如果该有效期校验失败,则进行外网统一登录认证。

可选地,该重新统一登录认证还包括:内网登录认证或外网统一登录认证。

可选地,该方法还包括:外网用户进行外网统一登录认证成功之后,则将该外网用户信息进行封装和加密,获得该第四用户信息,并将该第四用户信息发送至该缓存服务器。

本发明是在企业用户已经存在内外网统一认证的基础上提出的技术方案,以使用户在内网或是外网当中认证一次,直接进入业务系统。

下面结合一个具体的实施例对本发明进行具体描述,然而值得注意的是该具体实施例仅是为了更好地描述本发明,并不构成对本发明的不当限定。

本发明的实施例中,首先,将内网已登陆的原始用户信息封装为自定义的LoginContext数据对象,其中,该自定义的LoginContext数据对象包括:用户名、密码、是否登陆成功、认证服务器名称、创建时间、过期时间、登陆唯一标识、数字签名。LoginContext数据对象采用的格式为数据项之间用逗号连接,数据项与值之间用等号连接。根据认证服务器名称对要传输的数据做数字签名(HMAC-SHA1)处理,再对LoginContext传输数据进行DES加密,同时将加密后的用户信息发送至缓存服务器(Redis)进行保存。

其次,当该用户登录外网应用系统时,从缓存服务器获得加密后的用户信息,对加密后的用户信息进行解密,还原为相同格式的数据对象。特别地,在本发明一实施例中,对用户信息封装也可封装为JSON 格式的数据对象,因此还原的用户登录信息格式也可以为JSON格式的数据对象。

最后,如果数据信息校验成功并已还原为LoginContext格式的数据对象,则跳过外网登陆,直接进入应用系统进行业务操作。如果数据信息校验失败,则返回外网登陆认证页面。

图2为本发明的解决内外网重复登录的数据信息校验流程图。具体数据信息校验流程如下:

S201:解密校验。该步骤是为保证数据传输安全性,对用户登陆的加密的数据信息进行解密校验,防止传输数据过程中被篡改或是恶意非法登陆。如果该解密校验成功,则进行步骤S102;如果该解密校验失败,则进行外网统一登录认证。

S202:空校验。该步骤是用于验证该缓存服务器是否存在加密后的用户信息。如果缓存服务器存在该用户信息,则认为该用户是具有登录该业务系统权限的用户或者是曾经被允许登录。如果该空校验成功,则进行步骤S103;如果该空校验失败,则进行外网统一登录认证;

S203:有效期校验。该步骤是用于判断已登录内网的用户是否超过时间阈值。如果用户已登陆内网系统但长时间(超出一段时间范围)无任何操作,则认为该登陆已过期,需要重新进行登录。

特别地,该重新统一登录认证还包括:内网登录认证或外网统一登录认证。如果用户在外网进行登录,则调用外网的统一登陆认证接口启动认证程序,待外网的统一登陆认证成功之后,外网的应用系统就接收用户的登录请求,允许用户对外网应用系统的所有业务操作。与此同时,更新LoginContext对象的数据项创建时间,再次对通过外网登录应用系统的用户信息进行封装和加密并发送至缓存服务器保存,这样缓存服务器中就会存在从外网登录应用系统的用户信息,待下次该用户只需要通过缓存服务器获得用户,就可进入系统,进行操作。

通过本发明提供的解决内外网重复登录的方法,以便于用户只需要在内网或外网登录认证一次即可登录系统,而无需因内外网认证方式不同,登录认证两次。

图3为本发明应用于解决内外网重复登录的方法的装置示意图。如图3所示,该装置1包括:

封装加密模块10,用于对已登录内网的第一用户信息进行封装和加密,获得第二用户信息;缓存模块20,用于存储该第二用户信息及封装和加密后的外网用户信息;解密模块30,用于当该用户登录外网应用系统时,解密该第二用户信息,获得第三用户信息;校验模块40,用于对该第三用户信息进行校验;如果校验成功,则直接进入外网应用系统;如果校验失败,则进行外网统一登录认证。

可选地,该封装加密模块10还包括:将该第一用户信息封装为特定格式的数据对象,并对该数据对象进行数字签名处理。

可选地,该校验模块40还包括:解密校验模块401、空校验模块402和有效期校验模块403,其中,该解密校验模块401,用于判断是否恶意非法登录和验证该第三用户信息是否被篡改;该空校验模块402,用于验证该缓存模块20是否存在该第二用户信息;该有效期校验模块403,用于判断已登录内网的用户是否超过阈值。

下面结合一个具体实施例对本发明进行具体描述,然而值得注意的是该具体实施例仅是为了更好地描述本发明,并不构成对本发明的不当限定。

封装加密模块10将内网已登陆的原始用户信息封装为自定义的LoginContext数据对象并对LoginContext传输数据进行DES加密,同时将加密后的用户信息发送至缓存模块20(Redis)进行保存。当该用 户登录外网应用系统时,解密模块30从缓存模块20获得保存的用户信息,对保存的加密的用户信息进行解密,还原为相同格式的数据对象。校验模块40对解密后的用户信息。如果数据信息校验成功并已还原为LoginContext格式的数据对象,则跳过外网登陆,内网用户就可以直接进入应用系统进行业务操作。如果数据信息校验失败,则返回外网登陆认证页面,用户须通过外网登录。

具体地,校验模块40包括:解密校验模块401、空校验模块402和有效期校验模块403。其中,解密校验模块401用于对用户登陆的加密的数据信息进行解密校验,防止传输数据过程中被篡改或是恶意非法登陆。空校验模块402用于验证该缓存模块20是否存在加密后的用户信息。有效期校验模块403用于判断已登录内网的用户是否超过时间阈值。如果用户已登陆内网系统但长时间(超出一段时间范围)不操作内网的应用系统,则认为该登陆已过期,需要重新进行登录。与此同时,更新LoginContext对象的数据项创建时间,再次对通过外网登录应用系统的用户信息进行封装和加密并发送至缓存模块20保存,这样缓存模块20中就会存在从外网登录应用系统的用户信息,待下次该用户只需要通过缓存模块20获取用户信息之后,便可直接进入系统,进行相关业务操作。

图4为本发明的解决内外网重复登录的系统结构示意图。如图4所示,该系统包括:位于内网环境中的缓存服务器51和第一认证装置50以及位于外网环境中的第二认证装置52。其中第一认证装置50以及第二认证装置52可以是通过将根据本发明如上所述的解决内外网重复登录的装置1分别具体地应用于内网环境中和外网环境中而得以实现的;

其中,所述第一认证装置50,用于对所述内网用户信息进行验证,并将所述内网用户信息进行加密封装至所述缓存服务器51中;

所述第二认证装置52,用于对从所述缓存服务器51中获取所述内网用户信息进行解密,并对解密后的内网用户信息进行验证和/或者 对外网用户进行验证,并将验证后的外网用户信息加密封装至所述缓存服务器51。

可选地,该第一认证装置50包括:内网认证模块501,用于验证内网用户信息;第一安全加密模块502,用于将该内网用户信息进行加密封装。

可选地,该第二认证装置52包括:安全解密模块520,用于从缓存服务器51中获取的该内网用户信息进行解密;外网认证模块521,用于对外网用户信息进行验证;认证解析模块522,用于对解密后的内网和/或外网用户信息进行验证;第二安全加密模块523,用于将验证成功后的该外网用户信息加密封装至该缓存服务器51。

下面结合一个具体实施例对本发明进行具体描述,然而值得注意的是该具体实施例仅是为了更好地描述本发明,并不构成对本发明的不当限定。

用户通过内网认证模块501身份认证成功之后登录内网应用系统,然后第一安全加密模块502将该已经登录内网的用户信息进行封装和加密并且将封装和加密后的用户身份信息保存至缓存服务器51中。当该用户登录外网应用系统时,安全解密模块520从缓存服务器51中获取该内网用户信息并进行解密,经认证解析模块522对该内网用户身份信息验证成功之后,该用户就可以登录到外网应用系统进行相关业务操作。

在本发明另一实施例中,若该用户尚未认证登录过内网应用系统,即缓存服务器51中并没有该用户的身份信息。当该用户登录外网应用系统时,外网认证模块521需要直接验证该用户的身份信息,待认证之后,经认证解析模块522对解密后的外网用户信息进行校验成功之后就可以直接登录外网应用系统进行相关业务操作。然后第二安全加 密模块523会将该用户信息加密封装保存至缓存服务器51中,以待将来该用户可以通过登录内网应用系统之后直接登录外网应用系统,并且无需再次验证。

本发明是建立在内网登陆外网统一认证的基础上,用户只需在内网或是外网登陆一次,即可进入其他业务系统,适合大规模用户的访问任务,有效提高了用户体验。另外,由于应用系统只需要部署一次,无需内外网分别部署,在安全性得到保证的基础上,易于管理和维护,也降低了硬件成本。

以上该的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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